• Tim Peters's avatar
    Generalize dictionary() to accept a sequence of 2-sequences. At the · 1fc240e8
    Tim Peters yazdı
    outer level, the iterator protocol is used for memory-efficiency (the
    outer sequence may be very large if fully materialized); at the inner
    level, PySequence_Fast() is used for time-efficiency (these should
    always be sequences of length 2).
    
    dictobject.c, new functions PyDict_{Merge,Update}FromSeq2.  These are
    wholly analogous to PyDict_{Merge,Update}, but process a sequence-of-2-
    sequences argument instead of a mapping object.  For now, I left these
    functions file static, so no corresponding doc changes.  It's tempting
    to change dict.update() to allow a sequence-of-2-seqs argument too.
    
    Also changed the name of dictionary's keyword argument from "mapping"
    to "x".  Got a better name?  "mapping_or_sequence_of_pairs" isn't
    attractive, although more so than "mosop" <wink>.
    
    abstract.h, abstract.tex:  Added new PySequence_Fast_GET_SIZE function,
    much faster than going thru the all-purpose PySequence_Size.
    
    libfuncs.tex:
    - Document dictionary().
    - Fiddle tuple() and list() to admit that their argument is optional.
    - The long-winded repetitions of "a sequence, a container that supports
      iteration, or an iterator object" is getting to be a PITA.  Many
      months ago I suggested factoring this out into "iterable object",
      where the definition of that could include being explicit about
      generators too (as is, I'm not sure a reader outside of PythonLabs
      could guess that "an iterator object" includes a generator call).
    - Please check my curly braces -- I'm going blind <0.9 wink>.
    
    abstract.c, PySequence_Tuple():  When PyObject_GetIter() fails, leave
    its error msg alone now (the msg it produces has improved since
    PySequence_Tuple was generalized to accept iterable objects, and
    PySequence_Tuple was also stomping on the msg in cases it shouldn't
    have even before PyObject_GetIter grew a better msg).
    1fc240e8
Adı
Son kayıt (commit)
Son güncelleme
Demo Loading commit data...
Doc Loading commit data...
Grammar Loading commit data...
Include Loading commit data...
Lib Loading commit data...
Mac Loading commit data...
Misc Loading commit data...
Modules Loading commit data...
Objects Loading commit data...
PC Loading commit data...
PCbuild Loading commit data...
Parser Loading commit data...
Python Loading commit data...
RISCOS Loading commit data...
Tools Loading commit data...
.cvsignore Loading commit data...
.hgtags Loading commit data...
LICENSE Loading commit data...
Makefile.pre.in Loading commit data...
PLAN.txt Loading commit data...
README Loading commit data...
acconfig.h Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
install-sh Loading commit data...
pyconfig.h.in Loading commit data...
setup.py Loading commit data...