| 
									
										
										
										
											2001-09-26 20:31:52 +00:00
										 |  |  | """Something just to look at via pydoc.""" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 60176-60209 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60178 | georg.brandl | 2008-01-21 22:05:49 +0100 (Mon, 21 Jan 2008) | 2 lines
  #1715: include sub-extension modules in pydoc text output.
........
  r60179 | georg.brandl | 2008-01-21 22:14:21 +0100 (Mon, 21 Jan 2008) | 2 lines
  Add a "const" to make gcc happy.
........
  r60180 | georg.brandl | 2008-01-21 22:19:07 +0100 (Mon, 21 Jan 2008) | 2 lines
  Add the correct build dir when building with pydebug.
........
  r60181 | georg.brandl | 2008-01-21 22:23:15 +0100 (Mon, 21 Jan 2008) | 3 lines
  Patch #1720595: add T_BOOL to the range of structmember types.
  Patch by Angelo Mottola, reviewed by MvL, tests by me.
........
  r60182 | georg.brandl | 2008-01-21 22:28:32 +0100 (Mon, 21 Jan 2008) | 2 lines
  Reformat some ugly code.
........
  r60187 | brett.cannon | 2008-01-22 00:50:16 +0100 (Tue, 22 Jan 2008) | 4 lines
  Make's MAKEFLAGS variable is set to a string containing the single-letter
  arguments to Make. This means there are no hyphens. Fix the '-s' check to
  silence distutils to now work.
........
  r60188 | gregory.p.smith | 2008-01-22 01:19:41 +0100 (Tue, 22 Jan 2008) | 3 lines
  accepts and closes issue #1221598: adds an optional callback to ftplib.FTP
  storbinary() and storlines() methods.
........
  r60189 | gregory.p.smith | 2008-01-22 02:12:02 +0100 (Tue, 22 Jan 2008) | 2 lines
  Replace spam.acquire() try: ... finally: spam.release() with "with spam:"
........
  r60190 | gregory.p.smith | 2008-01-22 02:20:42 +0100 (Tue, 22 Jan 2008) | 4 lines
  - Fix Issue #1703448: A joined thread could show up in the
    threading.enumerate() list after the join() for a brief period until
    it actually exited.
........
  r60193 | georg.brandl | 2008-01-22 08:53:31 +0100 (Tue, 22 Jan 2008) | 2 lines
  Fix \xhh specs, #1889.
........
  r60198 | christian.heimes | 2008-01-22 16:01:25 +0100 (Tue, 22 Jan 2008) | 1 line
  Fixed a missing (X) in define
........
  r60199 | christian.heimes | 2008-01-22 16:25:18 +0100 (Tue, 22 Jan 2008) | 2 lines
  Don't repeat yourself
  Added the macros PyModule_AddIntMacro and PyModule_AddStringMacro. They shorten PyModule_AddIntConstant(m, "AF_INET", AF_INET) to PyModule_AddIntMacro(m, AF_INET)
........
  r60201 | raymond.hettinger | 2008-01-22 20:51:41 +0100 (Tue, 22 Jan 2008) | 1 line
  Document when to use izip_longest().
........
  r60202 | georg.brandl | 2008-01-22 20:56:03 +0100 (Tue, 22 Jan 2008) | 2 lines
  Fix for #1087741 patch.
........
  r60203 | raymond.hettinger | 2008-01-22 21:18:53 +0100 (Tue, 22 Jan 2008) | 1 line
  Give zip() the same guarantee as izip() for left-to-right evaluation.
........
  r60204 | raymond.hettinger | 2008-01-22 23:09:26 +0100 (Tue, 22 Jan 2008) | 1 line
  Improve variable name in sample code
........
  r60205 | gregory.p.smith | 2008-01-23 00:15:34 +0100 (Wed, 23 Jan 2008) | 2 lines
  docstring and comment updates suggested by Giampaolo Rodola'
