Commit Graph

77 Commits

Author SHA1 Message Date
Guido van Rossum 4180cf1649 Remove a redundant statement from halfbinop(). 1998-05-13 22:02:16 +00:00
Guido van Rossum b7f1afe4a8 Change the default repr() and str() of class instance objects to look
like <modulename.classname instance at ...> (to match the repr() of
class objects.
1997-12-03 00:06:02 +00:00
Guido van Rossum 3931df9250 Undo another glitch of the automatic not-so-Grand Renaming; some local
variables called 'coerce' were accidentally renamed to
'PyNumber_Coerce'.  Rename them back to coercefunc.
1997-11-18 19:23:07 +00:00
Guido van Rossum 4a2a621907 Write a str() function for class objects that returns
"modulename.classname" instead of returning the same as repr().
1997-10-20 23:26:11 +00:00
Guido van Rossum 04d73c495e Check that all base classes are indeed class objects, rather than
expecting the caller to do so.
1997-10-07 14:54:11 +00:00
Guido van Rossum 7cc56eb524 When creating a class, set its __module__ attribute to the module
whose name is in the current globals' __name__ variable.  If __name__
is not set, ignore this.
1997-09-12 20:04:46 +00:00
Guido van Rossum b2173c3146 Allow assignments to instance.__dict__ and instance.__class__. The
former lets you give an instance a set of new instance vars.  The
latter lets you give it a new class.  Both are typechecked and
disallowed in restricted mode.

For classes, the check for read-only special attributes is tightened
so that only assignments to __dict__, __bases__, __name__,
__getattr__, __setattr__, and __delattr__ (these could be made to work
as well, but I don't know if that's useful -- let's see first whether
mucking with instances will help).
1997-08-25 21:23:56 +00:00
Guido van Rossum a0d349f46a Added separate free list for instance method objects, for a few
percent speed up.  Also add PyMethod_Fini() to discard it.
1997-08-05 02:06:53 +00:00
Guido van Rossum c8b6df9004 PyObject_Compare can raise an exception now. 1997-05-23 00:06:51 +00:00
Guido van Rossum 0add15f6a5 removed last #ifdef SUPPORT_OBSOLETE_ACCESS bits. 1997-05-09 01:07:15 +00:00
Guido van Rossum c0b618a2cc Quickly renamed the last directory. 1997-05-02 03:12:38 +00:00
Guido van Rossum a412d24be0 Intern the various string objects created to speed up lookups. 1997-01-18 07:59:12 +00:00
Guido van Rossum cbd1e4eb5f Yet more elaborate message for exception in __del__.
Make gcc -Wall happy.
1996-12-05 21:52:32 +00:00
Guido van Rossum d266eb460e New permission notice, includes CNRI. 1996-10-25 14:44:06 +00:00
Guido van Rossum 8bcf369cf9 Support passing in an empty dictionary of keywords to newinstanceobject. 1996-10-21 15:12:32 +00:00
Guido van Rossum 22a85e5308 More detailed error message about exception in __del__ 1996-09-11 22:51:57 +00:00
Guido van Rossum e5920bc4c6 Use getstringsize where available instead of strlen. 1996-08-26 14:58:03 +00:00
Guido van Rossum ad8997887b Be a bit more careful with printing a warning for a failed __del__. 1996-08-22 23:15:42 +00:00
Guido van Rossum 019f424a0a More efficient handling of "__doc__" lookup. 1996-08-21 14:54:28 +00:00
Guido van Rossum 89227eb0f5 Write warning about exception in __del__ to stderr, not stdout. 1996-08-20 19:54:29 +00:00
Guido van Rossum 0dfcf753ad Disable support for access statement 1996-08-12 22:00:53 +00:00
Guido van Rossum 2878a69922 Optimizations by Sjoerd:
- define tp_getattro, tp_setattro
- use precreated string objects for most common exceptions and method names
1996-08-09 20:53:24 +00:00
Guido van Rossum 3cb486879a Only __dict__ and __class__ are read-only instance attributes 1996-07-21 02:29:46 +00:00
Guido van Rossum 441e4ab802 new debugger symbol names 1996-05-23 22:46:51 +00:00
Guido van Rossum 6dabc98400 Added __name__ attribute to class instance method objects.
Removed im_doc attribute; __name__ and __doc__ are now handled by
special casing in instancemethodgetattr().  This saves a few bytes and
INCREF/DECREF calls per i.m. object allocation/deallocation.
1996-05-14 21:54:20 +00:00
Sjoerd Mullender 6f011d7ad5 Get ordering right for TRACE_REFS/COUNT_ALLOCS combination (otherwise
may get inc_count sanity check abort).
1995-09-18 10:49:04 +00:00
Sjoerd Mullender 740f357363 Fixed calling of __del__ method with TRACE_REFS defined. 1995-08-28 09:00:43 +00:00
Guido van Rossum ac21f6a579 class objects are read-only in restricted mode 1995-08-04 04:05:31 +00:00
Guido van Rossum a83f270a4b changes for keyword args to built-in functions and classes 1995-07-26 18:07:32 +00:00
Guido van Rossum 1311e3ce73 args to call_object must be tuple or NULL 1995-07-12 02:22:06 +00:00
Guido van Rossum e9df727176 change comparing instance methods 1995-04-06 14:46:51 +00:00
Guido van Rossum e95d92b65e removed unused vars 1995-01-26 00:39:21 +00:00
Guido van Rossum 879c581826 implement coercions involving instances properly 1995-01-10 15:24:06 +00:00
Guido van Rossum 10393b1708 add restrictions in restricted mode 1995-01-10 10:39:49 +00:00
Guido van Rossum e7d444f785 * Objects/classobject.c: added 5th (function) parameter to
instancebinop, to support things like Rational * float; added
	documentation strings to classes and methods
1995-01-07 12:35:18 +00:00
Guido van Rossum 6610ad9d6b Added 1995 to copyright message.
floatobject.c: fix hash().
methodobject.c: support METH_FREENAME flag bit.
1995-01-04 19:07:38 +00:00
Guido van Rossum d7047b395e Lots of minor changes. Note for mappingobject.c: the hash table pointer
can now be NULL.
1995-01-02 19:07:15 +00:00
Guido van Rossum bb3c5f7406 fix comparison of instances without _-cmp__ 1994-11-10 22:31:02 +00:00
Sjoerd Mullender b9a6d12498 Comparison of two class instances without __cmp__ or __rcmp__ methods
was broken.
1994-10-19 15:11:52 +00:00
Guido van Rossum 03093a248d * Include/classobject.h, Objects/classobject.c, Python/ceval.c:
entirely redone operator overloading.  The rules for class
	instances are now much more relaxed than for other built-in types
	(whose coerce must still return two objects of the same type)

	* Objects/floatobject.c: add overflow check when converting float
	to int and implement truncation towards zero using ceil/float

	* Objects/longobject.c: change ValueError to OverflowError when
	converting to int

	* Objects/rangeobject.c: modernized

	* Objects/stringobject.c: use HAVE_LIMITS instead of __STDC__

	* Objects/xxobject.c: changed to use new style (not finished?)
1994-09-28 15:51:32 +00:00
Guido van Rossum 52ca98a390 Yet another version (by me) of __getattr__ etc. 1994-09-05 07:32:29 +00:00
Guido van Rossum e773754ae5 Mods (really diffs to 2.29) by Michael Scharf for alternative __getattr__ etc. 1994-09-05 07:31:41 +00:00
Guido van Rossum 91ab4a8353 If an attribute is deleted, __setattr__ is called with 2 instead of 3
arguments (adding __delattr__ was deemed too much overhead)
1994-08-16 22:13:47 +00:00
Guido van Rossum e149fa2a1e * Objects/classobject.c, Include/classobject.h: added __getattr__
and __setattr__ support to override getattr(x, name) and
	setattr(x, name, value) for class instances.  This uses a special
	hack whereby the class is supposed to be static: the __getattr__
	and __setattr__ methods are looked up only once and saved in the
	instance structure for speed
1994-08-12 12:49:46 +00:00
Guido van Rossum b6775db241 Merge alpha100 branch back to main trunk 1994-08-01 11:34:53 +00:00
Guido van Rossum b376a4ad18 * timemodule.c: Add hack for Solaris 2.
* posixmodule.c: don't prototype getcwd() -- it's not portable...
* mappingobject.c: double-check validity of last_name_char in
  dict{lookup,insert,remove}.
* arraymodule.c: need memmove only for non-STDC Suns.
* Makefile: comment out HTML_LIBS and XT_USE by default
* pythonmain.c: don't prototype getopt() -- it's not standardized
* socketmodule.c: cast flags arg to {get,set}sockopt() and addrbuf arg to
  recvfrom() to (ANY*).
* pythonrun.c (initsigs): fix prototype, make it static
* intobject.c (LONG_BIT): only #define it if not already defined
* classobject.[ch]: remove all references to unused instance_convert()
* mappingobject.c (getmappingsize): Don't return NULL in int function.
1993-11-23 17:53:17 +00:00
Sjoerd Mullender 3bb8a05947 Several optimizations and speed improvements.
cstubs: Use Matrix type instead of float[4][4].
1993-10-22 12:04:32 +00:00
Guido van Rossum 21d335ed9e Makefile, import.c: Lance's alternative module search (allow .pyc file
without .py file); Bill's dynamic loading for SunOS using shared
libraries.

pwdmodule.c (mkgrent): remove DECREF of uninitialized variable.

classobject.c (instance_getattr): Fix case when class lookup returns
unbound method instead of function.
1993-10-15 13:01:11 +00:00
Guido van Rossum eb6b33a837 * classobject.c: in instance_getattr, don't make a method out of a
function found as instance data.
* socketmodule.c: added 'flags' argument sendto/recvfrom, rewrite
  argument parsing in send/recv.
* More changes related to access (terminology change: owner instead of
  class; allow any object as owner; local/global variables are owned
  by their dictionary, only class/instance data is owned by the class;
  "from...import *" now only imports objects with public access; etc.)
1993-05-25 09:38:27 +00:00
Guido van Rossum b3f7258f14 * Lots of small changes related to access.
* Added "access *: ...", made access work for class methods.
* Introduced subclass check: make sure that when calling
  ClassName.methodname(instance, ...), the instance is an instance of
  ClassName or of a subclass thereof (this might break some old code!)
1993-05-21 19:56:10 +00:00