summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fixed macroman<->latin1 conversion. Some chars don'tJack Jansen2001-05-1748-232/+234
| | | | | exist in latin1, but at least the roundtrip results in the same macroman characters.
* Fixed macroman<->latin1 conversion. Some characters don't exist in latin1, ↵Jack Jansen2001-05-177-25/+25
| | | | | | but at least the roundtrip gives the correct macroman characters again.
* Moved the encoding map building logic from the individual mappingMarc-André Lemburg2001-05-1655-162/+75
| | | | | | codec files to codecs.py and added logic so that multi mappings in the decoding maps now result in mappings to None (undefined mapping) in the encoding maps.
* Bah, somehow the macroman<->iso-latin-1 translation got lost during the ↵Jack Jansen2001-05-151-13/+13
| | | | merge. Checking in one fixed file to make sure MacCVS Pro isn't the problem. If it isn't a flurry of checkins will follow tomorrow. If it is... well...
* Speed tuple comparisons in two ways:Tim Peters2001-05-151-22/+23
| | | | | | | | | | | | | | | | | | | | | | | | | 1. Omit the early-out EQ/NE "lengths different?" test. Was unable to find any real code where it triggered, but it always costs. The same is not true of list richcmps, where different-size lists appeared to get compared about half the time. 2. Because tuples are immutable, there's no need to refetch the lengths of both tuples from memory again on each loop trip. BUG ALERT: The tuple (and list) richcmp algorithm is arguably wrong, because it won't believe there's any difference unless Py_EQ returns false for some corresponding elements: >>> class C: ... def __lt__(x, y): return 1 ... __eq__ = __lt__ ... >>> C() < C() 1 >>> (C(),) < (C(),) 0 >>> That doesn't make sense -- provided you believe the defn. of C makes sense.
* Add NEWS item for new string methods.Marc-André Lemburg2001-05-151-0/+25
|
* Just changed "x,y" to "x, y" everywhere (i.e., inserted horizontal spaceTim Peters2001-05-151-37/+34
| | | | after commas that didn't have any).
* Add quoted-printable codecGuido van Rossum2001-05-152-0/+59
|
* Beef up the unicode() description a bit, based on material from AMK'sFred Drake2001-05-151-4/+12
| | | | "What's New in Python ..." documents.
* abspath(): Fix inconsistent indentation.Fred Drake2001-05-151-1/+1
|
* This patch changes the way the string .encode() method works slightlyMarc-André Lemburg2001-05-1511-30/+585
| | | | | | | | | | | | | | | | | | | | | | | | | and introduces a new method .decode(). The major change is that strg.encode() will no longer try to convert Unicode returns from the codec into a string, but instead pass along the Unicode object as-is. The same is now true for all other codec return types. The underlying C APIs were changed accordingly. Note that even though this does have the potential of breaking existing code, the chances are low since conversion from Unicode previously took place using the default encoding which is normally set to ASCII rendering this auto-conversion mechanism useless for most Unicode encodings. The good news is that you can now use .encode() and .decode() with much greater ease and that the door was opened for better accessibility of the builtin codecs. As demonstration of the new feature, the patch includes a few new codecs which allow string to string encoding and decoding (rot13, hex, zip, uu, base64). Written by Marc-Andre Lemburg. Copyright assigned to the PSF.
* Add warnings to the strop module, for to those functions that reallyGuido van Rossum2001-05-153-0/+28
| | | | | | | | | *are* obsolete; three variables and the maketrans() function are not (yet) obsolete. Add a compensating warnings.filterwarnings() call to test_strop.py. Add this to the NEWS.
* Ignore 'build' and 'Makefile.pre'.Guido van Rossum2001-05-151-0/+2
|
* Fix new compiler warnings. Also boost "start" from (C) int to long andTim Peters2001-05-141-5/+5
| | | | | | | | return a (C) long: PyArg_ParseTuple and Py_BuildValue may not let us get at the size_t we really want, but C int is clearly too small for a 64-bit box, and both the start parameter and the return value should work for large mapped files even on 32-bit boxes. The code really needs to be rethought from scratch (not by me, though ...).
* SF patch #418147 Fixes to allow compiling w/ Borland, from Stephen Hansen.Tim Peters2001-05-145-14/+32
|
* fcntl.ioctl(): Update error message; necessity noted by Michael Hudson.Fred Drake2001-05-141-1/+3
|
* Convert a couple of comments to docstrings -- PyUnit can use these whenFred Drake2001-05-141-2/+2
| | | | the regression test is run in verbose mode.
* pprint's workhorse _safe_repr() function took time quadratic in the # ofTim Peters2001-05-143-40/+48
| | | | | | | elements when crunching a list, dict or tuple. Now takes linear time instead -- huge speedup for even moderately large containers, and the code is notably simpler too. Added some basic "is the output correct?" tests to test_pprint.
* Convert the pprint test to use PyUnit.Fred Drake2001-05-141-35/+57
|
* Make sure we include all of Python's numeric types in the data modelFred Drake2001-05-141-1/+2
| | | | | | description, so that the introduction of complex is not a surprise. This closes SF bug #423429.
* Added a WITHOUT_FRAMEWORKS define to all the config files, so that on ↵Jack Jansen2001-05-1414-0/+14
| | | | MacOS<=9 compiles use Universal Headers, not Carbon/Carbon.h.
* Fix a typo, consistently spell ASCII in all caps, and insert blankGuido van Rossum2001-05-141-2/+4
| | | | | lines between paragraphs in Mark Hammond's news item about the default encoding in posixmodule. Resist the temptation to reflow paragraphs.
* Fix the Py_FileSystemDefaultEncoding checkin - declare the variable in a ↵Mark Hammond2001-05-143-11/+13
| | | | fileobject.h, and initialize it in bltinmodule.
* Fix the .find() method for memory maps.Greg Stein2001-05-141-3/+12
| | | | | | | | | | 1) it didn't obey the "start" parameter (and when it does, we must validate the value) 2) the return value needs to be an absolute index, rather than relative to some arbitrary point in the file (checking CVS, it appears this method never worked; these changes bring it into line with typical .find() behavior)
* SF bug[ #423781: pprint.isrecursive() broken.Tim Peters2001-05-144-28/+91
|
* Add mention of the default file system encoding for Windows.Mark Hammond2001-05-141-0/+17
|
* A disgusting "fix" for the test___all__ failure under Windows.Tim Peters2001-05-131-0/+11
|
* Add support for Windows using "mbcs" as the default Unicode encoding when ↵Mark Hammond2001-05-137-56/+197
| | | | dealing with the file system. As discussed on python-dev and in patch 410465.
* Aggressive reordering of dict comparisons. In case of collision, it standsTim Peters2001-05-131-30/+21
| | | | | | | | | | | | to reason that me_key is much more likely to match the key we're looking for than to match dummy, and if the key is absent me_key is much more likely to be NULL than dummy: most dicts don't even have a dummy entry. Running instrumented dict code over the test suite and some apps confirmed that matching dummy was 200-300x less frequent than matching key in practice. So this reorders the tests to try the common case first. It can lose if a large dict with many collisions is mostly deleted, not resized, and then frequently searched, but that's hardly a case we should be favoring.
* Get rid of the superstitious "~" in dict hashing's "i = (~hash) & mask".Tim Peters2001-05-1311-46/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The comment following used to say: /* We use ~hash instead of hash, as degenerate hash functions, such as for ints <sigh>, can have lots of leading zeros. It's not really a performance risk, but better safe than sorry. 12-Dec-00 tim: so ~hash produces lots of leading ones instead -- what's the gain? */ That is, there was never a good reason for doing it. And to the contrary, as explained on Python-Dev last December, it tended to make the *sum* (i + incr) & mask (which is the first table index examined in case of collison) the same "too often" across distinct hashes. Changing to the simpler "i = hash & mask" reduced the number of string-dict collisions (== # number of times we go around the lookup for-loop) from about 6 million to 5 million during a full run of the test suite (these are approximate because the test suite does some random stuff from run to run). The number of collisions in non-string dicts also decreased, but not as dramatically. Note that this may, for a given dict, change the order (wrt previous releases) of entries exposed by .keys(), .values() and .items(). A number of std tests suffered bogus failures as a result. For dicts keyed by small ints, or (less so) by characters, the order is much more likely to be in increasing order of key now; e.g., >>> d = {} >>> for i in range(10): ... d[i] = i ... >>> d {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9} >>> Unfortunately. people may latch on to that in small examples and draw a bogus conclusion. test_support.py Moved test_extcall's sortdict() into test_support, made it stronger, and imported sortdict into other std tests that needed it. test_unicode.py Excluced cp875 from the "roundtrip over range(128)" test, because cp875 doesn't have a well-defined inverse for unicode("?", "cp875"). See Python-Dev for excruciating details. Cookie.py Chaged various output functions to sort dicts before building strings from them. test_extcall Fiddled the expected-result file. This remains sensitive to native dict ordering, because, e.g., if there are multiple errors in a keyword-arg dict (and test_extcall sets up many cases like that), the specific error Python complains about first depends on native dict ordering.
* Got the first MacPython module working under MacOSX/MachO (gestalt). Main ↵Jack Jansen2001-05-123-54/+55
| | | | | | | | changes are including Carbon/Carbon.h in stead of the old headers (unless WITHOUT_FRAMEWORKS is defined, as it will be for classic MacPython) and selectively disabling all the stuff that is unneeded in a unix-Python (event handling, etc).
* Be more sensible about when to use TARGET_API_MAC_OS8 in stead of ↵Jack Jansen2001-05-124-23/+26
| | | | !TARGET_API_MAC_CARBON. This should greatly facilitate porting stuff to OSX in its MachO/BSD incarnation.
* Added iterobject.c to the project. And trying my first checkin at the same time.Jack Jansen2001-05-125-0/+22
|
* Repair "module has no attribute xxx" error msg; bug introduced whenTim Peters2001-05-121-1/+1
| | | | switching from tp_getattr to tp_getattro.
* Refactored, with some future plans in mind.Guido van Rossum2001-05-121-11/+23
| | | | This now uses the new gotofileline() method defined in FileList.py.
* Move the action of loading the configuration to the IdleConf moduleGuido van Rossum2001-05-122-8/+1
| | | | | | rather than the idle.py script. This has advantages and disadvantages; the biggest advantage being that we can more easily have an alternative main program.
* Delete goodname() method, which is unused.Guido van Rossum2001-05-121-11/+7
| | | | | | | Add gotofileline(), a convenience method which I intend to use in a variant. Rename test() to _test().
* Variant of patch #423262: Change module attribute get & setTim Peters2001-05-112-34/+38
| | | | | | Allow module getattr and setattr to exploit string interning, via the previously null module object tp_getattro and tp_setattro slots. Yields a very nice speedup for things like random.random and os.path etc.
* Fix a minor style consistency issue.Fred Drake2001-05-111-3/+3
| | | | | | When getting a string buffer for a string we just created, use PyString_AS_STRING() instead of PyString_AsString() to avoid the call overhead and extra type check.
* Fix one bare except: clause.Fred Drake2001-05-111-1/+1
|
* [].index() raises ValueError if the value is not in the list, so onlyFred Drake2001-05-111-1/+1
| | | | catch that instead of using a bare except clause.
* [].index() raises ValueError if the value is not in the list, so onlyFred Drake2001-05-111-1/+1
| | | | catch that instead of using a bare except clause.
* Only catch NameError and TypeError when attempting to subclass anFred Drake2001-05-111-1/+1
| | | | exception (for compatibility with old versions of Python).
* Remove a bare try/except completely -- it just did not make sense!Fred Drake2001-05-111-12/+12
| | | | Add a comment elsewhere making clear an assumption in the code.
* When guarding an import, only catch ImportError.Fred Drake2001-05-111-1/+1
|
* Clean up a bare except where we only expect to catch pcre.error.Fred Drake2001-05-111-1/+1
|
* Clean up bare except where only IOError makes sense.Fred Drake2001-05-111-1/+1
|
* Clean up bare except: when determining whether a file is seekable.Fred Drake2001-05-111-2/+2
|
* Opening a file for reading can raise IOError, so only catch that.Fred Drake2001-05-111-1/+1
|
* int() of a string is only expected to through ValueError, so do not useFred Drake2001-05-111-2/+2
| | | | a bare except clause.