........
  r60207 | raymond.hettinger | 2008-01-23 01:04:40 +0100 (Wed, 23 Jan 2008) | 1 line
  Let pprint() support sets and frozensets (suggested by David Mertz).
........
  r60208 | guido.van.rossum | 2008-01-23 02:18:27 +0100 (Wed, 23 Jan 2008) | 4 lines
  I'm tired of these tests breaking at Google due to our large number of
  users and groups in LDAP/NIS.  So I'm limiting the extra-heavy part of
  the tests to passwd/group files with at most 1000 entries.
........
											
										 
											2008-01-23 08:24:23 +00:00
										 |  |  | import types | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-09-26 20:31:52 +00:00
										 |  |  | class A_classic: | 
					
						
							|  |  |  |     "A classic class." | 
					
						
							|  |  |  |     def A_method(self): | 
					
						
							|  |  |  |         "Method defined in A." | 
					
						
							|  |  |  |     def AB_method(self): | 
					
						
							|  |  |  |         "Method defined in A and B." | 
					
						
							|  |  |  |     def AC_method(self): | 
					
						
							|  |  |  |         "Method defined in A and C." | 
					
						
							|  |  |  |     def AD_method(self): | 
					
						
							|  |  |  |         "Method defined in A and D." | 
					
						
							|  |  |  |     def ABC_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and C." | 
					
						
							|  |  |  |     def ABD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and D." | 
					
						
							|  |  |  |     def ACD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, C and D." | 
					
						
							|  |  |  |     def ABCD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B, C and D." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class B_classic(A_classic): | 
					
						
							|  |  |  |     "A classic class, derived from A_classic." | 
					
						
							|  |  |  |     def AB_method(self): | 
					
						
							|  |  |  |         "Method defined in A and B." | 
					
						
							|  |  |  |     def ABC_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and C." | 
					
						
							|  |  |  |     def ABD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and D." | 
					
						
							|  |  |  |     def ABCD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B, C and D." | 
					
						
							|  |  |  |     def B_method(self): | 
					
						
							|  |  |  |         "Method defined in B." | 
					
						
							|  |  |  |     def BC_method(self): | 
					
						
							|  |  |  |         "Method defined in B and C." | 
					
						
							|  |  |  |     def BD_method(self): | 
					
						
							|  |  |  |         "Method defined in B and D." | 
					
						
							|  |  |  |     def BCD_method(self): | 
					
						
							|  |  |  |         "Method defined in B, C and D." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class C_classic(A_classic): | 
					
						
							|  |  |  |     "A classic class, derived from A_classic." | 
					
						
							|  |  |  |     def AC_method(self): | 
					
						
							|  |  |  |         "Method defined in A and C." | 
					
						
							|  |  |  |     def ABC_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and C." | 
					
						
							|  |  |  |     def ACD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, C and D." | 
					
						
							|  |  |  |     def ABCD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B, C and D." | 
					
						
							|  |  |  |     def BC_method(self): | 
					
						
							|  |  |  |         "Method defined in B and C." | 
					
						
							|  |  |  |     def BCD_method(self): | 
					
						
							|  |  |  |         "Method defined in B, C and D." | 
					
						
							|  |  |  |     def C_method(self): | 
					
						
							|  |  |  |         "Method defined in C." | 
					
						
							|  |  |  |     def CD_method(self): | 
					
						
							|  |  |  |         "Method defined in C and D." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class D_classic(B_classic, C_classic): | 
					
						
							|  |  |  |     "A classic class, derived from B_classic and C_classic." | 
					
						
							|  |  |  |     def AD_method(self): | 
					
						
							|  |  |  |         "Method defined in A and D." | 
					
						
							|  |  |  |     def ABD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and D." | 
					
						
							|  |  |  |     def ACD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, C and D." | 
					
						
							|  |  |  |     def ABCD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B, C and D." | 
					
						
							|  |  |  |     def BD_method(self): | 
					
						
							|  |  |  |         "Method defined in B and D." | 
					
						
							|  |  |  |     def BCD_method(self): | 
					
						
							|  |  |  |         "Method defined in B, C and D." | 
					
						
							|  |  |  |     def CD_method(self): | 
					
						
							|  |  |  |         "Method defined in C and D." | 
					
						
							|  |  |  |     def D_method(self): | 
					
						
							|  |  |  |         "Method defined in D." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-15 22:59:59 +00:00
										 |  |  | class A_new(object): | 
					
						
							|  |  |  |     "A new-style class." | 
					
						
							| 
									
										
										
										
											2001-09-26 20:31:52 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def A_method(self): | 
					
						
							|  |  |  |         "Method defined in A." | 
					
						
							|  |  |  |     def AB_method(self): | 
					
						
							|  |  |  |         "Method defined in A and B." | 
					
						
							|  |  |  |     def AC_method(self): | 
					
						
							|  |  |  |         "Method defined in A and C." | 
					
						
							|  |  |  |     def AD_method(self): | 
					
						
							|  |  |  |         "Method defined in A and D." | 
					
						
							|  |  |  |     def ABC_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and C." | 
					
						
							|  |  |  |     def ABD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and D." | 
					
						
							|  |  |  |     def ACD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, C and D." | 
					
						
							|  |  |  |     def ABCD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B, C and D." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def A_classmethod(cls, x): | 
					
						
							|  |  |  |         "A class method defined in A." | 
					
						
							|  |  |  |     A_classmethod = classmethod(A_classmethod) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def A_staticmethod(): | 
					
						
							|  |  |  |         "A static method defined in A." | 
					
						
							|  |  |  |     A_staticmethod = staticmethod(A_staticmethod) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def _getx(self): | 
					
						
							|  |  |  |         "A property getter function." | 
					
						
							|  |  |  |     def _setx(self, value): | 
					
						
							|  |  |  |         "A property setter function." | 
					
						
							|  |  |  |     def _delx(self): | 
					
						
							|  |  |  |         "A property deleter function." | 
					
						
							|  |  |  |     A_property = property(fdel=_delx, fget=_getx, fset=_setx, | 
					
						
							|  |  |  |                           doc="A sample property defined in A.") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     A_int_alias = int | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-15 22:59:59 +00:00
										 |  |  | class B_new(A_new): | 
					
						
							|  |  |  |     "A new-style class, derived from A_new." | 
					
						
							| 
									
										
										
										
											2001-09-26 20:31:52 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def AB_method(self): | 
					
						
							|  |  |  |         "Method defined in A and B." | 
					
						
							|  |  |  |     def ABC_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and C." | 
					
						
							|  |  |  |     def ABD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and D." | 
					
						
							|  |  |  |     def ABCD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B, C and D." | 
					
						
							|  |  |  |     def B_method(self): | 
					
						
							|  |  |  |         "Method defined in B." | 
					
						
							|  |  |  |     def BC_method(self): | 
					
						
							|  |  |  |         "Method defined in B and C." | 
					
						
							|  |  |  |     def BD_method(self): | 
					
						
							|  |  |  |         "Method defined in B and D." | 
					
						
							|  |  |  |     def BCD_method(self): | 
					
						
							|  |  |  |         "Method defined in B, C and D." | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-15 22:59:59 +00:00
										 |  |  | class C_new(A_new): | 
					
						
							|  |  |  |     "A new-style class, derived from A_new." | 
					
						
							| 
									
										
										
										
											2001-09-26 20:31:52 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def AC_method(self): | 
					
						
							|  |  |  |         "Method defined in A and C." | 
					
						
							|  |  |  |     def ABC_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and C." | 
					
						
							|  |  |  |     def ACD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, C and D." | 
					
						
							|  |  |  |     def ABCD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B, C and D." | 
					
						
							|  |  |  |     def BC_method(self): | 
					
						
							|  |  |  |         "Method defined in B and C." | 
					
						
							|  |  |  |     def BCD_method(self): | 
					
						
							|  |  |  |         "Method defined in B, C and D." | 
					
						
							|  |  |  |     def C_method(self): | 
					
						
							|  |  |  |         "Method defined in C." | 
					
						
							|  |  |  |     def CD_method(self): | 
					
						
							|  |  |  |         "Method defined in C and D." | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-15 22:59:59 +00:00
										 |  |  | class D_new(B_new, C_new): | 
					
						
							|  |  |  |     """A new-style class, derived from B_new and C_new.
 | 
					
						
							| 
									
										
										
										
											2001-09-26 20:31:52 +00:00
										 |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def AD_method(self): | 
					
						
							|  |  |  |         "Method defined in A and D." | 
					
						
							|  |  |  |     def ABD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B and D." | 
					
						
							|  |  |  |     def ACD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, C and D." | 
					
						
							|  |  |  |     def ABCD_method(self): | 
					
						
							|  |  |  |         "Method defined in A, B, C and D." | 
					
						
							|  |  |  |     def BD_method(self): | 
					
						
							|  |  |  |         "Method defined in B and D." | 
					
						
							|  |  |  |     def BCD_method(self): | 
					
						
							|  |  |  |         "Method defined in B, C and D." | 
					
						
							|  |  |  |     def CD_method(self): | 
					
						
							|  |  |  |         "Method defined in C and D." | 
					
						
							|  |  |  |     def D_method(self): | 
					
						
							|  |  |  |         "Method defined in D." | 
					
						
							| 
									
										
										
										
											2001-10-18 19:56:17 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class FunkyProperties(object): | 
					
						
							|  |  |  |     """From SF bug 472347, by Roeland Rengelink.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Property getters etc may not be vanilla functions or methods, | 
					
						
							|  |  |  |     and this used to make GUI pydoc blow up. | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self): | 
					
						
							|  |  |  |         self.desc = {'x':0} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     class get_desc: | 
					
						
							|  |  |  |         def __init__(self, attr): | 
					
						
							|  |  |  |             self.attr = attr | 
					
						
							|  |  |  |         def __call__(self, inst): | 
					
						
							| 
									
										
										
										
											2007-02-09 05:37:30 +00:00
										 |  |  |             print('Get called', self, inst) | 
					
						
							| 
									
										
										
										
											2001-10-18 19:56:17 +00:00
										 |  |  |             return inst.desc[self.attr] | 
					
						
							|  |  |  |     class set_desc: | 
					
						
							|  |  |  |         def __init__(self, attr): | 
					
						
							|  |  |  |             self.attr = attr | 
					
						
							|  |  |  |         def __call__(self, inst, val): | 
					
						
							| 
									
										
										
										
											2007-02-09 05:37:30 +00:00
										 |  |  |             print('Set called', self, inst, val) | 
					
						
							| 
									
										
										
										
											2001-10-18 19:56:17 +00:00
										 |  |  |             inst.desc[self.attr] = val | 
					
						
							|  |  |  |     class del_desc: | 
					
						
							|  |  |  |         def __init__(self, attr): | 
					
						
							|  |  |  |             self.attr = attr | 
					
						
							|  |  |  |         def __call__(self, inst): | 
					
						
							| 
									
										
										
										
											2007-02-09 05:37:30 +00:00
										 |  |  |             print('Del called', self, inst) | 
					
						
							| 
									
										
										
										
											2001-10-18 19:56:17 +00:00
										 |  |  |             del inst.desc[self.attr] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     x = property(get_desc('x'), set_desc('x'), del_desc('x'), 'prop x') | 
					
						
							| 
									
										
											  
											
												Merged revisions 60176-60209 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60178 | georg.brandl | 2008-01-21 22:05:49 +0100 (Mon, 21 Jan 2008) | 2 lines
  #1715: include sub-extension modules in pydoc text output.
