summaryrefslogtreecommitdiffstats
path: root/Python/bltinmodule.c
Commit message (Collapse)AuthorAgeFilesLines
* Added new builtin standard exception: NotImplementedError (its CBarry Warsaw1998-12-011-0/+2
| | | | counterpart is PyExc_NotImplementedError).
* Fix cosmetic bug in delattr docstring discovered by JvR.Guido van Rossum1998-11-231-1/+1
|
* builtin_apply(): Second argument type check is relaxed to allow any sequence.Barry Warsaw1998-10-011-6/+18
|
* Several changes that Python carry on in the face of errors in theBarry Warsaw1998-09-141-26/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | initialization of class exceptions. Specifically: init_class_exc(): This function now returns an integer status of the class exception initialization. No fatal errors in this method now. Also, use PySys_WriteStderr() when writing error messages. When an error occurs in this function, 0 is returned, but the partial creation of the exception classes is not undone (this happens elsewhere). Things that could trigger the fallback: - exceptions.py fails to be imported (due to syntax error, etc.) - one of the exception classes is missing (e.g. due to library version mismatch) - exception class can't be inserted into __builtin__'s dictionary - MemoryError instance can't be pre-allocated - some other PyErr_Occurred newstdexception(): Changed the error message. This is still a fatal error because if the string based exceptions can't be created, we really can't continue. initerrors(): Be sure to xdecref the .exc field, which might be non-NULL if class exceptions init was aborted. _PyBuiltin_Init_2(): If class exception init fails, print a warning message and reinstate the string based exceptions.
* Should no longer surround PyOS_Readline() call withGuido van Rossum1998-09-031-4/+0
| | | | | Py_{BEGIN,END}_ALLOW_THREADS macros. Also get rid of the declaration for it (it's now in pythonrun.h).
* Added support for two new standard errors: EnvironmentError andBarry Warsaw1998-07-231-5/+16
| | | | | | | | | OSError. The EnvironmentError serves primarily as the (common implementation) base class for IOError and OSError. OSError is used by posixmodule.c Also added tuple definition of EnvironmentError when using string based exceptions.
* Small changes to map() and filter():Guido van Rossum1998-07-101-5/+8
| | | | | | | (1) If a sequence S is shorter than len(S) indicated, don't fail -- just use the shorter size. (I.e, len(S) is just a hint.) (2) Implement the special case map(None, S) as list(S) -- it's faster.
* Fix a stupid little bug: len() of an unsized returns -1 and leaves anGuido van Rossum1998-06-291-1/+5
| | | | exception waiting to happen next...
* Experimental feature: add default argument to getattr().Guido van Rossum1998-06-291-5/+13
|
* Added doc strings.Guido van Rossum1998-06-261-52/+432
|
* In raw_input(prompt), make sure that str(prompt) really a stringGuido van Rossum1998-06-261-0/+2
| | | | object before using it.
* Remove a few unused locals (I love VC++ for this!).Guido van Rossum1998-05-291-2/+0
|
* A bunch of functions are now properly implemented in abstract.c, andGuido van Rossum1998-05-221-356/+40
| | | | | | | | | | | the code here becomes much simpler. In particular: abs(), divmod(), pow(), int(), long(), float(), len(), tuple(), list(). Also make sure that no use of a function pointer gotten from a tp_as_sequence or tp_as_mapping structure is made without checking it for NULL first. A few other cosmetic things, such as properly reindenting slice().
* Implement round() slightly different, so that for negative ndigits noGuido van Rossum1998-05-091-5/+13
| | | | | additional errors happen in the last step. The trick is to avoid division by 0.1**n -- multiply by 10.0**n instead.
* Fred's right -- we need PyList_SET_ITEM().Guido van Rossum1998-04-241-1/+1
|
* In-line the code in range() to set the list items; there's really noGuido van Rossum1998-04-231-1/+1
| | | | | need to call PyList_SetItem(v,i,w) when PyList_GET_ITEM(v,i)=w {sic} will do.
* Make new gcc -Wall happyGuido van Rossum1998-04-101-2/+4
|
* Use a faster way to check for null bytes in the string argument forGuido van Rossum1998-03-131-7/+18
| | | | int(), long(), float().
* Need a cast when comparing type object in isinstance()Guido van Rossum1997-12-101-1/+1
|
* Support type objects in isinstance().Guido van Rossum1997-12-021-10/+15
| | | | | E.g. isinstance('',types.StringType) will return true now instead of raising a TypeError exception. This is for JPython compatibility.
* Release interpreter lock around readline call in [raw_]input().Guido van Rossum1997-09-261-0/+2
|
* initerrors(): Eliminate circular reference which was causing a smallBarry Warsaw1997-09-181-3/+3
| | | | | | | | | | | | but annoying memory leak. This was introduced when PyExc_Exception was added; the loop above populating the PyExc_StandardError exception tuple started at index 1 in bltin_exc, but PyExc_Exception was added at index 0, so PyExc_StandardError was getting inserted in itself! How else can a tuple include itself?! Change the loop to start at index 2. This was a *fun* one! :-)
* [Py_Exc]NumberError => [Py_Exc]ArithmeticErrorBarry Warsaw1997-09-161-7/+7
|
* Introduce PyExc_Exception as the conceptual root class for all exceptions.Guido van Rossum1997-09-161-0/+7
|
* First part of package support.Guido van Rossum1997-09-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This doesn't yet support "import a.b.c" or "from a.b.c import x", but it does recognize directories. When importing a directory, it initializes __path__ to a list containing the directory name, and loads the __init__ module if found. The (internal) find_module() and load_module() functions are restructured so that they both also handle built-in and frozen modules and Mac resources (and directories of course). The imp module's find_module() and (new) load_module() also have this functionality. Moreover, imp unconditionally defines constants for all module types, and has two more new functions: find_module_in_package() and find_module_in_directory(). There's also a new API function, PyImport_ImportModuleEx(), which takes all four __import__ arguments (name, globals, locals, fromlist). The last three may be NULL. This is currently the same as PyImport_ImportModule() but in the future it will be able to do relative dotted-path imports. Other changes: - bltinmodule.c: in __import__, call PyImport_ImportModuleEx(). - ceval.c: always pass the fromlist to __import__, even if it is a C function, so PyImport_ImportModuleEx() is useful. - getmtime.c: the function has a second argument, the FILE*, on which it applies fstat(). According to Sjoerd this is much faster. The first (pathname) argument is ignored, but remains for backward compatibility (so the Mac version still works without changes). By cleverly combining the new imp functionality, the full support for dotted names in Python (mini.py, not checked in) is now about 7K, lavishly commented (vs. 14K for ni plus 11K for ihooks, also lavishly commented). Good night!
* Removed obsolete exception PyExc_AccessError.Barry Warsaw1997-08-291-43/+171
| | | | | | | | | | | | | | | | | | | | | Added PyErr_MemoryErrorInst to hold the pre-instantiated instance when using class based exceptions. Simplified the creation of all built-in exceptions, both class based and string based. Actually, for class based exceptions, the string ones are still created just in case there's a problem creating the class based ones (so you still get *some* exception handling!). Now the init and fini functions run through a list of structure elements, creating the strings (and optionally classes) for every entry. initerrors(): the new base class exceptions StandardError, LookupError, and NumberError are initialized when using string exceptions, to tuples containing the list of derived string exceptions. This GvR trick enables forward compatibility! One bit of nastiness is that the C code has to know the inheritance tree embodied in exceptions.py. Added the two phase init and fini functions.
* Two new built-in functions: issubclass() and isinstance(). Both takeBarry Warsaw1997-08-221-5/+59
| | | | | | | | | | | | classes as their second arguments. The former takes a class as the first argument and returns true iff first is second, or is a subclass of second. The latter takes any object as the first argument and returns true iff first is an instance of the second, or any subclass of second. Also, change all occurances of pointer compares against PyExc_IndexError with PyErr_ExceptionMatches() calls.
* The last of the mass checkins for separate (sub)interpreters.Guido van Rossum1997-08-021-50/+71
| | | | | | | Everything should now work again. See the comments for the .h files mass checkin (e.g. pystate.h) for more detail.
* PyObject_Compare can raise an exception now.Guido van Rossum1997-05-231-4/+14
|
* Oops -- missed FloatingPointError in renaming.Guido van Rossum1997-05-091-2/+2
|
* Instead of importing graminit.h whenever one of the three grammar 'root'Guido van Rossum1997-05-071-7/+6
| | | | symbols is needed, define these in Python.h with a Py_ prefix.
* New dir() function --Guido van Rossum1997-05-061-22/+48
| | | | | | - uses abstract interface where possible - uses __members__ and __methods__ - returns [] when an object has no info available
* Avoid sprintf buffer overflow if more than 9999 arguments.Guido van Rossum1997-04-301-1/+1
|
* Quickly renamed the remaining files -- this directory is done.Guido van Rossum1997-04-291-662/+677
|
* Keep gcc -Wall and Microsoft VC happy.Guido van Rossum1997-04-111-3/+5
|
* 1. Add string conversions to int(), long(), float(). (Not to complex()!)Guido van Rossum1997-03-311-7/+127
| | | | | | | | | | 2. Fix two bugs in complex(): - Memory leak when using complex(classinstance) -- r was never DECREF'ed. - Conversion of the second argument, if not complex, was done using the type vector of the 1st.
* Define __debug__ as 0 if -O is given, 1 otherwise. Also test forGuido van Rossum1997-03-111-0/+4
| | | | errors in initializing the dictionary.
* Changes for Lee Busby's SIGFPE patch set.Guido van Rossum1997-02-141-0/+2
| | | | | New file pyfpe.c and exception FloatingPointError. Surround some f.p. operations with PyFPE macro brackets.
* Added intern() function.Guido van Rossum1997-02-141-0/+14
|
* Intern the string "__complex__".Guido van Rossum1997-01-181-1/+1
|
* Add unistd.h to make gcc -Wall happy.Guido van Rossum1996-12-101-0/+4
|
* Support __complex__ method on instances, for complex() conversion.Guido van Rossum1996-12-051-1/+23
| | | | Keep gcc -Wall happy.
* New permission notice, includes CNRI.Guido van Rossum1996-10-251-13/+20
|
* Forget about Ellipses b/w compatibility.Guido van Rossum1996-10-161-2/+0
|
* Ellipses -> Ellipsis rename (the dictionary really says that it shouldGuido van Rossum1996-10-111-1/+3
| | | | | | | | be Ellipsis!). Bumped the API version because a linker-visible symbol is affected. Old C code will still compile -- there's a b/w compat macro. Similarly, old Python code will still run, builtin exports both Ellipses and Ellipsis.
* Stupid bug: complex(x,y) would yield x+xjGuido van Rossum1996-09-071-1/+1
|
* Don't die in resizestring() on filter(<func>, "").Guido van Rossum1996-08-161-1/+1
|
* Include mymath.h instead of declaring prototypes for math functions.Guido van Rossum1996-08-081-5/+13
| | | | Fix leak and unchecked error in complex().
* Add 'Ellipses' object.Guido van Rossum1996-07-301-0/+1
|
* Changes for slice and ellipsesGuido van Rossum1996-07-301-0/+23
|