Commit Graph

32254 Commits

Author SHA1 Message Date
Raymond Hettinger 9c1491f37c * Add a fast equality check path for frozensets where the hash value has
already been computed.
* Apply a GET_SIZE macro().
2005-08-24 00:24:40 +00:00
Gregory P. Smith 26292a3af0 Remove the C99 "ULL" suffix from the 64bit unsigned long constants.
VC++6 doesn't accept them.

This *will* result in tons of the following warning from gcc 3.x:
(gcc "2.96ish" doesn't issue this warning)

 warning: integer constant is too large for "long" type

the code compiles fine regardless.  squashing the gcc warnings
is the next task.

Would someone on windows please confirm that this does or does not
compile and if it does or does not pass the test_hashlib.py unit
tests.
2005-08-23 21:30:03 +00:00
Gregory P. Smith ade9733801 Add a check for the OpenSSL version number to conditionally compile
the _hashlibopenssl module (>= 0.9.7 required) and to not compile the
sha256 and sha512 modules if OpenSSL >= 0.9.8 is found.
2005-08-23 21:19:40 +00:00
Raymond Hettinger 2e8665ae43 More tutorial nits. 2005-08-23 18:26:00 +00:00
Raymond Hettinger 71da38b1a7 SF bug #1168135: Python 2.5a0 Tutorial errors and observations (Contributed by Michael R Bax.) 2005-08-23 18:02:28 +00:00
Raymond Hettinger e66d437139 SF bug #1168135: Python 2.5a0 Tutorial errors and observations
(Contributed by Michael R Bax.)
2005-08-23 15:00:45 +00:00
Andrew M. Kuchling 5c419a9fe4 In an e-mail to the webmaster alias, some suggested adding this text. Windows users, please correct/expand as necessary. 2005-08-23 13:48:21 +00:00
Fred Drake b406905f33 ord() documentation update; this is what remains applicable from
SF patch #1057588; other changes make the rest of the patch out of date
or otherwise unnecessary
2005-08-23 04:33:29 +00:00
Fred Drake 7ed44e52aa add note about "markupbase" not being intended for direct use
(closes SF bug #736659, patch #901369)
2005-08-23 04:06:46 +00:00
Kurt B. Kaiser 0cd233f487 Revert previous code elimination, 'filename' is needed. 2005-08-23 03:25:38 +00:00
Kurt B. Kaiser 2618c7fadc 1. Mac line endings were incorrect when pasting code from some browsers
when using X11 and the Fink distribution.  Python Bug 1263656.
2. Eliminate duplicated code in ScriptBinding.run_module_event()
Modified Files:
 	NEWS.txt ScriptBinding.py
2005-08-23 02:27:23 +00:00
Andrew M. Kuchling 88b8582e45 Typo fixes 2005-08-23 00:57:07 +00:00
Andrew M. Kuchling 150e349be1 Note various items; write some shorter sections 2005-08-23 00:56:06 +00:00
Georg Brandl f33d01d304 bug [ 1266296 ] Mistakes in decimal.Context.subtract documentation 2005-08-22 19:35:18 +00:00
Gregory P. Smith 7208af47f8 whoops, missed adding this last night in my hashlib commit 2005-08-22 18:31:41 +00:00
Georg Brandl f0de6a18bb Bug #1266283: lexists() is not exported from os.path 2005-08-22 18:02:59 +00:00
Gregory P. Smith f21a5f7739 [ sf.net patch # 1121611 ]
A new hashlib module to replace the md5 and sha modules.  It adds
support for additional secure hashes such as SHA-256 and SHA-512.  The
hashlib module uses OpenSSL for fast platform optimized
implementations of algorithms when available.  The old md5 and sha
modules still exist as wrappers around hashlib to preserve backwards
compatibility.
2005-08-21 18:45:59 +00:00
Georg Brandl 33a5f2af59 Fix BZ2File.(x)readlines() for files without a newline. 2005-08-21 14:16:04 +00:00
Raymond Hettinger f755432f41 SF bug #1168135: Python 2.5a0 Tutorial errors and observations
(Contributed by Michael R Bax.)
2005-08-21 12:35:29 +00:00
Georg Brandl 6cd5377c72 Empty sets and frozensets are also false. 2005-08-21 12:22:58 +00:00
Raymond Hettinger 1823ae7e36 SF bug #1121416: zip incorrectly and incompletely documented
sequences ==> iterables
2005-08-21 11:58:06 +00:00
Raymond Hettinger a30616a88d SF bug #1249837: container methods raise KeyError not IndexError
Minor clarification.
2005-08-21 11:26:14 +00:00
Raymond Hettinger a710b331da SF bug #1242657: list(obj) can swallow KeyboardInterrupt
Fix over-aggressive PyErr_Clear().  The same code fragment appears in
various guises in list.extend(), map(), filter(), zip(), and internally
in PySequence_Tuple().
2005-08-21 11:03:59 +00:00
Georg Brandl b285974c00 Mention explicitly the False is considered false. 2005-08-21 09:41:21 +00:00
Raymond Hettinger 7638249646 Fix PySet_Pop() notes. 2005-08-21 00:08:36 +00:00
Raymond Hettinger 0cbf400419 Add info about the set API. 2005-08-20 23:52:30 +00:00
Raymond Hettinger 91e27c253c Implement random.sample() using sets instead of dicts. 2005-08-19 01:36:35 +00:00
Andrew M. Kuchling e0245143af Typo fix 2005-08-18 21:45:31 +00:00
Raymond Hettinger 1a663911d2 Fix markup. 2005-08-18 21:27:11 +00:00
Walter Dörwald cca3af3b71 Fix typo (fixes SF bug #1263086). 2005-08-18 19:40:39 +00:00
Raymond Hettinger d8e133865d Add shortcuts for a|a and a&a. 2005-08-17 12:27:17 +00:00
Raymond Hettinger 94fedf9bfd Expand the API notes. 2005-08-17 12:23:45 +00:00
Raymond Hettinger 0c230b9dac Note that the PyNumber protocol can access most set methods directly. 2005-08-17 10:05:22 +00:00
Raymond Hettinger f81e45023e Fix nits. 2005-08-17 02:19:36 +00:00
Raymond Hettinger f408ddf4a0 Results of a line-by-line comparison back to dictobject.c.
* set_merge() cannot assume that the table doesn't resize during iteration.

* convert some unnecessary tests to asserts -- they were necessary in
  dictobject.c because PyDict_Next() is a public function.  The same is
  not true for set_next().

* re-arrange the order of functions to more closely match the order
  in dictobject.c.  This makes it must easier to compare the two
  and ought to simplify any issues of maintaining both.
2005-08-17 00:27:42 +00:00
Raymond Hettinger c47e01d020 Numerous fix-ups to C API and docs. Added tests for C API. 2005-08-16 10:44:15 +00:00
Raymond Hettinger 994c2c1c69 DECREF --> XDECREF 2005-08-16 03:54:11 +00:00
Raymond Hettinger beb3101b05 Add a C API for sets and frozensets. 2005-08-16 03:47:52 +00:00
Barry Warsaw e2eca0b709 Port from the Python 2.4 branch, patches for SF bug # 900092,
hotshot.stats.load.
2005-08-15 18:14:19 +00:00
Martin v. Löwis f09582eeda Correct definition of ST_GEN_IDX. 2005-08-14 21:42:34 +00:00
Raymond Hettinger ce8185e642 More function re-ordering (placing like functions together). 2005-08-13 09:28:48 +00:00
Raymond Hettinger ed6c1ef8c3 * Bring lookkey() and lookkey_string() closer to dict version.
* Use set_next() for looping in issubset() and frozenset_hash().
* Re-order the presentation of cmp and hash functions.
2005-08-13 08:28:03 +00:00
Phillip J. Eby 00148226df Fix a too-aggressive assert (see SF#1257960). Previously, gen_iternext
was never called during interpreter shutdown GC, so the f_back!=NULL
assertion was correct.  Now that generators get close()d during GC,
the assertion was being triggered because the generator close() was being
called as the top-level frame.  However, nothing actually is broken by
this; it's just that the condition was unexpected in previous Python
versions.
2005-08-13 03:29:00 +00:00
Raymond Hettinger 038ca2a551 Teach the sets module to correctly compute s-=s and s^=s as the empty set. 2005-08-13 02:29:58 +00:00
Neil Schemenauer f98e6b15ba Fix pystack command. 2005-08-13 00:28:41 +00:00
Raymond Hettinger 97979ddc14 * Fix SF #1257731. Make __contains__(), remove(), and discard() only do
a frozenset conversion when the initial search attempt fails with a
  TypeError and the key is some type of set.  Add a testcase.

* Eliminate a duplicate if-stmt.
2005-08-12 23:58:22 +00:00
Raymond Hettinger b02c35e208 * Fix SF #1257731. Make __contains__(), remove(), and discard() only do
a frozenset conversion when the initial search attempt fails with a
  TypeError and the key is some type of set.  Add a testcase.

* Eliminate a duplicate if-stmt.
2005-08-12 20:48:39 +00:00
Neil Schemenauer cf52c07843 Change the %s format specifier for str objects so that it returns a
unicode instance if the argument is not an instance of basestring and
calling __str__ on the argument returns a unicode instance.
2005-08-12 17:34:58 +00:00
Andrew M. Kuchling ba7d95e215 Document 'istext' parameter 2005-08-12 14:02:32 +00:00
Raymond Hettinger c991db240c * Add short-circuit code for in-place operations with self (such as
s|=s, s&=s, s-=s, or s^=s).  Add related tests.

* Improve names for several variables and functions.

* Provide alternate table access functions (next, contains, add, and discard)
  that work with an entry argument instead of just a key.  This improves
  set-vs-set operations because we already have a hash value for each key
  and can avoid unnecessary calls to PyObject_Hash().  Provides a 5% to 20%
  speed-up for quick hashing elements like strings and integers.  Provides
  much more substantial improvements for slow hashing elements like tuples
  or objects defining a custom __hash__() function.

* Have difference operations resize() when 1/5 of the elements are dummies.
  Formerly, it was 1/6.  The new ratio triggers less frequently and only
  in cases that it can resize quicker and with greater benefit.  The right
  answer is probably either 1/4, 1/5, or 1/6.  Picked the middle value for
  an even trade-off between resize time and the space/time costs of dummy
  entries.
2005-08-11 07:58:45 +00:00