........
  r60179 | georg.brandl | 2008-01-21 22:14:21 +0100 (Mon, 21 Jan 2008) | 2 lines
  Add a "const" to make gcc happy.
........
  r60180 | georg.brandl | 2008-01-21 22:19:07 +0100 (Mon, 21 Jan 2008) | 2 lines
  Add the correct build dir when building with pydebug.
........
  r60181 | georg.brandl | 2008-01-21 22:23:15 +0100 (Mon, 21 Jan 2008) | 3 lines
  Patch #1720595: add T_BOOL to the range of structmember types.
  Patch by Angelo Mottola, reviewed by MvL, tests by me.
........
  r60182 | georg.brandl | 2008-01-21 22:28:32 +0100 (Mon, 21 Jan 2008) | 2 lines
  Reformat some ugly code.
........
  r60187 | brett.cannon | 2008-01-22 00:50:16 +0100 (Tue, 22 Jan 2008) | 4 lines
  Make's MAKEFLAGS variable is set to a string containing the single-letter
  arguments to Make. This means there are no hyphens. Fix the '-s' check to
  silence distutils to now work.
........
  r60188 | gregory.p.smith | 2008-01-22 01:19:41 +0100 (Tue, 22 Jan 2008) | 3 lines
  accepts and closes issue #1221598: adds an optional callback to ftplib.FTP
  storbinary() and storlines() methods.
