Guido van Rossum
bf935fde15
string_contains(): speed up by avoiding function calls where
...
possible. This always called PyUnicode_Check() and PyString_Check(),
at least one of which would call PyType_IsSubtype(). Also, this would
call PyString_Size() on known string objects.
2002-08-24 06:57:49 +00:00
Guido van Rossum
9d6897accc
Speed up the most egregious "if token in (long tuple)" cases by using
...
a dict instead. (Alas, using a Set would be slower instead of
faster.)
2002-08-24 06:54:19 +00:00
Guido van Rossum
6248f441ea
Speedup for PyObject_IsTrue(): check for True and False first.
...
Because all built-in tests return bools now, this is the most common
path!
2002-08-24 06:31:34 +00:00
Raymond Hettinger
1b9f5d4c1a
At Tim Peter's suggestion, propagated GvR's binary operator changes to
...
the inplace operators. The strategy is to have the operator overloading
code do the work and then to define equivalent method calls which rely on
the operators. The changes facilitate proper application of TypeError
and NonImplementedErrors.
Added corresponding tests to the test suite to make sure both the operator
and method call versions get exercised.
Add missing tests for difference_update().
2002-08-24 06:19:02 +00:00
Guido van Rossum
81912d4764
Speedup for PyObject_RichCompareBool(): PyObject_RichCompare() almost
...
always returns a bool, so avoid calling PyObject_IsTrue() in that
case.
2002-08-24 05:33:28 +00:00
Raymond Hettinger
d50185127f
Since instances of _TemporarilyImmutableSet are always thrown away
...
immediately after the comparison, there in no use in caching the hashcode.
The test, 'if self._hashcode is None', never fails. Removing the caching
saves a few lines and a little time.
2002-08-24 04:47:42 +00:00
Raymond Hettinger
045e51a9a5
Expanded tests for sets of sets.
2002-08-24 02:56:01 +00:00
Raymond Hettinger
fa1480f686
1. Removed module self test in favor of unittests -- Timbot's suggestion.
...
2. Replaced calls to Set([]) with Set() -- Timbot's suggestion
3. Fixed subtle bug in sets of sets:
The following code did not work (will add to test suite):
d = Set('d')
s = Set([d]) # Stores inner set as an ImmutableSet
s.remove(d) # For comparison, wraps d in _TemporarilyImmutableSet
The comparison proceeds by computing the hash of the
_TemporarilyImmutableSet and finding it in the dictionary.
It then verifies equality by calling ImmutableSet.__eq__()
and crashes from the binary sanity check.
The problem is that the code assumed equality would be checked
with _TemporarilyImmutableSet.__eq__().
The solution is to let _TemporarilyImmutableSet derive from BaseSet
so it will pass the sanity check and then to provide it with the
._data element from the wrapped set so that ImmutableSet.__eq__()
will find ._data where it expects.
Since ._data is now provided and because BaseSet is the base class,
_TemporarilyImmutableSet no longer needs .__eq__() or .__ne__().
Note that inheriting all of BaseSet's methods is harmless because
none of those methods (except ones starting with an underscore)
can mutate the .data element. Also _TemporarilyImmutableSet is only
used internally as is not otherwise visible.
2002-08-24 02:35:48 +00:00
Fred Drake
055be47b43
Fix typo reported to python-docs.
2002-08-23 21:19:53 +00:00
Tim Peters
53506be258
pop() docstring: this isn't a randomly-chosen element, it's merely
...
arbitrary. I already changed the docs for this.
2002-08-23 20:36:58 +00:00
Tim Peters
d06d03041b
Comment repair.
2002-08-23 20:06:42 +00:00
Guido van Rossum
2023c9b84a
Fix SF bug 599128, submitted by Inyeol Lee: .replace() would do the
...
wrong thing for a unicode subclass when there were zero string
replacements. The example given in the SF bug report was only one way
to trigger this; replacing a string of length >= 2 that's not found is
another. The code would actually write outside allocated memory if
replacement string was longer than the search string.
(I wonder how many more of these are lurking? The unicode code base
is full of wonders.)
Bugfix candidate; this same bug is present in 2.2.1.
2002-08-23 18:50:21 +00:00
Guido van Rossum
8b1a6d694f
Code by Inyeol Lee, submitted to SF bug 595350, to implement
...
the string/unicode method .replace() with a zero-lengt first argument.
Inyeol contributed tests for this too.
2002-08-23 18:21:28 +00:00
Tim Peters
280488b9a3
Whitespace normalization.
2002-08-23 18:19:30 +00:00
Raymond Hettinger
fa8dd5f407
Fix markup and punctuation
2002-08-23 18:10:54 +00:00
Tim Peters
7c7efe9073
Got rid of the toy _Set class, in favor of sets.Set.
2002-08-23 17:55:54 +00:00
Tim Peters
b81b252fab
s/_as_Temporarily_Immutable/_as_temporarily_immutable/g, because the
...
latter is what the code actually does.
2002-08-23 17:48:23 +00:00
Tim Peters
54fd3e6ffc
pop(): An arbitrary element is removed, not a random element.
2002-08-23 17:45:43 +00:00
Fred Drake
d10c6c949a
Adjust the markup in a few places so this will actually format.
...
Remove the third column in the tables since it isn't used.
2002-08-23 17:22:36 +00:00
Fred Drake
d526011091
Add an entry for the sets module documentation.
...
Move another entry so the boilerplate doesn't get mixed up with
document-specific content.
2002-08-23 15:38:02 +00:00
Raymond Hettinger
584cb198f7
Load docs for sets.py
2002-08-23 15:18:38 +00:00
Guido van Rossum
e399d08a4a
RH pointed out that discard(element) doesn't do the transformation on
...
the element if necessary. Fixed by calling self.remove(element).
2002-08-23 14:45:02 +00:00
Guido van Rossum
86c659a329
The error messages in err_args() -- which is only called when the
...
required number of args is 0 or 1 -- were reversed. Also change "1"
into "exactly one", the same words as used elsewhere for this
condition.
2002-08-23 14:11:35 +00:00
Jack Jansen
b2628b0f37
Added the standard MacOSX location for documentation inside a framework
...
to the list of places where pydoc looks for HTML documents.
2002-08-23 08:40:42 +00:00
Guido van Rossum
040d7ca498
Rewritten using the tokenize module, which gives us a real tokenizer
...
rather than a number of approximating regular expressions.
Alas, it is 3-4 times slower. Let that be a challenge for the
tokenize module.
2002-08-23 01:36:01 +00:00
Jack Jansen
fd372aa8e9
Don't build ConfigurePythonCarbon and ConfigurePythonClassic any longer,
...
classic Python is gone.
2002-08-22 23:37:00 +00:00
Jack Jansen
5fd945895e
For MacPython-OS9 verbose is the default.
2002-08-22 23:36:11 +00:00
Jack Jansen
d59f8d0691
Interface to Apple Help Manager.
2002-08-22 23:31:37 +00:00
Jack Jansen
f34a8bced2
Moved CoreFoundation type support to bgen/macsupport.
2002-08-22 23:30:49 +00:00
Jack Jansen
286e838f22
Added PyDoc_STR's.
2002-08-22 23:29:45 +00:00
Greg Ward
e3bd104aa7
Tweak wordsep_re again: this time to recognize an em-dash with
...
any non-whitespace characters adjacent, not just \w.
2002-08-22 21:28:00 +00:00
Greg Ward
c6edb37268
Test an em-dash with adjacent punctuation.
2002-08-22 21:27:05 +00:00
Greg Ward
715debd3d1
Factored out BaseTestCase.check_split() method -- use it wherever
...
we need to test TextWrapper._split().
2002-08-22 21:16:25 +00:00
Greg Ward
24a1c9cff5
Test _split() method in test_unix_options().
2002-08-22 21:12:54 +00:00
Greg Ward
34f995b3c1
Add test_unix_options() to WrapTestCase to test for SF bug #596434 .
2002-08-22 21:10:07 +00:00
Greg Ward
cce4d67fc4
Fix SF bug #596434 : tweak wordsep_re so "--foo-bar" now splits
...
into /--foo-/bar/ rather than /--/foo-/bar/. Needed for Optik and
Docutils to handle Unix-style command-line options properly.
2002-08-22 21:04:21 +00:00
Guido van Rossum
ae4693129a
Standardize behavior: no docstrings in test functions.
2002-08-22 20:22:16 +00:00
Guido van Rossum
9eee554bd9
Standardize behavior: no docstrings in test functions. Also use
...
unittest.makeSuite() rather than loader.loadTestsFromTestCase().
2002-08-22 20:21:30 +00:00
Guido van Rossum
327af775b8
Standardize behavior: no docstrings in test functions. Also strip
...
trailing whitespace.
2002-08-22 20:13:47 +00:00
Guido van Rossum
1c48654e01
Document that docstrings are verboten for test functions.
...
Expand the example to show some actual test functions, and a setUp()
and tearDown() method.
2002-08-22 20:08:14 +00:00
Guido van Rossum
8ccd9b63cc
Standardize behavior: no docstrings in test functions. Also get rid
...
of dummy_test_TemporaryFile class; when NamedTemporaryFile and
TemporaryFile are the same, simply don't add a test suite for
TemporaryFile.
2002-08-22 20:02:03 +00:00
Guido van Rossum
a5ce2e8c17
Standardize behavior: no docstrings in test functions; add a proper
...
test_main() that creates a suite and runs it. Don't mess with sys.path!!!
2002-08-22 19:57:50 +00:00
Greg Ward
9ad15a3dff
Add test_em_dash() to WrapTestCase to make sure that TextWrapper handles
...
em-dashes -- like this -- properly. (Also--like this. Although this
usage may be incompatible with fixing bug #596434 ; we shall see.)
2002-08-22 19:47:27 +00:00
Guido van Rossum
32c2ae7f4a
Standardize behavior: no docstrings in test functions.
2002-08-22 19:45:32 +00:00
Guido van Rossum
2e8bba5c21
Standardize behavior: create a single suite merging all test cases.
2002-08-22 19:40:33 +00:00
Guido van Rossum
7e8fdba01c
Standardize behavior: no docstrings in test functions; create a single
...
suite merging all test cases.
2002-08-22 19:38:14 +00:00
Guido van Rossum
cb682584a3
Made it more readable.
2002-08-22 19:18:56 +00:00
Greg Ward
373198e751
Fix peculiar (and ungrammatical) wording in an example program.
2002-08-22 19:15:35 +00:00
Greg Ward
f69d3c9849
Simplification/cleanup in IndentTestCases.
2002-08-22 19:06:45 +00:00
Greg Ward
fd030e46a7
Factor LongWordTestCase out of WrapTestCase, and rename its methods
...
(tests) from test_funky_punc() to test_break_long() and
test_long_words() to test_nobreak_long().
2002-08-22 19:02:37 +00:00