<br><br><div><span class="gmail_quote">On 5/29/06, <b class="gmail_sendername">Talin</b> <<a href="mailto:talin@acm.org">talin@acm.org</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Guido van Rossum wrote:<br>> I have to ignore this topic. It's too big and contentious to get easy<br>> agreement. (The one thing I *don't* want is move the entire stdlib<br>> hierarchy under 'py' or something like that.) Eric Raymond once made
<br>> detailed proposal, you can probably still find it somewhere. Good<br>> luck!<br>><br><br>Well, it looks like it wasn't that contentious after all :)<br><br>Actually, I'm kind of surprised that there wasn't more comments on this.
<br>Part of my purpose in posting a strawman proposal was to generate<br>discussion, and from that discussion see if I could derive a set of<br>guidelines or principles that could be used to generate a more serious<br>proposal. So in a sense my posting was a trojan horse intended to gather
<br>data; Perhaps everyone was smart enough to see through this strategem<br>and decline to comment. :)</blockquote><div><br><br>I didn't say anything since I am a little burned out on the topic from the last time I tried to bring this up. But I do want to get this going since I think it will take a while to get any form of consensus.
<br><br>So, first step in my mind is settling if we want to add one more depth to the stdlib, and if so, how we want to group (not specific groupings, just general guidelines).<br><br>-Brett<br> </div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Looking over the general Py3K roadmap, and ignoring various wild-eyed<br>proposals for new features (my own included), it seems to me that the<br>two biggest areas of cruft cleanup that have not been fully addressed<br>are 1) the organization of the standard library, and 2) The refactoring
<br>of the import/package facility. I'm not really interested in creating<br>proposals for either of these, what I am more interested in is<br>organizing other people's proposals and in particular resolving<br>conflicts (which is effectively what I am trying to do with 3101.)
</blockquote><div><br><br>I think what needs to happen is decide if we want to group modules into packages (but no deeper than a single depth), and then how to handle general naming (e.g., net.http, net.httplib, http, or httplib?).
<br> </div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">-- Talin<br><br>>> Well, in that case, let me ask this: What would be the general
<br>>> parameters / requirements of the re-organization? I mean, any programmer<br>>> can come along and divide up things into categories, but I suspect that<br>>> there are subtler requirements than that.
<br>>><br>>> Here are some examples of some requirements that I can think of:<br>>><br>>> 1) No mass renaming of modules unless there's something seriously wrong<br>>> with the existing name.
<br>>><br>>> 2) For most cases, I suspect that you will want to add no more than one<br>>> additional level to the hierarchy. Namespaces will still be fairly flat,<br>>> with large numbers of items per namespace, but not quite as broad and
<br>>> flat as they are today. (In other words, avoid deep nesting - we don't<br>>> want to have to type sys.runtime.types.containers.UserDict.UserDict.)<br>>><br>>> So that people will have something to argue about, I'd suggest the
<br>>> following as a top-level category list. Note that only a small amount of<br>>> thought has gone into this :)<br>>><br>>> sys - contains the existing sys, plus atexit, site, user, etc.<br>
>><br>>> rt - runtime modules - gc, fpectl, inspect, etc.<br>>><br>>> types - existing types module, mixin types, type predicates.<br>>><br>>> persist - marshall, pickle, shelve, etc. Possibly zip and
<br>>> maybe ConfigParser<br>>><br>>> imp - import machinery - existing imp, zipimport, pkgutil,<br>>> modulefinder<br>>><br>>> string - existing string, plus repr, pprint, textwrap, stringprep.
<br>>> Possibly fnmatch.<br>>><br>>> encoding - codecs, unicodedata<br>>> Example: net.protocols.http<br>>><br>>> conversions - data conversion modules - fpformat<br>
>><br>>> re - regular expressions - unchanged<br>>><br>>> collection - existing collections, queue, heapq, array<br>>> Example: collections.array.array<br>>><br>>> algorithms - diff, random, whrandom
<br>>><br>>> testing - doctest, unittest, test, test_support<br>>><br>>> math - existing math, decimal, cmath<br>>> Example: math.decimal<br>>><br>>> doc - documentation tools - pydoc
<br>>><br>>> itertools - unchanged<br>>><br>>> functional - unchanged<br>>><br>>> console - cmd, shlex, curses*, getopt, optparse, readline,<br>>> rlcompleter<br>
>><br>>> os - existing os plus errno<br>>><br>>> os.path - as-is<br>>><br>>> os.file - existing os.file plus fileinput, tempfile, filecmp,<br>>> mmap<br>>>
<br>>> os.dir - existing os.dir plus dircache, stat*, glob, shutil<br>>><br>>> os.stream - popen*<br>>><br>>> os.process - subprocess, signal<br>>><br>>> os.socket
- existing socket, select<br>>><br>>> os.thread - existing threading, mutex<br>>><br>>> os.posix - posix-specific<br>>><br>>> os.win32 - win32-specific<br>>><br>>>
os.osx - osx-specific<br>>><br>>> locale - unchanged<br>>><br>>> logging - unchanged<br>>><br>>> platform - unchanged<br>>><br>>> compression - zlib, gzip, bz2, etc. (Or perhaps an 'archive'
<br>>> module including 'tar'.)<br>>><br>>> db - database packages - the various databases, gdbm, bsddb, etc.<br>>><br>>> debug - pdb, bdb, etc.<br>>><br>>> profile - profiler, hotshot, etc.
<br>>><br>>> net.protocols - http, imap, pop, ftp, etc.<br>>> Example: net.protocols.http<br>>><br>>> net.formats - mail, mime, binhex, etc.<br>>> Example: net.formats.mime
<br>>><br>>> net.tools - webbrowser, SocketServer, robotparser, etc.<br>>><br>>> xml.* - xml-related packages<br>>> Example: xml.sax<br>>><br>>> media.audio - audio packages
<br>>><br>>> media.image - image conversion packages<br>>><br>>> rexec - rename to 'restrict' (Too much confusion with 'regex')<br>>><br>>> python - python language services (compiler, parser, etc.)
<br>>><br>>><br>>> -- Talin<br>_______________________________________________<br>Python-3000 mailing list<br><a href="mailto:Python-3000@python.org">Python-3000@python.org</a><br><a href="http://mail.python.org/mailman/listinfo/python-3000">
http://mail.python.org/mailman/listinfo/python-3000</a><br>Unsubscribe: <a href="http://mail.python.org/mailman/options/python-3000/brett%40python.org">http://mail.python.org/mailman/options/python-3000/brett%40python.org
</a><br></blockquote></div><br>