........
  r60189 | gregory.p.smith | 2008-01-22 02:12:02 +0100 (Tue, 22 Jan 2008) | 2 lines
  Replace spam.acquire() try: ... finally: spam.release() with "with spam:"
........
  r60190 | gregory.p.smith | 2008-01-22 02:20:42 +0100 (Tue, 22 Jan 2008) | 4 lines
  - Fix Issue #1703448: A joined thread could show up in the
    threading.enumerate() list after the join() for a brief period until
    it actually exited.
........
  r60193 | georg.brandl | 2008-01-22 08:53:31 +0100 (Tue, 22 Jan 2008) | 2 lines
  Fix \xhh specs, #1889.
........
  r60198 | christian.heimes | 2008-01-22 16:01:25 +0100 (Tue, 22 Jan 2008) | 1 line
  Fixed a missing (X) in define
........
  r60199 | christian.heimes | 2008-01-22 16:25:18 +0100 (Tue, 22 Jan 2008) | 2 lines
  Don't repeat yourself
  Added the macros PyModule_AddIntMacro and PyModule_AddStringMacro. They shorten PyModule_AddIntConstant(m, "AF_INET", AF_INET) to PyModule_AddIntMacro(m, AF_INET)
........
  r60201 | raymond.hettinger | 2008-01-22 20:51:41 +0100 (Tue, 22 Jan 2008) | 1 line
  Document when to use izip_longest().
