1. 24 Sep, 2001 24 commits
  2. 23 Sep, 2001 9 commits
    • Tim Peters's avatar
      Part of a partial solution to SF bugs 463378, 463381, 463383, 463384. · 28355496
      Tim Peters authored
      This almost entirely replaces how pydoc pumps out class docs, but only
      in text mode (like help(whatever) from a Python shell), not in GUI mode.
      
      A class C's attrs are now grouped by the class in which they're defined,
      attrs defined by C first, then inherited attrs grouped by alphabetic order
      of the defining classes' names.
      
      Within each of those groups, the attrs are subgrouped according to whether
      they're plain methods, class methods, static methods, properties, or data.
      Note that pydoc never dumped class data attrs before.  If a class data
      attr is implemented via a data descriptor, the data docstring (if any)
      is also displayed (e.g., file.softspace).
      
      Within a subgroup, the attrs are listed alphabetically.
      
      This is a friggin' mess, and there are bound to be glitches.  Please
      beat on it and complain!  Here are three glitches:
      
      1. __new__ gets classifed as 'data', for some reason.  This will
         have to get fixed in inspect.py, but since the latter is already
         looking for any clue that something is a method, pydoc will
         almost certainly not know what to do with it when its classification
         changes.
      
      2. properties are special-cased to death.  Unlike any other kind of
         function or method, they don't have a __name__ attr, so none of
         pydoc's usual code can deal with them.  Worse, the getter and
         setter and del'er methods associated with a property don't appear
         to be discoverable from Python, so there's really nothing I can
         think of to do here beyond just listing their names.
      
         Note that a property can't be given a docstring, either (or at least
         I've been unable to sneak one in) -- perhaps the property()
         constructor could take an optional doc argument?
      
      3. In a nested-scopes world, pydoc still doesn't know anything about
         nesting, so e.g. classes nested in functions are effectively invisible.
      28355496
    • Martin v. Löwis's avatar
    • Tim Peters's avatar
      Install the new Lib/email pkg. · 8ca177bd
      Tim Peters authored
      Create & populate the new Lib/test/data directory.
      8ca177bd
    • Tim Peters's avatar
      2c9aa5ea
    • Barry Warsaw's avatar
      The test data (mostly example messages) for the email package test · d31db7e9
      Barry Warsaw authored
      suite.  Note that other tests can put input data in this directory.
      d31db7e9
    • Barry Warsaw's avatar
      4107585a
    • Barry Warsaw's avatar
      The email package version 1.0, prototyped as mimelib · ba92580f
      Barry Warsaw authored
      <http://sf.net/projects/mimelib>.  There /are/ API differences between
      mimelib and email, but most of the implementations are shared (except
      where cool Py2.2 stuff like generators are used).
      ba92580f
    • Fred Drake's avatar
      Added API information for the PyCallIter_*() and PySeqIter_*() functions. · d61d0d3f
      Fred Drake authored
      Added signatures for some new PyType_*() functions.
      d61d0d3f
    • Tim Peters's avatar
      New function classify_class_attrs(). As a number of SF bug reports · 13b49d33
      Tim Peters authored
      point out, pydoc doesn't tell you where class attributes were defined,
      gets several new 2.2 features wrong, and isn't aware of some new features
      checked in on Thursday <wink>.  pydoc is hampered in part because
      inspect.py has the same limitations.  Alas, I can't think of a way to
      fix this within the current architecture of inspect/pydoc:  it's simply
      not possible in 2.2 to figure out everything needed just from examining
      the object you get back from class.attr.  You also need the class
      context, and the method resolution order, and tests against various things
      that simply didn't exist before.  OTOH, knowledge of how to do that is
      getting quite complex, so doesn't belong in pydoc.
      
      classify_class_attrs takes a different approach, analyzing all
      the class attrs "at once", and returning the most interesting stuff for
      each, all in one gulp.  pydoc needs to be reworked to use this for
      classes (instead of the current "filter dir(class) umpteen times against
      assorted predicates" approach).
      13b49d33
  3. 22 Sep, 2001 7 commits