........
  r60202 | georg.brandl | 2008-01-22 20:56:03 +0100 (Tue, 22 Jan 2008) | 2 lines
  Fix for #1087741 patch.
........
  r60203 | raymond.hettinger | 2008-01-22 21:18:53 +0100 (Tue, 22 Jan 2008) | 1 line
  Give zip() the same guarantee as izip() for left-to-right evaluation.
........
  r60204 | raymond.hettinger | 2008-01-22 23:09:26 +0100 (Tue, 22 Jan 2008) | 1 line
  Improve variable name in sample code
........
  r60205 | gregory.p.smith | 2008-01-23 00:15:34 +0100 (Wed, 23 Jan 2008) | 2 lines
  docstring and comment updates suggested by Giampaolo Rodola'
........
  r60207 | raymond.hettinger | 2008-01-23 01:04:40 +0100 (Wed, 23 Jan 2008) | 1 line
  Let pprint() support sets and frozensets (suggested by David Mertz).
........
  r60208 | guido.van.rossum | 2008-01-23 02:18:27 +0100 (Wed, 23 Jan 2008) | 4 lines
  I'm tired of these tests breaking at Google due to our large number of
  users and groups in LDAP/NIS.  So I'm limiting the extra-heavy part of
  the tests to passwd/group files with at most 1000 entries.
........
											
										 
											2008-01-23 08:24:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | submodule = types.ModuleType(__name__ + '.submodule', | 
					
						
							|  |  |  |     """A submodule, which should appear in its parent's summary""") |