2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								""" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Test  cases  for  the  repr  module 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Nick  Mathewson 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								""" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  sys  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  os  
						 
					
						
							
								
									
										
											 
										
											
												Partially merge trunk into p3yk. The removal of Mac/Tools is confusing svn
merge in bad ways, so I'll have to merge that extra-carefully (probably manually.)
Merged revisions 46495-46605 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r46495 | tim.peters | 2006-05-28 03:52:38 +0200 (Sun, 28 May 2006) | 2 lines
  Added missing svn:eol-style property to text files.
........
  r46497 | tim.peters | 2006-05-28 12:41:29 +0200 (Sun, 28 May 2006) | 3 lines
  PyErr_Display(), PyErr_WriteUnraisable():  Coverity found a cut-and-paste
  bug in both:  `className` was referenced before being checked for NULL.
........
  r46499 | fredrik.lundh | 2006-05-28 14:06:46 +0200 (Sun, 28 May 2006) | 5 lines
  needforspeed: added Py_MEMCPY macro (currently tuned for Visual C only),
  and use it for string copy operations.  this gives a 20% speedup on some
  string benchmarks.
........
  r46501 | michael.hudson | 2006-05-28 17:51:40 +0200 (Sun, 28 May 2006) | 26 lines
  Quality control, meet exceptions.c.
  Fix a number of problems with the need for speed code:
  One is doing this sort of thing:
      Py_DECREF(self->field);
      self->field = newval;
      Py_INCREF(self->field);
  without being very sure that self->field doesn't start with a
  value that has a __del__, because that almost certainly can lead
  to segfaults.
  As self->args is constrained to be an exact tuple we may as well
  exploit this fact consistently.  This leads to quite a lot of
  simplification (and, hey, probably better performance).
  Add some error checking in places lacking it.
  Fix some rather strange indentation in the Unicode code.
  Delete some trailing whitespace.
  More to come, I haven't fixed all the reference leaks yet...
........
  r46502 | george.yoshida | 2006-05-28 18:39:09 +0200 (Sun, 28 May 2006) | 3 lines
  Patch #1080727: add "encoding" parameter to doctest.DocFileSuite
  Contributed by Bjorn Tillenius.
........
  r46503 | martin.v.loewis | 2006-05-28 18:57:38 +0200 (Sun, 28 May 2006) | 4 lines
  Rest of patch #1490384: Commit icon source, remove
  claim that Erik von Blokland is the author of the
  installer picture.
........
  r46504 | michael.hudson | 2006-05-28 19:40:29 +0200 (Sun, 28 May 2006) | 16 lines
  Quality control, meet exceptions.c, round two.
  Make some functions that should have been static static.
  Fix a bunch of refleaks by fixing the definition of
  MiddlingExtendsException.
  Remove all the __new__ implementations apart from
  BaseException_new.  Rewrite most code that needs it to cope with
  NULL fields (such code could get excercised anyway, the
  __new__-removal just makes it more likely).  This involved
  editing the code for WindowsError, which I can't test.
  This fixes all the refleaks in at least the start of a regrtest
  -R :: run.
........
  r46505 | marc-andre.lemburg | 2006-05-28 19:46:58 +0200 (Sun, 28 May 2006) | 10 lines
  Initial version of systimes - a module to provide platform dependent
  performance measurements.
  The module is currently just a proof-of-concept implementation, but
  will integrated into pybench once it is stable enough.
  License: pybench license.
  Author: Marc-Andre Lemburg.
........
  r46507 | armin.rigo | 2006-05-28 21:13:17 +0200 (Sun, 28 May 2006) | 15 lines
  ("Forward-port" of r46506)
  Remove various dependencies on dictionary order in the standard library
  tests, and one (clearly an oversight, potentially critical) in the
  standard library itself - base64.py.
  Remaining open issues:
   * test_extcall is an output test, messy to make robust
   * tarfile.py has a potential bug here, but I'm not familiar
     enough with this code.  Filed in as SF bug #1496501.
   * urllib2.HTTPPasswordMgr() returns a random result if there is more
     than one matching root path.  I'm asking python-dev for
     clarification...
........
  r46508 | georg.brandl | 2006-05-28 22:11:45 +0200 (Sun, 28 May 2006) | 4 lines
  The empty string is a valid import path.
   (fixes #1496539)
........
  r46509 | georg.brandl | 2006-05-28 22:23:12 +0200 (Sun, 28 May 2006) | 3 lines
  Patch #1496206: urllib2 PasswordMgr ./. default ports
........
  r46510 | georg.brandl | 2006-05-28 22:57:09 +0200 (Sun, 28 May 2006) | 3 lines
  Fix refleaks in UnicodeError get and set methods.
........
  r46511 | michael.hudson | 2006-05-28 23:19:03 +0200 (Sun, 28 May 2006) | 3 lines
  use the UnicodeError traversal and clearing functions in UnicodeError
  subclasses.
........
  r46512 | thomas.wouters | 2006-05-28 23:32:12 +0200 (Sun, 28 May 2006) | 4 lines
  Make last patch valid C89 so Windows compilers can deal with it.
........
  r46513 | georg.brandl | 2006-05-28 23:42:54 +0200 (Sun, 28 May 2006) | 3 lines
  Fix ref-antileak in _struct.c which eventually lead to deallocating None.
........
  r46514 | georg.brandl | 2006-05-28 23:57:35 +0200 (Sun, 28 May 2006) | 4 lines
  Correct None refcount issue in Mac modules. (Are they
  still used?)
........
  r46515 | armin.rigo | 2006-05-29 00:07:08 +0200 (Mon, 29 May 2006) | 3 lines
  A clearer error message when passing -R to regrtest.py with
  release builds of Python.
........
  r46516 | georg.brandl | 2006-05-29 00:14:04 +0200 (Mon, 29 May 2006) | 3 lines
  Fix C function calling conventions in _sre module.
........
  r46517 | georg.brandl | 2006-05-29 00:34:51 +0200 (Mon, 29 May 2006) | 3 lines
  Convert audioop over to METH_VARARGS.
........
  r46518 | georg.brandl | 2006-05-29 00:38:57 +0200 (Mon, 29 May 2006) | 3 lines
  METH_NOARGS functions do get called with two args.
........
  r46519 | georg.brandl | 2006-05-29 11:46:51 +0200 (Mon, 29 May 2006) | 4 lines
  Fix refleak in socketmodule. Replace bogus Py_BuildValue calls.
  Fix refleak in exceptions.
........
  r46520 | nick.coghlan | 2006-05-29 14:43:05 +0200 (Mon, 29 May 2006) | 7 lines
  Apply modified version of Collin Winter's patch #1478788
  Renames functional extension module to _functools and adds a Python
  functools module so that utility functions like update_wrapper can be
  added easily.
........
  r46522 | georg.brandl | 2006-05-29 15:53:16 +0200 (Mon, 29 May 2006) | 3 lines
  Convert fmmodule to METH_VARARGS.
........
  r46523 | georg.brandl | 2006-05-29 16:13:21 +0200 (Mon, 29 May 2006) | 3 lines
  Fix #1494605.
........
  r46524 | georg.brandl | 2006-05-29 16:28:05 +0200 (Mon, 29 May 2006) | 3 lines
  Handle PyMem_Malloc failure in pystrtod.c. Closes #1494671.
........
  r46525 | georg.brandl | 2006-05-29 16:33:55 +0200 (Mon, 29 May 2006) | 3 lines
  Fix compiler warning.
........
  r46526 | georg.brandl | 2006-05-29 16:39:00 +0200 (Mon, 29 May 2006) | 3 lines
  Fix #1494787 (pyclbr counts whitespace as superclass name)
........
  r46527 | bob.ippolito | 2006-05-29 17:47:29 +0200 (Mon, 29 May 2006) | 1 line
  simplify the struct code a bit (no functional changes)
........
  r46528 | armin.rigo | 2006-05-29 19:59:47 +0200 (Mon, 29 May 2006) | 2 lines
  Silence a warning.
........
  r46529 | georg.brandl | 2006-05-29 21:39:45 +0200 (Mon, 29 May 2006) | 3 lines
  Correct some value converting strangenesses.
........
  r46530 | nick.coghlan | 2006-05-29 22:27:44 +0200 (Mon, 29 May 2006) | 1 line
  When adding a module like functools, it helps to let SVN know about the file.
........
  r46531 | georg.brandl | 2006-05-29 22:52:54 +0200 (Mon, 29 May 2006) | 4 lines
  Patches #1497027 and #972322: try HTTP digest auth first,
  and watch out for handler name collisions.
........
  r46532 | georg.brandl | 2006-05-29 22:57:01 +0200 (Mon, 29 May 2006) | 3 lines
  Add News entry for last commit.
........
  r46533 | georg.brandl | 2006-05-29 23:04:52 +0200 (Mon, 29 May 2006) | 4 lines
  Make use of METH_O and METH_NOARGS where possible.
  Use Py_UnpackTuple instead of PyArg_ParseTuple where possible.
........
  r46534 | georg.brandl | 2006-05-29 23:58:42 +0200 (Mon, 29 May 2006) | 3 lines
  Convert more modules to METH_VARARGS.
........
  r46535 | georg.brandl | 2006-05-30 00:00:30 +0200 (Tue, 30 May 2006) | 3 lines
  Whoops.
........
  r46536 | fredrik.lundh | 2006-05-30 00:42:07 +0200 (Tue, 30 May 2006) | 4 lines
  fixed "abc".count("", 100) == -96 error (hopefully, nobody's relying on
  the current behaviour ;-)
........
  r46537 | bob.ippolito | 2006-05-30 00:55:48 +0200 (Tue, 30 May 2006) | 1 line
  struct: modulo math plus warning on all endian-explicit formats for compatibility with older struct usage (ugly)
........
  r46539 | bob.ippolito | 2006-05-30 02:26:01 +0200 (Tue, 30 May 2006) | 1 line
  Add a length check to aifc to ensure it doesn't write a bogus file
........
  r46540 | tim.peters | 2006-05-30 04:25:25 +0200 (Tue, 30 May 2006) | 10 lines
  deprecated_err():  Stop bizarre warning messages when the tests
  are run in the order:
      test_genexps (or any other doctest-based test)
      test_struct
      test_doctest
  The `warnings` module needs an advertised way to save/restore
  its internal filter list.
........
  r46541 | tim.peters | 2006-05-30 04:26:46 +0200 (Tue, 30 May 2006) | 2 lines
  Whitespace normalization.
........
  r46542 | tim.peters | 2006-05-30 04:30:30 +0200 (Tue, 30 May 2006) | 2 lines
  Set a binary svn:mime-type property on this UTF-8 encoded file.
........
  r46543 | neal.norwitz | 2006-05-30 05:18:50 +0200 (Tue, 30 May 2006) | 1 line
  Simplify further by using AddStringConstant
........
  r46544 | tim.peters | 2006-05-30 06:16:25 +0200 (Tue, 30 May 2006) | 6 lines
  Convert relevant dict internals to Py_ssize_t.
  I don't have a box with nearly enough RAM, or an OS,
  that could get close to tickling this, though (requires
  a dict w/ at least 2**31 entries).
........
  r46545 | neal.norwitz | 2006-05-30 06:19:21 +0200 (Tue, 30 May 2006) | 1 line
  Remove stray | in comment
........
  r46546 | neal.norwitz | 2006-05-30 06:25:05 +0200 (Tue, 30 May 2006) | 1 line
  Use Py_SAFE_DOWNCAST for safety.  Fix format strings.  Remove 2 more stray | in comment
........
  r46547 | neal.norwitz | 2006-05-30 06:43:23 +0200 (Tue, 30 May 2006) | 1 line
  No DOWNCAST is required since sizeof(Py_ssize_t) >= sizeof(int) and Py_ReprEntr returns an int
........
  r46548 | tim.peters | 2006-05-30 07:04:59 +0200 (Tue, 30 May 2006) | 3 lines
  dict_print():  Explicitly narrow the return value
  from a (possibly) wider variable.
........
  r46549 | tim.peters | 2006-05-30 07:23:59 +0200 (Tue, 30 May 2006) | 5 lines
  dict_print():  So that Neal & I don't spend the rest of
  our lives taking turns rewriting code that works ;-),
  get rid of casting illusions by declaring a new variable
  with the obvious type.
........
  r46550 | georg.brandl | 2006-05-30 09:04:55 +0200 (Tue, 30 May 2006) | 3 lines
  Restore exception pickle support. #1497319.
........
  r46551 | georg.brandl | 2006-05-30 09:13:29 +0200 (Tue, 30 May 2006) | 3 lines
  Add a test case for exception pickling. args is never NULL.
........
  r46552 | neal.norwitz | 2006-05-30 09:21:10 +0200 (Tue, 30 May 2006) | 1 line
  Don't fail if the (sub)pkgname already exist.
........
  r46553 | georg.brandl | 2006-05-30 09:34:45 +0200 (Tue, 30 May 2006) | 3 lines
  Disallow keyword args for exceptions.
........
  r46554 | neal.norwitz | 2006-05-30 09:36:54 +0200 (Tue, 30 May 2006) | 5 lines
  I'm impatient.  I think this will fix a few more problems with the buildbots.
  I'm not sure this is the best approach, but I can't think of anything better.
  If this creates problems, feel free to revert, but I think it's safe and
  should make things a little better.
........
  r46555 | georg.brandl | 2006-05-30 10:17:00 +0200 (Tue, 30 May 2006) | 4 lines
  Do the check for no keyword arguments in __init__ so that
  subclasses of Exception can be supplied keyword args
........
  r46556 | georg.brandl | 2006-05-30 10:47:19 +0200 (Tue, 30 May 2006) | 3 lines
  Convert test_exceptions to unittest.
........
  r46557 | andrew.kuchling | 2006-05-30 14:52:01 +0200 (Tue, 30 May 2006) | 1 line
  Add SoC name, and reorganize this section a bit
........
  r46559 | tim.peters | 2006-05-30 17:53:34 +0200 (Tue, 30 May 2006) | 11 lines
  PyLong_FromString():  Continued fraction analysis (explained in
  a new comment) suggests there are almost certainly large input
  integers in all non-binary input bases for which one Python digit
  too few is initally allocated to hold the final result.  Instead
  of assert-failing when that happens, allocate more space.  Alas,
  I estimate it would take a few days to find a specific such case,
  so this isn't backed up by a new test (not to mention that such
  a case may take hours to run, since conversion time is quadratic
  in the number of digits, and preliminary attempts suggested that
  the smallest such inputs contain at least a million digits).
........
  r46560 | fredrik.lundh | 2006-05-30 19:11:48 +0200 (Tue, 30 May 2006) | 3 lines
  changed find/rfind to return -1 for matches outside the source string
........
  r46561 | bob.ippolito | 2006-05-30 19:37:54 +0200 (Tue, 30 May 2006) | 1 line
  Change wrapping terminology to overflow masking
........
  r46562 | fredrik.lundh | 2006-05-30 19:39:58 +0200 (Tue, 30 May 2006) | 3 lines
  changed count to return 0 for slices outside the source string
........
  r46568 | tim.peters | 2006-05-31 01:28:02 +0200 (Wed, 31 May 2006) | 2 lines
  Whitespace normalization.
........
  r46569 | brett.cannon | 2006-05-31 04:19:54 +0200 (Wed, 31 May 2006) | 5 lines
  Clarify wording on default values for strptime(); defaults are used when better
  values cannot be inferred.
  Closes bug #1496315.
........
  r46572 | neal.norwitz | 2006-05-31 09:43:27 +0200 (Wed, 31 May 2006) | 1 line
  Calculate smallest properly (it was off by one) and use proper ssize_t types for Win64
........
  r46573 | neal.norwitz | 2006-05-31 10:01:08 +0200 (Wed, 31 May 2006) | 1 line
  Revert last checkin, it is better to do make distclean
........
  r46574 | neal.norwitz | 2006-05-31 11:02:44 +0200 (Wed, 31 May 2006) | 3 lines
  On 64-bit platforms running test_struct after test_tarfile would fail
  since the deprecation warning wouldn't be raised.
........
  r46575 | thomas.heller | 2006-05-31 13:37:58 +0200 (Wed, 31 May 2006) | 3 lines
  PyTuple_Pack is not available in Python 2.3, but ctypes must stay
  compatible with that.
........
  r46576 | andrew.kuchling | 2006-05-31 15:18:56 +0200 (Wed, 31 May 2006) | 1 line
  'functional' module was renamed to 'functools'
........
  r46577 | kristjan.jonsson | 2006-05-31 15:35:41 +0200 (Wed, 31 May 2006) | 1 line
  Fixup the PCBuild8 project directory.  exceptions.c have moved to Objects, and the functionalmodule.c has been replaced with _functoolsmodule.c.  Other minor changes to .vcproj files and .sln to fix compilation
........
  r46578 | andrew.kuchling | 2006-05-31 16:08:48 +0200 (Wed, 31 May 2006) | 15 lines
  [Bug #1473048]
  SimpleXMLRPCServer and DocXMLRPCServer don't look at
  the path of the HTTP request at all; you can POST or
  GET from / or /RPC2 or /blahblahblah with the same results.
  Security scanners that look for /cgi-bin/phf will therefore report
  lots of vulnerabilities.
  Fix: add a .rpc_paths attribute to the SimpleXMLRPCServer class,
  and report a 404 error if the path isn't on the allowed list.
  Possibly-controversial aspect of this change: the default makes only
  '/' and '/RPC2' legal.  Maybe this will break people's applications
  (though I doubt it).  We could just set the default to an empty tuple,
  which would exactly match the current behaviour.
........
  r46579 | andrew.kuchling | 2006-05-31 16:12:47 +0200 (Wed, 31 May 2006) | 1 line
  Mention SimpleXMLRPCServer change
........
  r46580 | tim.peters | 2006-05-31 16:28:07 +0200 (Wed, 31 May 2006) | 2 lines
  Trimmed trailing whitespace.
........
  r46581 | tim.peters | 2006-05-31 17:33:22 +0200 (Wed, 31 May 2006) | 4 lines
  _range_error():  Speed and simplify (there's no real need for
  loops here).  Assert that size_t is actually big enough, and
  that f->size is at least one.  Wrap a long line.
........
  r46582 | tim.peters | 2006-05-31 17:34:37 +0200 (Wed, 31 May 2006) | 2 lines
  Repaired error in new comment.
........
  r46584 | neal.norwitz | 2006-06-01 07:32:49 +0200 (Thu, 01 Jun 2006) | 4 lines
  Remove ; at end of macro.  There was a compiler recently that warned
  about extra semi-colons.  It may have been the HP C compiler.
  This file will trigger a bunch of those warnings now.
........
  r46585 | georg.brandl | 2006-06-01 08:39:19 +0200 (Thu, 01 Jun 2006) | 3 lines
  Correctly unpickle 2.4 exceptions via __setstate__ (patch #1498571)
........
  r46586 | georg.brandl | 2006-06-01 10:27:32 +0200 (Thu, 01 Jun 2006) | 3 lines
  Correctly allocate complex types with tp_alloc. (bug #1498638)
........
  r46587 | georg.brandl | 2006-06-01 14:30:46 +0200 (Thu, 01 Jun 2006) | 2 lines
  Correctly dispatch Faults in loads (patch #1498627)
........
  r46588 | georg.brandl | 2006-06-01 15:00:49 +0200 (Thu, 01 Jun 2006) | 3 lines
  Some code style tweaks, and remove apply.
........
  r46589 | armin.rigo | 2006-06-01 15:19:12 +0200 (Thu, 01 Jun 2006) | 5 lines
  [ 1497053 ] Let dicts propagate the exceptions in user __eq__().
  [ 1456209 ] dictresize() vulnerability ( <- backport candidate ).
........
  r46590 | tim.peters | 2006-06-01 15:41:46 +0200 (Thu, 01 Jun 2006) | 2 lines
  Whitespace normalization.
........
  r46591 | tim.peters | 2006-06-01 15:49:23 +0200 (Thu, 01 Jun 2006) | 2 lines
  Record bugs 1275608 and 1456209 as being fixed.
........
  r46592 | tim.peters | 2006-06-01 15:56:26 +0200 (Thu, 01 Jun 2006) | 5 lines
  Re-enable a new empty-string test added during the NFS sprint,
  but disabled then because str and unicode strings gave different
  results.  The implementations were repaired later during the
  sprint, but the new test remained disabled.
........
  r46594 | tim.peters | 2006-06-01 17:50:44 +0200 (Thu, 01 Jun 2006) | 7 lines
  Armin committed his patch while I was reviewing it (I'm sure
  he didn't know this), so merged in some changes I made during
  review.  Nothing material apart from changing a new `mask` local
  from int to Py_ssize_t.  Mostly this is repairing comments that
  were made incorrect, and adding new comments.  Also a few
  minor code rewrites for clarity or helpful succinctness.
........
  r46599 | neal.norwitz | 2006-06-02 06:45:53 +0200 (Fri, 02 Jun 2006) | 1 line
  Convert docstrings to comments so regrtest -v prints method names
........
  r46600 | neal.norwitz | 2006-06-02 06:50:49 +0200 (Fri, 02 Jun 2006) | 2 lines
  Fix memory leak found by valgrind.
........
  r46601 | neal.norwitz | 2006-06-02 06:54:52 +0200 (Fri, 02 Jun 2006) | 1 line
  More memory leaks from valgrind
........
  r46602 | neal.norwitz | 2006-06-02 08:23:00 +0200 (Fri, 02 Jun 2006) | 11 lines
  Patch #1357836:
  Prevent an invalid memory read from test_coding in case the done flag is set.
  In that case, the loop isn't entered.  I wonder if rather than setting
  the done flag in the cases before the loop, if they should just exit early.
  This code looks like it should be refactored.
  Backport candidate (also the early break above if decoding_fgets fails)
........
  r46603 | martin.blais | 2006-06-02 15:03:43 +0200 (Fri, 02 Jun 2006) | 1 line
  Fixed struct test to not use unittest.
........
  r46605 | tim.peters | 2006-06-03 01:22:51 +0200 (Sat, 03 Jun 2006) | 10 lines
  pprint functions used to sort a dict (by key) if and only if
  the output required more than one line.  "Small" dicts got
  displayed in seemingly random order (the hash-induced order
  produced by dict.__repr__).  None of this was documented.
  Now pprint functions always sort dicts by key, and the docs
  promise it.
  This was proposed and agreed to during the PyCon 2006 core
  sprint -- I just didn't have time for it before now.
........
											 
										 
										
											2006-06-08 14:42:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  shutil  
						 
					
						
							
								
									
										
										
										
											2012-02-20 01:48:16 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  importlib  
						 
					
						
							
								
									
										
										
										
											2013-06-15 17:11:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  importlib . util  
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								import  unittest  
						 
					
						
							
								
									
										
										
										
											2022-09-08 20:51:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  textwrap  
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-06 17:15:08 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  test . support  import  verbose  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  test . support . os_helper  import  create_empty_file  
						 
					
						
							
								
									
										
										
										
											2008-05-16 07:12:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  reprlib  import  repr  as  r  # Don't shadow builtin repr  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  reprlib  import  Repr  
						 
					
						
							
								
									
										
										
										
											2010-09-13 21:36:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  reprlib  import  recursive_repr  
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								def  nestedTuple ( nesting ) :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    t  =  ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    for  i  in  range ( nesting ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        t  =  ( t , ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  t 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  ReprTests ( unittest . TestCase ) :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-07 16:55:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_init_kwargs ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        example_kwargs  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxlevel " :  101 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxtuple " :  102 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxlist " :  103 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxarray " :  104 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxdict " :  105 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxset " :  106 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxfrozenset " :  107 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxdeque " :  108 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxstring " :  109 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxlong " :  110 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " maxother " :  111 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " fillvalue " :  " x "  *  112 , 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-08 20:51:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            " indent " :  " x "  *  113 , 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-07 16:55:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        r1  =  Repr ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  attr ,  val  in  example_kwargs . items ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            setattr ( r1 ,  attr ,  val ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        r2  =  Repr ( * * example_kwargs ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  attr  in  example_kwargs : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            self . assertEqual ( getattr ( r1 ,  attr ) ,  getattr ( r2 ,  attr ) ,  msg = attr ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    def  test_string ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        eq ( r ( " abc " ) ,  " ' abc ' " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( " abcdefghijklmnop " ) , " ' abcdefghijklmnop ' " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        s  =  " a " * 30 + " b " * 30 
							 
						 
					
						
							
								
									
										
										
										
											2004-02-12 17:35:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        expected  =  repr ( s ) [ : 13 ]  +  " ... "  +  repr ( s ) [ - 14 : ] 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        eq ( r ( s ) ,  expected ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-09 21:40:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        eq ( r ( " \" ' " ) ,  repr ( " \" ' " ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        s  =  " \" " * 30 + " ' " * 100 
							 
						 
					
						
							
								
									
										
										
										
											2004-02-12 17:35:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        expected  =  repr ( s ) [ : 13 ]  +  " ... "  +  repr ( s ) [ - 14 : ] 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        eq ( r ( s ) ,  expected ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												Merged revisions 55817-55961 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
  r55837 | guido.van.rossum | 2007-06-08 16:04:42 -0700 (Fri, 08 Jun 2007) | 2 lines
  PEP 3119 -- the abc module.
................
  r55838 | guido.van.rossum | 2007-06-08 17:38:55 -0700 (Fri, 08 Jun 2007) | 2 lines
  Implement part of PEP 3119 -- One Trick Ponies.
................
  r55847 | guido.van.rossum | 2007-06-09 08:28:06 -0700 (Sat, 09 Jun 2007) | 2 lines
  Different way to do one trick ponies, allowing registration (per PEP strawman).
................
  r55849 | guido.van.rossum | 2007-06-09 18:06:38 -0700 (Sat, 09 Jun 2007) | 3 lines
  Make sure that the magic looking for __hash__ (etc.) doesn't apply to
  real subclasses of Hashable.
................
  r55852 | guido.van.rossum | 2007-06-10 08:29:51 -0700 (Sun, 10 Jun 2007) | 2 lines
  Add some more examples, e.g. generators and dict views.
................
  r55853 | guido.van.rossum | 2007-06-10 08:31:59 -0700 (Sun, 10 Jun 2007) | 2 lines
  keys() and items() *are* containers -- just values() isn't.
................
  r55864 | georg.brandl | 2007-06-10 15:29:40 -0700 (Sun, 10 Jun 2007) | 2 lines
  PEP 3127: new octal literals, binary literals.
................
  r55865 | georg.brandl | 2007-06-10 15:31:37 -0700 (Sun, 10 Jun 2007) | 2 lines
  Some octal literal fixes in Tools.
................
  r55866 | georg.brandl | 2007-06-10 15:37:43 -0700 (Sun, 10 Jun 2007) | 2 lines
  Tokenizer changes for PEP 3127.
................
  r55867 | georg.brandl | 2007-06-10 15:37:55 -0700 (Sun, 10 Jun 2007) | 2 lines
  Some docs for PEP 3127.
................
  r55868 | georg.brandl | 2007-06-10 15:44:39 -0700 (Sun, 10 Jun 2007) | 2 lines
  Missed a place in intobject.c. Is that used anymore anyway?
................
  r55871 | neal.norwitz | 2007-06-10 18:31:49 -0700 (Sun, 10 Jun 2007) | 182 lines
  Merged revisions 55729-55868 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r55731 | neal.norwitz | 2007-06-01 00:29:12 -0700 (Fri, 01 Jun 2007) | 7 lines
    SF 1668596/1720897: distutils now copies data files
    even if package_dir is empty.
    This needs to be backported.  I'm too tired tonight.  It would be great
    if someone backports this if the buildbots are ok with it.  Otherwise,
    I will try to get to it tomorrow.
  ........
    r55732 | georg.brandl | 2007-06-01 04:33:33 -0700 (Fri, 01 Jun 2007) | 2 lines
    Bug #1722484: remove docstrings again when running with -OO.
  ........
    r55735 | georg.brandl | 2007-06-01 12:20:27 -0700 (Fri, 01 Jun 2007) | 2 lines
    Fix wrong issue number.
  ........
    r55739 | brett.cannon | 2007-06-01 20:02:29 -0700 (Fri, 01 Jun 2007) | 3 lines
    Have configure raise an error when building on AtheOS.  Code specific to AtheOS
    will be removed in Python 2.7.
  ........
    r55746 | neal.norwitz | 2007-06-02 11:33:53 -0700 (Sat, 02 Jun 2007) | 1 line
    Update expected birthday of 2.6
  ........
    r55751 | neal.norwitz | 2007-06-03 13:32:50 -0700 (Sun, 03 Jun 2007) | 10 lines
    Backout the original 'fix' to 1721309 which had no effect.
    Different versions of Berkeley DB handle this differently.
    The comments and bug report should have the details.  Memory is allocated
    in 4.4 (and presumably earlier), but not in 4.5.  Thus
    4.5 has the free error, but not earlier versions.
    Mostly update comments, plus make the free conditional.
    This fix was already applied to the 2.5 branch.
  ........
    r55752 | brett.cannon | 2007-06-03 16:13:41 -0700 (Sun, 03 Jun 2007) | 6 lines
    Make _strptime.TimeRE().pattern() use ``\s+`` for matching whitespace instead
    of ``\s*``.  This prevents patterns from "stealing" bits from other patterns in
    order to make a match work.
    Closes bug #1730389.  Will be backported.
  ........
    r55766 | hyeshik.chang | 2007-06-05 11:16:52 -0700 (Tue, 05 Jun 2007) | 4 lines
    Fix build on FreeBSD.  Bluetooth HCI API in FreeBSD is quite different
    from Linux's.  Just fix the build for now but the code doesn't
    support the complete capability of HCI on FreeBSD yet.
  ........
    r55770 | hyeshik.chang | 2007-06-05 11:58:51 -0700 (Tue, 05 Jun 2007) | 4 lines
    Bug #1728403: Fix a bug that CJKCodecs StreamReader hangs when it
    reads a file that ends with incomplete sequence and sizehint argument
    for .read() is specified.
  ........
    r55775 | hyeshik.chang | 2007-06-05 12:28:15 -0700 (Tue, 05 Jun 2007) | 2 lines
    Fix for Windows: close a temporary file before trying to delete it.
  ........
    r55783 | guido.van.rossum | 2007-06-05 14:24:47 -0700 (Tue, 05 Jun 2007) | 2 lines
    Patch by Tim Delany (missing DECREF). SF #1731330.
  ........
    r55785 | collin.winter | 2007-06-05 17:17:35 -0700 (Tue, 05 Jun 2007) | 3 lines
    Patch #1731049: make threading.py use a proper "raise" when checking internal state, rather than assert statements (which get stripped out by -O).
  ........
    r55786 | facundo.batista | 2007-06-06 08:13:37 -0700 (Wed, 06 Jun 2007) | 4 lines
    FTP.ntransfercmd method now uses create_connection when passive,
    using the timeout received in connection time.
  ........
    r55792 | facundo.batista | 2007-06-06 10:15:23 -0700 (Wed, 06 Jun 2007) | 7 lines
    Added an optional timeout parameter to function urllib2.urlopen,
    with tests in test_urllib2net.py (must have network resource
    enabled to execute them). Also modified test_urllib2.py because
    testing mock classes must take it into acount. Docs are also
    updated.
  ........
    r55793 | thomas.heller | 2007-06-06 13:19:19 -0700 (Wed, 06 Jun 2007) | 1 line
    Build _ctypes and _ctypes_test in the ReleaseAMD64 configuration.
  ........
    r55802 | georg.brandl | 2007-06-07 06:23:24 -0700 (Thu, 07 Jun 2007) | 3 lines
    Disallow function calls like foo(None=1).
    Backport from py3k rev. 55708 by Guido.
  ........
    r55804 | georg.brandl | 2007-06-07 06:30:24 -0700 (Thu, 07 Jun 2007) | 2 lines
    Make reindent.py executable.
  ........
    r55805 | georg.brandl | 2007-06-07 06:34:10 -0700 (Thu, 07 Jun 2007) | 2 lines
    Patch #1667860: Fix UnboundLocalError in urllib2.
  ........
    r55821 | kristjan.jonsson | 2007-06-07 16:53:49 -0700 (Thu, 07 Jun 2007) | 1 line
    Fixing changes to getbuildinfo.c that broke linux builds
  ........
    r55828 | thomas.heller | 2007-06-08 09:10:27 -0700 (Fri, 08 Jun 2007) | 1 line
    Make this test work with older Python releases where struct has no 't' format character.
  ........
    r55829 | martin.v.loewis | 2007-06-08 10:29:20 -0700 (Fri, 08 Jun 2007) | 3 lines
    Bug #1733488: Fix compilation of bufferobject.c on AIX.
    Will backport to 2.5.
  ........
    r55831 | thomas.heller | 2007-06-08 11:20:09 -0700 (Fri, 08 Jun 2007) | 2 lines
    [ 1715718 ] x64 clean compile patch for _ctypes, by Kristj?n Valur
    with small modifications.
  ........
    r55832 | thomas.heller | 2007-06-08 12:01:06 -0700 (Fri, 08 Jun 2007) | 1 line
    Fix gcc warnings intruduced by passing Py_ssize_t to PyErr_Format calls.
  ........
    r55833 | thomas.heller | 2007-06-08 12:08:31 -0700 (Fri, 08 Jun 2007) | 2 lines
    Fix wrong documentation, and correct the punktuation.
    Closes [1700455].
  ........
    r55834 | thomas.heller | 2007-06-08 12:14:23 -0700 (Fri, 08 Jun 2007) | 1 line
    Fix warnings by using proper function prototype.
  ........
    r55839 | neal.norwitz | 2007-06-08 20:36:34 -0700 (Fri, 08 Jun 2007) | 7 lines
    Prevent expandtabs() on string and unicode objects from causing a segfault when
    a large width is passed on 32-bit platforms.  Found by Google.
    It would be good for people to review this especially carefully and verify
    I don't have an off by one error and there is no other way to cause overflow.
  ........
    r55841 | neal.norwitz | 2007-06-08 21:48:22 -0700 (Fri, 08 Jun 2007) | 1 line
    Use macro version of GET_SIZE to avoid Coverity warning (#150) about a possible error.
  ........
    r55842 | martin.v.loewis | 2007-06-09 00:42:52 -0700 (Sat, 09 Jun 2007) | 3 lines
    Patch #1733960: Allow T_LONGLONG to accept ints.
    Will backport to 2.5.
  ........
    r55843 | martin.v.loewis | 2007-06-09 00:58:05 -0700 (Sat, 09 Jun 2007) | 2 lines
    Fix Windows build.
  ........
    r55845 | martin.v.loewis | 2007-06-09 03:10:26 -0700 (Sat, 09 Jun 2007) | 2 lines
    Provide LLONG_MAX for S390.
  ........
    r55854 | thomas.heller | 2007-06-10 08:59:17 -0700 (Sun, 10 Jun 2007) | 4 lines
    First version of build scripts for Windows/AMD64 (no external
    components are built yet, and 'kill_python' is disabled).
  ........
    r55855 | thomas.heller | 2007-06-10 10:55:51 -0700 (Sun, 10 Jun 2007) | 3 lines
    For now, disable the _bsddb, _sqlite3, _ssl, _testcapi, _tkinter
    modules in the ReleaseAMD64 configuration because they do not compile.
  ........
    r55856 | thomas.heller | 2007-06-10 11:27:54 -0700 (Sun, 10 Jun 2007) | 1 line
    Need to set the environment variables, otherwise devenv.com is not found.
  ........
    r55860 | thomas.heller | 2007-06-10 14:01:17 -0700 (Sun, 10 Jun 2007) | 1 line
    Revert commit 55855.
  ........
................
  r55880 | neal.norwitz | 2007-06-10 22:07:36 -0700 (Sun, 10 Jun 2007) | 5 lines
  Fix the refleak counter on test_collections.  The ABC metaclass creates
  a registry which must be cleared on each run.  Otherwise, there *seem*
  to be refleaks when there really aren't any.  (The class is held within
  the registry even though it's no longer needed.)
................
  r55884 | neal.norwitz | 2007-06-10 22:46:33 -0700 (Sun, 10 Jun 2007) | 1 line
  These tests have been removed, so they are no longer needed here
................
  r55886 | georg.brandl | 2007-06-11 00:26:37 -0700 (Mon, 11 Jun 2007) | 3 lines
  Optimize access to True and False in the compiler (if True)
  and the peepholer (LOAD_NAME True).
................
  r55905 | georg.brandl | 2007-06-11 10:02:26 -0700 (Mon, 11 Jun 2007) | 5 lines
  Remove __oct__ and __hex__ and use __index__ for converting
  non-ints before formatting in a base.
  Add a bin() builtin.
................
  r55906 | georg.brandl | 2007-06-11 10:04:44 -0700 (Mon, 11 Jun 2007) | 2 lines
  int(x, 0) does not "guess".
................
  r55907 | georg.brandl | 2007-06-11 10:05:47 -0700 (Mon, 11 Jun 2007) | 2 lines
  Add a comment to explain that nb_oct and nb_hex are nonfunctional.
................
  r55908 | guido.van.rossum | 2007-06-11 10:49:18 -0700 (Mon, 11 Jun 2007) | 2 lines
  Get rid of unused imports and comment.
................
  r55910 | guido.van.rossum | 2007-06-11 13:05:17 -0700 (Mon, 11 Jun 2007) | 2 lines
  _Abstract.__new__ now requires either no arguments or __init__ overridden.
................
  r55911 | guido.van.rossum | 2007-06-11 13:07:49 -0700 (Mon, 11 Jun 2007) | 7 lines
  Move the collections ABCs to a separate file, _abcoll.py, in order to avoid
  needing to import _collections.so during the bootstrap (this will become
  apparent in the next submit of os.py).
  Add (plain and mutable) ABCs for Set, Mapping, Sequence.
................
  r55912 | guido.van.rossum | 2007-06-11 13:09:31 -0700 (Mon, 11 Jun 2007) | 2 lines
  Rewrite the _Environ class to use the new collections ABCs.
................
  r55913 | guido.van.rossum | 2007-06-11 13:59:45 -0700 (Mon, 11 Jun 2007) | 72 lines
  Merged revisions 55869-55912 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r55869 | neal.norwitz | 2007-06-10 17:42:11 -0700 (Sun, 10 Jun 2007) | 1 line
    Add Atul Varma for patch # 1667860
  ........
    r55870 | neal.norwitz | 2007-06-10 18:22:03 -0700 (Sun, 10 Jun 2007) | 1 line
    Ignore valgrind problems on Ubuntu from ld
  ........
    r55872 | neal.norwitz | 2007-06-10 18:48:46 -0700 (Sun, 10 Jun 2007) | 2 lines
    Ignore config.status.lineno which seems new (new autoconf?)
  ........
    r55873 | neal.norwitz | 2007-06-10 19:14:39 -0700 (Sun, 10 Jun 2007) | 1 line
    Prevent these tests from running on Win64 since they don\'t apply there either
  ........
    r55874 | neal.norwitz | 2007-06-10 19:16:10 -0700 (Sun, 10 Jun 2007) | 5 lines
    Fix a bug when there was a newline in the string expandtabs was called on.
    This also catches another condition that can overflow.
    Will backport.
  ........
    r55879 | neal.norwitz | 2007-06-10 21:52:37 -0700 (Sun, 10 Jun 2007) | 1 line
    Prevent hang if the port cannot be opened.
  ........
    r55881 | neal.norwitz | 2007-06-10 22:28:45 -0700 (Sun, 10 Jun 2007) | 4 lines
    Add all of the distuils modules that don't seem to have explicit tests. :-(
    Move an import in mworkscompiler so that this module can be imported on
    any platform.  Hopefully this works on all platforms.
  ........
    r55882 | neal.norwitz | 2007-06-10 22:35:10 -0700 (Sun, 10 Jun 2007) | 4 lines
    SF #1734732, lower case the module names per PEP 8.
    Will backport.
  ........
    r55885 | neal.norwitz | 2007-06-10 23:16:48 -0700 (Sun, 10 Jun 2007) | 4 lines
    Not sure why this only fails sometimes on Unix machines. Better
    to disable it and only import msvccompiler on Windows since that's
    the only place it can work anyways.
  ........
    r55887 | neal.norwitz | 2007-06-11 00:29:43 -0700 (Mon, 11 Jun 2007) | 4 lines
    Bug #1734723: Fix repr.Repr() so it doesn't ignore the maxtuple attribute.
    Will backport
  ........
    r55889 | neal.norwitz | 2007-06-11 00:36:24 -0700 (Mon, 11 Jun 2007) | 1 line
    Reflow long line
  ........
    r55896 | thomas.heller | 2007-06-11 08:58:33 -0700 (Mon, 11 Jun 2007) | 3 lines
    Use "O&" in calls to PyArg_Parse when we need a 'void*' instead of "k"
    or "K" codes.
  ........
    r55901 | facundo.batista | 2007-06-11 09:27:08 -0700 (Mon, 11 Jun 2007) | 5 lines
    Added versionchanged flag to all the methods which received
    a new optional timeout parameter, and a versionadded flag to
    the socket.create_connection function.
  ........
................
  r55914 | guido.van.rossum | 2007-06-11 14:19:50 -0700 (Mon, 11 Jun 2007) | 3 lines
  New super() implementation, for PEP 3135 (though the PEP is not yet updated
  to this design, and small tweaks may still be made later).
................
  r55923 | guido.van.rossum | 2007-06-11 21:15:24 -0700 (Mon, 11 Jun 2007) | 4 lines
  I'm guessing this module broke when Neal ripped out the types module --
  it used 'list' both as a local variable and as the built-in list type.
  Renamed the local variable since that was easier.
................
  r55924 | guido.van.rossum | 2007-06-11 21:20:05 -0700 (Mon, 11 Jun 2007) | 5 lines
  Change all occurrences of super(<thisclass>, <firstarg>) to super().
  Seems to have worked, all the tests still pass.
  Exception: test_descr and test_descrtut, which have tons of these
  and are there to test the various usages.
................
  r55939 | collin.winter | 2007-06-12 13:57:33 -0700 (Tue, 12 Jun 2007) | 1 line
  Patch #1735485: remove StandardError from the exception hierarchy.
................
  r55954 | neal.norwitz | 2007-06-12 21:56:32 -0700 (Tue, 12 Jun 2007) | 51 lines
  Merged revisions 55913-55950 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r55926 | marc-andre.lemburg | 2007-06-12 02:09:58 -0700 (Tue, 12 Jun 2007) | 3 lines
    Apply patch #1734945 to support TurboLinux as distribution.
  ........
    r55927 | marc-andre.lemburg | 2007-06-12 02:26:49 -0700 (Tue, 12 Jun 2007) | 3 lines
    Add patch #1726668: Windows Vista support.
  ........
    r55929 | thomas.heller | 2007-06-12 08:36:22 -0700 (Tue, 12 Jun 2007) | 1 line
    Checkout, but do not yet try to build, exernal sources.
  ........
    r55930 | thomas.heller | 2007-06-12 09:08:27 -0700 (Tue, 12 Jun 2007) | 6 lines
    Add bufferoverflowU.lib to the libraries needed by _ssl (is this the
    right thing to do?).
    Set the /XP64 /RETAIL build enviroment in the makefile when building
    ReleaseAMD64.
  ........
    r55931 | thomas.heller | 2007-06-12 09:23:19 -0700 (Tue, 12 Jun 2007) | 5 lines
    Revert this change, since it breaks the win32 build:
    Add bufferoverflowU.lib to the libraries needed by _ssl (is this the
    right thing to do?).
  ........
    r55934 | thomas.heller | 2007-06-12 10:28:31 -0700 (Tue, 12 Jun 2007) | 3 lines
    Specify the bufferoverflowU.lib to the makefile on the command line
    (for ReleaseAMD64 builds).
  ........
    r55937 | thomas.heller | 2007-06-12 12:02:59 -0700 (Tue, 12 Jun 2007) | 3 lines
    Add bufferoverflowU.lib to PCBuild\_bsddb.vcproj.
    Build sqlite3.dll and bsddb.
  ........
    r55938 | thomas.heller | 2007-06-12 12:56:12 -0700 (Tue, 12 Jun 2007) | 2 lines
    Don't rebuild Berkeley DB if not needed (this was committed by accident).
  ........
    r55948 | martin.v.loewis | 2007-06-12 20:42:19 -0700 (Tue, 12 Jun 2007) | 3 lines
    Provide PY_LLONG_MAX on all systems having long long.
    Will backport to 2.5.
  ........
................
  r55959 | guido.van.rossum | 2007-06-13 09:22:41 -0700 (Wed, 13 Jun 2007) | 2 lines
  Fix a compilation warning.
................
											 
										 
										
											2007-06-13 18:07:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_tuple ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
											 
										
											
												Merged revisions 55817-55961 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
  r55837 | guido.van.rossum | 2007-06-08 16:04:42 -0700 (Fri, 08 Jun 2007) | 2 lines
  PEP 3119 -- the abc module.
................
  r55838 | guido.van.rossum | 2007-06-08 17:38:55 -0700 (Fri, 08 Jun 2007) | 2 lines
  Implement part of PEP 3119 -- One Trick Ponies.
................
  r55847 | guido.van.rossum | 2007-06-09 08:28:06 -0700 (Sat, 09 Jun 2007) | 2 lines
  Different way to do one trick ponies, allowing registration (per PEP strawman).
................
  r55849 | guido.van.rossum | 2007-06-09 18:06:38 -0700 (Sat, 09 Jun 2007) | 3 lines
  Make sure that the magic looking for __hash__ (etc.) doesn't apply to
  real subclasses of Hashable.
................
  r55852 | guido.van.rossum | 2007-06-10 08:29:51 -0700 (Sun, 10 Jun 2007) | 2 lines
  Add some more examples, e.g. generators and dict views.
................
  r55853 | guido.van.rossum | 2007-06-10 08:31:59 -0700 (Sun, 10 Jun 2007) | 2 lines
  keys() and items() *are* containers -- just values() isn't.
................
  r55864 | georg.brandl | 2007-06-10 15:29:40 -0700 (Sun, 10 Jun 2007) | 2 lines
  PEP 3127: new octal literals, binary literals.
................
  r55865 | georg.brandl | 2007-06-10 15:31:37 -0700 (Sun, 10 Jun 2007) | 2 lines
  Some octal literal fixes in Tools.
................
  r55866 | georg.brandl | 2007-06-10 15:37:43 -0700 (Sun, 10 Jun 2007) | 2 lines
  Tokenizer changes for PEP 3127.
................
  r55867 | georg.brandl | 2007-06-10 15:37:55 -0700 (Sun, 10 Jun 2007) | 2 lines
  Some docs for PEP 3127.
................
  r55868 | georg.brandl | 2007-06-10 15:44:39 -0700 (Sun, 10 Jun 2007) | 2 lines
  Missed a place in intobject.c. Is that used anymore anyway?
................
  r55871 | neal.norwitz | 2007-06-10 18:31:49 -0700 (Sun, 10 Jun 2007) | 182 lines
  Merged revisions 55729-55868 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r55731 | neal.norwitz | 2007-06-01 00:29:12 -0700 (Fri, 01 Jun 2007) | 7 lines
    SF 1668596/1720897: distutils now copies data files
    even if package_dir is empty.
    This needs to be backported.  I'm too tired tonight.  It would be great
    if someone backports this if the buildbots are ok with it.  Otherwise,
    I will try to get to it tomorrow.
  ........
    r55732 | georg.brandl | 2007-06-01 04:33:33 -0700 (Fri, 01 Jun 2007) | 2 lines
    Bug #1722484: remove docstrings again when running with -OO.
  ........
    r55735 | georg.brandl | 2007-06-01 12:20:27 -0700 (Fri, 01 Jun 2007) | 2 lines
    Fix wrong issue number.
  ........
    r55739 | brett.cannon | 2007-06-01 20:02:29 -0700 (Fri, 01 Jun 2007) | 3 lines
    Have configure raise an error when building on AtheOS.  Code specific to AtheOS
    will be removed in Python 2.7.
  ........
    r55746 | neal.norwitz | 2007-06-02 11:33:53 -0700 (Sat, 02 Jun 2007) | 1 line
    Update expected birthday of 2.6
  ........
    r55751 | neal.norwitz | 2007-06-03 13:32:50 -0700 (Sun, 03 Jun 2007) | 10 lines
    Backout the original 'fix' to 1721309 which had no effect.
    Different versions of Berkeley DB handle this differently.
    The comments and bug report should have the details.  Memory is allocated
    in 4.4 (and presumably earlier), but not in 4.5.  Thus
    4.5 has the free error, but not earlier versions.
    Mostly update comments, plus make the free conditional.
    This fix was already applied to the 2.5 branch.
  ........
    r55752 | brett.cannon | 2007-06-03 16:13:41 -0700 (Sun, 03 Jun 2007) | 6 lines
    Make _strptime.TimeRE().pattern() use ``\s+`` for matching whitespace instead
    of ``\s*``.  This prevents patterns from "stealing" bits from other patterns in
    order to make a match work.
    Closes bug #1730389.  Will be backported.
  ........
    r55766 | hyeshik.chang | 2007-06-05 11:16:52 -0700 (Tue, 05 Jun 2007) | 4 lines
    Fix build on FreeBSD.  Bluetooth HCI API in FreeBSD is quite different
    from Linux's.  Just fix the build for now but the code doesn't
    support the complete capability of HCI on FreeBSD yet.
  ........
    r55770 | hyeshik.chang | 2007-06-05 11:58:51 -0700 (Tue, 05 Jun 2007) | 4 lines
    Bug #1728403: Fix a bug that CJKCodecs StreamReader hangs when it
    reads a file that ends with incomplete sequence and sizehint argument
    for .read() is specified.
  ........
    r55775 | hyeshik.chang | 2007-06-05 12:28:15 -0700 (Tue, 05 Jun 2007) | 2 lines
    Fix for Windows: close a temporary file before trying to delete it.
  ........
    r55783 | guido.van.rossum | 2007-06-05 14:24:47 -0700 (Tue, 05 Jun 2007) | 2 lines
    Patch by Tim Delany (missing DECREF). SF #1731330.
  ........
    r55785 | collin.winter | 2007-06-05 17:17:35 -0700 (Tue, 05 Jun 2007) | 3 lines
    Patch #1731049: make threading.py use a proper "raise" when checking internal state, rather than assert statements (which get stripped out by -O).
  ........
    r55786 | facundo.batista | 2007-06-06 08:13:37 -0700 (Wed, 06 Jun 2007) | 4 lines
    FTP.ntransfercmd method now uses create_connection when passive,
    using the timeout received in connection time.
  ........
    r55792 | facundo.batista | 2007-06-06 10:15:23 -0700 (Wed, 06 Jun 2007) | 7 lines
    Added an optional timeout parameter to function urllib2.urlopen,
    with tests in test_urllib2net.py (must have network resource
    enabled to execute them). Also modified test_urllib2.py because
    testing mock classes must take it into acount. Docs are also
    updated.
  ........
    r55793 | thomas.heller | 2007-06-06 13:19:19 -0700 (Wed, 06 Jun 2007) | 1 line
    Build _ctypes and _ctypes_test in the ReleaseAMD64 configuration.
  ........
    r55802 | georg.brandl | 2007-06-07 06:23:24 -0700 (Thu, 07 Jun 2007) | 3 lines
    Disallow function calls like foo(None=1).
    Backport from py3k rev. 55708 by Guido.
  ........
    r55804 | georg.brandl | 2007-06-07 06:30:24 -0700 (Thu, 07 Jun 2007) | 2 lines
    Make reindent.py executable.
  ........
    r55805 | georg.brandl | 2007-06-07 06:34:10 -0700 (Thu, 07 Jun 2007) | 2 lines
    Patch #1667860: Fix UnboundLocalError in urllib2.
  ........
    r55821 | kristjan.jonsson | 2007-06-07 16:53:49 -0700 (Thu, 07 Jun 2007) | 1 line
    Fixing changes to getbuildinfo.c that broke linux builds
  ........
    r55828 | thomas.heller | 2007-06-08 09:10:27 -0700 (Fri, 08 Jun 2007) | 1 line
    Make this test work with older Python releases where struct has no 't' format character.
  ........
    r55829 | martin.v.loewis | 2007-06-08 10:29:20 -0700 (Fri, 08 Jun 2007) | 3 lines
    Bug #1733488: Fix compilation of bufferobject.c on AIX.
    Will backport to 2.5.
  ........
    r55831 | thomas.heller | 2007-06-08 11:20:09 -0700 (Fri, 08 Jun 2007) | 2 lines
    [ 1715718 ] x64 clean compile patch for _ctypes, by Kristj?n Valur
    with small modifications.
  ........
    r55832 | thomas.heller | 2007-06-08 12:01:06 -0700 (Fri, 08 Jun 2007) | 1 line
    Fix gcc warnings intruduced by passing Py_ssize_t to PyErr_Format calls.
  ........
    r55833 | thomas.heller | 2007-06-08 12:08:31 -0700 (Fri, 08 Jun 2007) | 2 lines
    Fix wrong documentation, and correct the punktuation.
    Closes [1700455].
  ........
    r55834 | thomas.heller | 2007-06-08 12:14:23 -0700 (Fri, 08 Jun 2007) | 1 line
    Fix warnings by using proper function prototype.
  ........
    r55839 | neal.norwitz | 2007-06-08 20:36:34 -0700 (Fri, 08 Jun 2007) | 7 lines
    Prevent expandtabs() on string and unicode objects from causing a segfault when
    a large width is passed on 32-bit platforms.  Found by Google.
    It would be good for people to review this especially carefully and verify
    I don't have an off by one error and there is no other way to cause overflow.
  ........
    r55841 | neal.norwitz | 2007-06-08 21:48:22 -0700 (Fri, 08 Jun 2007) | 1 line
    Use macro version of GET_SIZE to avoid Coverity warning (#150) about a possible error.
  ........
    r55842 | martin.v.loewis | 2007-06-09 00:42:52 -0700 (Sat, 09 Jun 2007) | 3 lines
    Patch #1733960: Allow T_LONGLONG to accept ints.
    Will backport to 2.5.
  ........
    r55843 | martin.v.loewis | 2007-06-09 00:58:05 -0700 (Sat, 09 Jun 2007) | 2 lines
    Fix Windows build.
  ........
    r55845 | martin.v.loewis | 2007-06-09 03:10:26 -0700 (Sat, 09 Jun 2007) | 2 lines
    Provide LLONG_MAX for S390.
  ........
    r55854 | thomas.heller | 2007-06-10 08:59:17 -0700 (Sun, 10 Jun 2007) | 4 lines
    First version of build scripts for Windows/AMD64 (no external
    components are built yet, and 'kill_python' is disabled).
  ........
    r55855 | thomas.heller | 2007-06-10 10:55:51 -0700 (Sun, 10 Jun 2007) | 3 lines
    For now, disable the _bsddb, _sqlite3, _ssl, _testcapi, _tkinter
    modules in the ReleaseAMD64 configuration because they do not compile.
  ........
    r55856 | thomas.heller | 2007-06-10 11:27:54 -0700 (Sun, 10 Jun 2007) | 1 line
    Need to set the environment variables, otherwise devenv.com is not found.
  ........
    r55860 | thomas.heller | 2007-06-10 14:01:17 -0700 (Sun, 10 Jun 2007) | 1 line
    Revert commit 55855.
  ........
................
  r55880 | neal.norwitz | 2007-06-10 22:07:36 -0700 (Sun, 10 Jun 2007) | 5 lines
  Fix the refleak counter on test_collections.  The ABC metaclass creates
  a registry which must be cleared on each run.  Otherwise, there *seem*
  to be refleaks when there really aren't any.  (The class is held within
  the registry even though it's no longer needed.)
................
  r55884 | neal.norwitz | 2007-06-10 22:46:33 -0700 (Sun, 10 Jun 2007) | 1 line
  These tests have been removed, so they are no longer needed here
................
  r55886 | georg.brandl | 2007-06-11 00:26:37 -0700 (Mon, 11 Jun 2007) | 3 lines
  Optimize access to True and False in the compiler (if True)
  and the peepholer (LOAD_NAME True).
................
  r55905 | georg.brandl | 2007-06-11 10:02:26 -0700 (Mon, 11 Jun 2007) | 5 lines
  Remove __oct__ and __hex__ and use __index__ for converting
  non-ints before formatting in a base.
  Add a bin() builtin.
................
  r55906 | georg.brandl | 2007-06-11 10:04:44 -0700 (Mon, 11 Jun 2007) | 2 lines
  int(x, 0) does not "guess".
................
  r55907 | georg.brandl | 2007-06-11 10:05:47 -0700 (Mon, 11 Jun 2007) | 2 lines
  Add a comment to explain that nb_oct and nb_hex are nonfunctional.
................
  r55908 | guido.van.rossum | 2007-06-11 10:49:18 -0700 (Mon, 11 Jun 2007) | 2 lines
  Get rid of unused imports and comment.
................
  r55910 | guido.van.rossum | 2007-06-11 13:05:17 -0700 (Mon, 11 Jun 2007) | 2 lines
  _Abstract.__new__ now requires either no arguments or __init__ overridden.
................
  r55911 | guido.van.rossum | 2007-06-11 13:07:49 -0700 (Mon, 11 Jun 2007) | 7 lines
  Move the collections ABCs to a separate file, _abcoll.py, in order to avoid
  needing to import _collections.so during the bootstrap (this will become
  apparent in the next submit of os.py).
  Add (plain and mutable) ABCs for Set, Mapping, Sequence.
................
  r55912 | guido.van.rossum | 2007-06-11 13:09:31 -0700 (Mon, 11 Jun 2007) | 2 lines
  Rewrite the _Environ class to use the new collections ABCs.
................
  r55913 | guido.van.rossum | 2007-06-11 13:59:45 -0700 (Mon, 11 Jun 2007) | 72 lines
  Merged revisions 55869-55912 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r55869 | neal.norwitz | 2007-06-10 17:42:11 -0700 (Sun, 10 Jun 2007) | 1 line
    Add Atul Varma for patch # 1667860
  ........
    r55870 | neal.norwitz | 2007-06-10 18:22:03 -0700 (Sun, 10 Jun 2007) | 1 line
    Ignore valgrind problems on Ubuntu from ld
  ........
    r55872 | neal.norwitz | 2007-06-10 18:48:46 -0700 (Sun, 10 Jun 2007) | 2 lines
    Ignore config.status.lineno which seems new (new autoconf?)
  ........
    r55873 | neal.norwitz | 2007-06-10 19:14:39 -0700 (Sun, 10 Jun 2007) | 1 line
    Prevent these tests from running on Win64 since they don\'t apply there either
  ........
    r55874 | neal.norwitz | 2007-06-10 19:16:10 -0700 (Sun, 10 Jun 2007) | 5 lines
    Fix a bug when there was a newline in the string expandtabs was called on.
    This also catches another condition that can overflow.
    Will backport.
  ........
    r55879 | neal.norwitz | 2007-06-10 21:52:37 -0700 (Sun, 10 Jun 2007) | 1 line
    Prevent hang if the port cannot be opened.
  ........
    r55881 | neal.norwitz | 2007-06-10 22:28:45 -0700 (Sun, 10 Jun 2007) | 4 lines
    Add all of the distuils modules that don't seem to have explicit tests. :-(
    Move an import in mworkscompiler so that this module can be imported on
    any platform.  Hopefully this works on all platforms.
  ........
    r55882 | neal.norwitz | 2007-06-10 22:35:10 -0700 (Sun, 10 Jun 2007) | 4 lines
    SF #1734732, lower case the module names per PEP 8.
    Will backport.
  ........
    r55885 | neal.norwitz | 2007-06-10 23:16:48 -0700 (Sun, 10 Jun 2007) | 4 lines
    Not sure why this only fails sometimes on Unix machines. Better
    to disable it and only import msvccompiler on Windows since that's
    the only place it can work anyways.
  ........
    r55887 | neal.norwitz | 2007-06-11 00:29:43 -0700 (Mon, 11 Jun 2007) | 4 lines
    Bug #1734723: Fix repr.Repr() so it doesn't ignore the maxtuple attribute.
    Will backport
  ........
    r55889 | neal.norwitz | 2007-06-11 00:36:24 -0700 (Mon, 11 Jun 2007) | 1 line
    Reflow long line
  ........
    r55896 | thomas.heller | 2007-06-11 08:58:33 -0700 (Mon, 11 Jun 2007) | 3 lines
    Use "O&" in calls to PyArg_Parse when we need a 'void*' instead of "k"
    or "K" codes.
  ........
    r55901 | facundo.batista | 2007-06-11 09:27:08 -0700 (Mon, 11 Jun 2007) | 5 lines
    Added versionchanged flag to all the methods which received
    a new optional timeout parameter, and a versionadded flag to
    the socket.create_connection function.
  ........
................
  r55914 | guido.van.rossum | 2007-06-11 14:19:50 -0700 (Mon, 11 Jun 2007) | 3 lines
  New super() implementation, for PEP 3135 (though the PEP is not yet updated
  to this design, and small tweaks may still be made later).
................
  r55923 | guido.van.rossum | 2007-06-11 21:15:24 -0700 (Mon, 11 Jun 2007) | 4 lines
  I'm guessing this module broke when Neal ripped out the types module --
  it used 'list' both as a local variable and as the built-in list type.
  Renamed the local variable since that was easier.
................
  r55924 | guido.van.rossum | 2007-06-11 21:20:05 -0700 (Mon, 11 Jun 2007) | 5 lines
  Change all occurrences of super(<thisclass>, <firstarg>) to super().
  Seems to have worked, all the tests still pass.
  Exception: test_descr and test_descrtut, which have tons of these
  and are there to test the various usages.
................
  r55939 | collin.winter | 2007-06-12 13:57:33 -0700 (Tue, 12 Jun 2007) | 1 line
  Patch #1735485: remove StandardError from the exception hierarchy.
................
  r55954 | neal.norwitz | 2007-06-12 21:56:32 -0700 (Tue, 12 Jun 2007) | 51 lines
  Merged revisions 55913-55950 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r55926 | marc-andre.lemburg | 2007-06-12 02:09:58 -0700 (Tue, 12 Jun 2007) | 3 lines
    Apply patch #1734945 to support TurboLinux as distribution.
  ........
    r55927 | marc-andre.lemburg | 2007-06-12 02:26:49 -0700 (Tue, 12 Jun 2007) | 3 lines
    Add patch #1726668: Windows Vista support.
  ........
    r55929 | thomas.heller | 2007-06-12 08:36:22 -0700 (Tue, 12 Jun 2007) | 1 line
    Checkout, but do not yet try to build, exernal sources.
  ........
    r55930 | thomas.heller | 2007-06-12 09:08:27 -0700 (Tue, 12 Jun 2007) | 6 lines
    Add bufferoverflowU.lib to the libraries needed by _ssl (is this the
    right thing to do?).
    Set the /XP64 /RETAIL build enviroment in the makefile when building
    ReleaseAMD64.
  ........
    r55931 | thomas.heller | 2007-06-12 09:23:19 -0700 (Tue, 12 Jun 2007) | 5 lines
    Revert this change, since it breaks the win32 build:
    Add bufferoverflowU.lib to the libraries needed by _ssl (is this the
    right thing to do?).
  ........
    r55934 | thomas.heller | 2007-06-12 10:28:31 -0700 (Tue, 12 Jun 2007) | 3 lines
    Specify the bufferoverflowU.lib to the makefile on the command line
    (for ReleaseAMD64 builds).
  ........
    r55937 | thomas.heller | 2007-06-12 12:02:59 -0700 (Tue, 12 Jun 2007) | 3 lines
    Add bufferoverflowU.lib to PCBuild\_bsddb.vcproj.
    Build sqlite3.dll and bsddb.
  ........
    r55938 | thomas.heller | 2007-06-12 12:56:12 -0700 (Tue, 12 Jun 2007) | 2 lines
    Don't rebuild Berkeley DB if not needed (this was committed by accident).
  ........
    r55948 | martin.v.loewis | 2007-06-12 20:42:19 -0700 (Tue, 12 Jun 2007) | 3 lines
    Provide PY_LLONG_MAX on all systems having long long.
    Will backport to 2.5.
  ........
................
  r55959 | guido.van.rossum | 2007-06-13 09:22:41 -0700 (Wed, 13 Jun 2007) | 2 lines
  Fix a compilation warning.
................
											 
										 
										
											2007-06-13 18:07:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( r ( ( 1 , ) ) ,  " (1,) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        t3  =  ( 1 ,  2 ,  3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( t3 ) ,  " (1, 2, 3) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        r2  =  Repr ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        r2 . maxtuple  =  2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        expected  =  repr ( t3 ) [ : - 2 ]  +  " ...) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r2 . repr ( t3 ) ,  expected ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-09-22 16:45:58 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # modified fillvalue: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        r3  =  Repr ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        r3 . fillvalue  =  ' +++ ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        r3 . maxtuple  =  2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        expected  =  repr ( t3 ) [ : - 2 ]  +  " +++) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r3 . repr ( t3 ) ,  expected ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    def  test_container ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2003-02-05 18:29:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        from  array  import  array 
							 
						 
					
						
							
								
									
										
										
										
											2004-05-21 23:01:18 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        from  collections  import  deque 
							 
						 
					
						
							
								
									
										
										
										
											2003-02-05 18:29:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        # Tuples give up after 6 elements 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( ( ) ) ,  " () " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( ( 1 , ) ) ,  " (1,) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( ( 1 ,  2 ,  3 ) ) ,  " (1, 2, 3) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( ( 1 ,  2 ,  3 ,  4 ,  5 ,  6 ) ) ,  " (1, 2, 3, 4, 5, 6) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( ( 1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ) ) ,  " (1, 2, 3, 4, 5, 6, ...) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # Lists give up after 6 as well 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( [ ] ) ,  " [] " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( [ 1 ] ) ,  " [1] " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( [ 1 ,  2 ,  3 ] ) ,  " [1, 2, 3] " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( [ 1 ,  2 ,  3 ,  4 ,  5 ,  6 ] ) ,  " [1, 2, 3, 4, 5, 6] " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( [ 1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ] ) ,  " [1, 2, 3, 4, 5, 6, ...] " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-05-21 10:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # Sets give up after 6 as well 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-09 22:30:36 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( r ( set ( [ ] ) ) ,  " set() " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( set ( [ 1 ] ) ) ,  " {1} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( set ( [ 1 ,  2 ,  3 ] ) ) ,  " { 1, 2, 3} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( set ( [ 1 ,  2 ,  3 ,  4 ,  5 ,  6 ] ) ) ,  " { 1, 2, 3, 4, 5, 6} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( set ( [ 1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ] ) ) ,  " { 1, 2, 3, 4, 5, 6, ...} " ) 
							 
						 
					
						
							
								
									
										
										
										
											2004-05-21 10:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # Frozensets give up after 6 as well 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-09 22:30:36 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( r ( frozenset ( [ ] ) ) ,  " frozenset() " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( frozenset ( [ 1 ] ) ) ,  " frozenset( {1} ) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( frozenset ( [ 1 ,  2 ,  3 ] ) ) ,  " frozenset( { 1, 2, 3}) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( frozenset ( [ 1 ,  2 ,  3 ,  4 ,  5 ,  6 ] ) ) ,  " frozenset( { 1, 2, 3, 4, 5, 6}) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( frozenset ( [ 1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ] ) ) ,  " frozenset( { 1, 2, 3, 4, 5, 6, ...}) " ) 
							 
						 
					
						
							
								
									
										
										
										
											2004-05-21 10:00:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-05-21 23:01:18 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # collections.deque after 6 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( deque ( [ 1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ] ) ) ,  " deque([1, 2, 3, 4, 5, 6, ...]) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        # Dictionaries give up after 4. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( { } ) ,  " {} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        d  =  { ' alice ' :  1 ,  ' bob ' :  2 ,  ' charles ' :  3 ,  ' dave ' :  4 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( d ) ,  " { ' alice ' : 1,  ' bob ' : 2,  ' charles ' : 3,  ' dave ' : 4} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        d [ ' arthur ' ]  =  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( d ) ,  " { ' alice ' : 1,  ' arthur ' : 1,  ' bob ' : 2,  ' charles ' : 3, ...} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2003-02-05 18:29:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # array.array after 5. 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-15 10:58:58 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( r ( array ( ' i ' ) ) ,  " array( ' i ' ) " ) 
							 
						 
					
						
							
								
									
										
										
										
											2003-02-05 18:29:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( r ( array ( ' i ' ,  [ 1 ] ) ) ,  " array( ' i ' , [1]) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( array ( ' i ' ,  [ 1 ,  2 ] ) ) ,  " array( ' i ' , [1, 2]) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( array ( ' i ' ,  [ 1 ,  2 ,  3 ] ) ) ,  " array( ' i ' , [1, 2, 3]) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( array ( ' i ' ,  [ 1 ,  2 ,  3 ,  4 ] ) ) ,  " array( ' i ' , [1, 2, 3, 4]) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( array ( ' i ' ,  [ 1 ,  2 ,  3 ,  4 ,  5 ] ) ) ,  " array( ' i ' , [1, 2, 3, 4, 5]) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( array ( ' i ' ,  [ 1 ,  2 ,  3 ,  4 ,  5 ,  6 ] ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   " array( ' i ' , [1, 2, 3, 4, 5, ...]) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-09 22:30:36 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_set_literal ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( { 1 } ) ,  " {1} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( { 1 ,  2 ,  3 } ) ,  " { 1, 2, 3} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( { 1 ,  2 ,  3 ,  4 ,  5 ,  6 } ) ,  " { 1, 2, 3, 4, 5, 6} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( { 1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 } ) ,  " { 1, 2, 3, 4, 5, 6, ...} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_frozenset ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( frozenset ( { 1 } ) ) ,  " frozenset( {1} ) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( frozenset ( { 1 ,  2 ,  3 } ) ) ,  " frozenset( { 1, 2, 3}) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( frozenset ( { 1 ,  2 ,  3 ,  4 ,  5 ,  6 } ) ) ,  " frozenset( { 1, 2, 3, 4, 5, 6}) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( frozenset ( { 1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 } ) ) ,  " frozenset( { 1, 2, 3, 4, 5, 6, ...}) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    def  test_numbers ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        eq ( r ( 123 ) ,  repr ( 123 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-01-15 16:59:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( r ( 123 ) ,  repr ( 123 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        eq ( r ( 1.0 / 3 ) ,  repr ( 1.0 / 3 ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-01-15 16:59:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        n  =  10 * * 100 
							 
						 
					
						
							
								
									
										
										
										
											2004-02-12 17:35:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        expected  =  repr ( n ) [ : 18 ]  +  " ... "  +  repr ( n ) [ - 19 : ] 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        eq ( r ( n ) ,  expected ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_instance ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        i1  =  ClassWithRepr ( " a " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( i1 ) ,  repr ( i1 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-09 21:40:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        i2  =  ClassWithRepr ( " x " * 1000 ) 
							 
						 
					
						
							
								
									
										
										
										
											2004-02-12 17:35:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        expected  =  repr ( i2 ) [ : 13 ]  +  " ... "  +  repr ( i2 ) [ - 14 : ] 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        eq ( r ( i2 ) ,  expected ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        i3  =  ClassWithFailingRepr ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-22 12:14:52 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( r ( i3 ) ,  ( " <ClassWithFailingRepr instance at  %#x > " % id ( i3 ) ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-09-05 02:26:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        s  =  r ( ClassWithFailingRepr ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 23:06:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . assertTrue ( s . startswith ( " <class  " ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertTrue ( s . endswith ( " > " ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-19 00:09:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . assertIn ( s . find ( " ... " ) ,  [ 12 ,  13 ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-09-05 02:26:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_lambda ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-25 18:56:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        r  =  repr ( lambda  x :  x ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertTrue ( r . startswith ( " <function ReprTests.test_lambda.<locals>.<lambda " ) ,  r ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # XXX anonymous functions?  see func_repr 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_builtin_function ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # Functions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( repr ( hash ) ,  ' <built-in function hash> ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # Methods 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 23:06:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . assertTrue ( repr ( ' ' . split ) . startswith ( 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' <built-in method split of str object at 0x ' ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-05-07 22:24:25 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_range ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-21 18:14:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( repr ( range ( 1 ) ) ,  ' range(0, 1) ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-07 22:24:25 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( repr ( range ( 1 ,  2 ) ) ,  ' range(1, 2) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( repr ( range ( 1 ,  4 ,  3 ) ) ,  ' range(1, 4, 3) ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    def  test_nesting ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        # everything is meant to give up after 6 levels. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( [ [ [ [ [ [ [ ] ] ] ] ] ] ] ) ,  " [[[[[[[]]]]]]] " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( [ [ [ [ [ [ [ [ ] ] ] ] ] ] ] ] ) ,  " [[[[[[[...]]]]]]] " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( nestedTuple ( 6 ) ) ,  " (((((((),),),),),),) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( nestedTuple ( 7 ) ) ,  " (((((((...),),),),),),) " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( {  nestedTuple ( 5 )  :  nestedTuple ( 5 )  } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           " { ((((((),),),),),): ((((((),),),),),)} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( {  nestedTuple ( 6 )  :  nestedTuple ( 6 )  } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           " { ((((((...),),),),),): ((((((...),),),),),)} " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( [ [ [ [ [ [ { } ] ] ] ] ] ] ) ,  " [[[[[[ {} ]]]]]] " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        eq ( r ( [ [ [ [ [ [ [ { } ] ] ] ] ] ] ] ) ,  " [[[[[[[...]]]]]]] " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_cell ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-10 10:20:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        def  get_cell ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            x  =  42 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            def  inner ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  x 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  inner 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        x  =  get_cell ( ) . __closure__ [ 0 ] 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-10 14:17:22 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . assertRegex ( repr ( x ) ,  r ' <cell at 0x[0-9A-Fa-f]+:  ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  r ' int object at 0x[0-9A-Fa-f]+> ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-10 10:20:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . assertRegex ( r ( x ) ,  r ' <cell at 0x.* \ . \ . \ ..*> ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_descriptors ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # method descriptors 
							 
						 
					
						
							
								
									
										
										
										
											2001-10-29 22:25:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( repr ( dict . items ) ,  " <method  ' items '  of  ' dict '  objects> " ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # XXX member descriptors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # XXX attribute descriptors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # XXX slot descriptors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # static and class methods 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class  C : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            def  foo ( cls ) :  pass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        x  =  staticmethod ( C . foo ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 17:51:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . assertEqual ( repr ( x ) ,  f ' <staticmethod( { C . foo !r} )> ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        x  =  classmethod ( C . foo ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-09 17:51:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . assertEqual ( repr ( x ) ,  f ' <classmethod( { C . foo !r} )> ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												Merged revisions 58095-58132,58136-58148,58151-58197 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r58096 | brett.cannon | 2007-09-10 23:38:27 +0200 (Mon, 10 Sep 2007) | 4 lines
  Fix a possible segfault from recursing too deep to get the repr of a list.
  Closes issue #1096.
........
  r58097 | bill.janssen | 2007-09-10 23:51:02 +0200 (Mon, 10 Sep 2007) | 33 lines
  More work on SSL support.
  * Much expanded test suite:
    All protocols tested against all other protocols.
    All protocols tested with all certificate options.
    Tests for bad key and bad cert.
    Test of STARTTLS functionality.
    Test of RAND_* functions.
  * Fixes for threading/malloc bug.
  * Issue 1065 fixed:
    sslsocket class renamed to SSLSocket.
    sslerror class renamed to SSLError.
    Function "wrap_socket" now used to wrap an existing socket.
  * Issue 1583946 finally fixed:
    Support for subjectAltName added.
    Subject name now returned as proper DN list of RDNs.
  * SSLError exported from socket as "sslerror".
  * RAND_* functions properly exported from ssl.py.
  * Documentation improved:
    Example of how to create a self-signed certificate.
    Better indexing.
........
  r58098 | guido.van.rossum | 2007-09-11 00:02:25 +0200 (Tue, 11 Sep 2007) | 9 lines
  Patch # 1140 (my code, approved by Effbot).
  Make sure the type of the return value of re.sub(x, y, z) is the type
  of y+x (i.e. unicode if either is unicode, str if they are both str)
  even if there are no substitutions or if x==z (which triggered various
  special cases in join_list()).
  Could be backported to 2.5; no need to port to 3.0.
........
  r58099 | guido.van.rossum | 2007-09-11 00:36:02 +0200 (Tue, 11 Sep 2007) | 8 lines
  Patch # 1026 by Benjamin Aranguren (with Alex Martelli):
  Backport abc.py and isinstance/issubclass overloading to 2.6.
  I had to backport test_typechecks.py myself, and make one small change
  to abc.py to avoid duplicate work when x.__class__ and type(x) are the
  same.
........
  r58100 | bill.janssen | 2007-09-11 01:41:24 +0200 (Tue, 11 Sep 2007) | 3 lines
  A better way of finding an open port to test with.
........
  r58101 | bill.janssen | 2007-09-11 03:09:19 +0200 (Tue, 11 Sep 2007) | 4 lines
  Make sure test_ssl doesn't reference the ssl module in a
  context where it can't be imported.
........
  r58102 | bill.janssen | 2007-09-11 04:42:07 +0200 (Tue, 11 Sep 2007) | 3 lines
  Fix some documentation bugs.
........
  r58103 | nick.coghlan | 2007-09-11 16:01:18 +0200 (Tue, 11 Sep 2007) | 1 line
  Always use the -E flag when spawning subprocesses in test_cmd_line (Issue 1056)
........
  r58106 | thomas.heller | 2007-09-11 21:17:48 +0200 (Tue, 11 Sep 2007) | 3 lines
  Disable some tests that fail on the 'ppc Debian unstable' buildbot to
  find out if they cause the segfault on the 'alpha Debian' machine.
........
  r58108 | brett.cannon | 2007-09-11 23:02:28 +0200 (Tue, 11 Sep 2007) | 6 lines
  Generators had their throw() method allowing string exceptions.  That's a
  no-no.
  Fixes issue #1147.  Need to fix 2.5 to raise a proper warning if a string
  exception is passed in.
........
  r58112 | georg.brandl | 2007-09-12 20:03:51 +0200 (Wed, 12 Sep 2007) | 3 lines
  New documentation page for the bdb module.
  (This doesn't need to be merged to Py3k.)
........
  r58114 | georg.brandl | 2007-09-12 20:05:57 +0200 (Wed, 12 Sep 2007) | 2 lines
  Bug #1152: use non-deprecated name in example.
........
  r58115 | georg.brandl | 2007-09-12 20:08:33 +0200 (Wed, 12 Sep 2007) | 2 lines
  Fix #1122: wrong return type documented for various _Size() functions.
........
  r58117 | georg.brandl | 2007-09-12 20:10:56 +0200 (Wed, 12 Sep 2007) | 2 lines
  Fix #1139: PyFile_Encoding really is PyFile_SetEncoding.
........
  r58119 | georg.brandl | 2007-09-12 20:29:18 +0200 (Wed, 12 Sep 2007) | 2 lines
  bug #1154: release memory allocated by "es" PyArg_ParseTuple format specifier.
........
  r58121 | bill.janssen | 2007-09-12 20:52:05 +0200 (Wed, 12 Sep 2007) | 1 line
  root certificate for https://svn.python.org/, used in test_ssl
........
  r58122 | georg.brandl | 2007-09-12 21:00:07 +0200 (Wed, 12 Sep 2007) | 3 lines
  Bug #1153: repr.repr() now doesn't require set and dictionary items
  to be orderable to properly represent them.
........
  r58125 | georg.brandl | 2007-09-12 21:29:28 +0200 (Wed, 12 Sep 2007) | 4 lines
  #1120: put explicit version in the shebang lines of pydoc, idle
  and smtpd.py scripts that are installed by setup.py. That way, they
  work when only "make altinstall" is used.
........
  r58139 | mark.summerfield | 2007-09-13 16:54:30 +0200 (Thu, 13 Sep 2007) | 9 lines
  Replaced variable o with obj in operator.rst because o is easy to
  confuse.
  Added a note about Python 3's collections.Mapping etc., above section
  that describes isMappingType() etc.
  Added xrefs between os, os.path, fileinput, and open().
........
  r58143 | facundo.batista | 2007-09-13 20:13:15 +0200 (Thu, 13 Sep 2007) | 7 lines
  Merged the decimal-branch (revisions 54886 to 58140). Decimal is now
  fully updated to the latests Decimal Specification (v1.66) and the
  latests test cases (v2.56).
  Thanks to Mark Dickinson for all his help during this process.
........
  r58145 | facundo.batista | 2007-09-13 20:42:09 +0200 (Thu, 13 Sep 2007) | 7 lines
  Put the parameter watchexp back in (changed watchexp from an int
  to a bool).  Also second argument to watchexp is now converted
  to Decimal, just as with all the other two-argument operations.
  Thanks Mark Dickinson.
........
  r58147 | andrew.kuchling | 2007-09-14 00:49:34 +0200 (Fri, 14 Sep 2007) | 1 line
  Add various items
........
  r58148 | andrew.kuchling | 2007-09-14 00:50:10 +0200 (Fri, 14 Sep 2007) | 1 line
  Make target unique
........
  r58154 | facundo.batista | 2007-09-14 20:58:34 +0200 (Fri, 14 Sep 2007) | 3 lines
  Included the new functions, and new descriptions.
........
  r58155 | thomas.heller | 2007-09-14 21:40:35 +0200 (Fri, 14 Sep 2007) | 2 lines
  ctypes.util.find_library uses dump(1) instead of objdump(1) on Solaris.
  Fixes issue #1777530; will backport to release25-maint.
........
  r58159 | facundo.batista | 2007-09-14 23:29:52 +0200 (Fri, 14 Sep 2007) | 3 lines
  Some additions (examples and a bit on the tutorial).
........
  r58160 | georg.brandl | 2007-09-15 18:53:36 +0200 (Sat, 15 Sep 2007) | 2 lines
  Remove bdb from the "undocumented modules" list.
........
  r58164 | bill.janssen | 2007-09-17 00:06:00 +0200 (Mon, 17 Sep 2007) | 15 lines
  Add support for asyncore server-side SSL support.  This requires
  adding the 'makefile' method to ssl.SSLSocket, and importing the
  requisite fakefile class from socket.py, and making the appropriate
  changes to it to make it use the SSL connection.
  Added sample HTTPS server to test_ssl.py, and test that uses it.
  Change SSL tests to use https://svn.python.org/, instead of
  www.sf.net and pop.gmail.com.
  Added utility function to ssl module, get_server_certificate,
  to wrap up the several things to be done to pull a certificate
  from a remote server.
........
  r58173 | bill.janssen | 2007-09-17 01:16:46 +0200 (Mon, 17 Sep 2007) | 1 line
  use binary mode when reading files for testAsyncore to make Windows happy
........
  r58175 | raymond.hettinger | 2007-09-17 02:55:00 +0200 (Mon, 17 Sep 2007) | 7 lines
  Sync-up named tuples with the latest version of the ASPN recipe.
  Allows optional commas in the field-name spec (help when named tuples are used in conjuction with sql queries).
  Adds the __fields__ attribute for introspection and to support conversion to dictionary form.
  Adds a  __replace__() method similar to str.replace() but using a named field as a target.
  Clean-up spelling and presentation in doc-strings.
........
  r58176 | brett.cannon | 2007-09-17 05:28:34 +0200 (Mon, 17 Sep 2007) | 5 lines
  Add a bunch of GIL release/acquire points in tp_print implementations and for
  PyObject_Print().
  Closes issue #1164.
........
  r58177 | sean.reifschneider | 2007-09-17 07:45:04 +0200 (Mon, 17 Sep 2007) | 2 lines
  issue1597011: Fix for bz2 module corner-case error due to error checking bug.
........
  r58180 | facundo.batista | 2007-09-17 18:26:50 +0200 (Mon, 17 Sep 2007) | 3 lines
  Decimal is updated, :)
........
  r58181 | facundo.batista | 2007-09-17 19:30:13 +0200 (Mon, 17 Sep 2007) | 5 lines
  The methods always return Decimal classes, even if they're
  executed through a subclass (thanks Mark Dickinson).
  Added a bit of testing for this.
........
  r58183 | sean.reifschneider | 2007-09-17 22:53:21 +0200 (Mon, 17 Sep 2007) | 2 lines
  issue1082: Fixing platform and system for Vista.
........
  r58185 | andrew.kuchling | 2007-09-18 03:36:16 +0200 (Tue, 18 Sep 2007) | 1 line
  Add item; sort properly
........
  r58186 | raymond.hettinger | 2007-09-18 05:33:19 +0200 (Tue, 18 Sep 2007) | 1 line
  Handle corner cased on 0-tuples and 1-tuples.  Add verbose option so people can see how it works.
........
  r58192 | georg.brandl | 2007-09-18 09:24:40 +0200 (Tue, 18 Sep 2007) | 2 lines
  A bit of reordering, also show more subheadings in the lang ref index.
........
  r58193 | facundo.batista | 2007-09-18 18:53:18 +0200 (Tue, 18 Sep 2007) | 4 lines
  Speed up of the various division operations (remainder, divide,
  divideint and divmod). Thanks Mark Dickinson.
........
  r58197 | raymond.hettinger | 2007-09-19 00:18:02 +0200 (Wed, 19 Sep 2007) | 1 line
  Cleanup docs for NamedTuple.
........
											 
										 
										
											2007-09-19 03:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_unsortable ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # Repr.repr() used to call sorted() on sets, frozensets and dicts 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # without taking into account that not all objects are comparable 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        x  =  set ( [ 1 j ,  2 j ,  3 j ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        y  =  frozenset ( x ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        z  =  { 1 j :  1 ,  2 j :  2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        r ( x ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        r ( y ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        r ( z ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-08 20:51:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_valid_indent ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        test_cases  =  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' object ' :  ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' tests ' :  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = None ) ,  ' () ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = False ) ,  ' () ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = True ) ,  ' () ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 0 ) ,  ' () ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 1 ) ,  ' () ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 4 ) ,  ' () ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 4 ,  maxlevel = 2 ) ,  ' () ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' ' ) ,  ' () ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' --> ' ) ,  ' () ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' .... ' ) ,  ' () ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' object ' :  ' ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' tests ' :  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = None ) ,  " ' ' " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = False ) ,  " ' ' " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = True ) ,  " ' ' " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 0 ) ,  " ' ' " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 1 ) ,  " ' ' " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 4 ) ,  " ' ' " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 4 ,  maxlevel = 2 ) ,  " ' ' " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' ' ) ,  " ' ' " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' --> ' ) ,  " ' ' " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' .... ' ) ,  " ' ' " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' object ' :  [ 1 ,  ' spam ' ,  { ' eggs ' :  True ,  ' ham ' :  [ ] } ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' tests ' :  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = None ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 1 ,  ' spam ' ,  { ' eggs ' :  True ,  ' ham ' :  [ ] } ] ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = False ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ' spam ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ' eggs ' :  True , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ' ham ' :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = True ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         ' spam ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ' eggs ' :  True , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ' ham ' :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 0 ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ' spam ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ' eggs ' :  True , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ' ham ' :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 1 ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         ' spam ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ' eggs ' :  True , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ' ham ' :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 4 ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ' spam ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ' eggs ' :  True , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ' ham ' :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 4 ,  maxlevel = 2 ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ' spam ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ' eggs ' :  True , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ' ham ' :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' ' ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ' spam ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ' eggs ' :  True , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ' ham ' :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' --> ' ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > ' spam ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > ' eggs ' :  True , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > ' ham ' :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' .... ' ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . .1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . ' spam ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . ' eggs ' :  True , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . ' ham ' :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' object ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    1 :  ' two ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    b ' three ' :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ( 4.5 ,  6.7 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ set ( ( 8 ,  9 ) ) ,  frozenset ( ( 10 ,  11 ) ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' tests ' :  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = None ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 1 :  ' two ' ,  b ' three ' :  [ ( 4.5 ,  6.7 ) ,  [ { 8 ,  9 } ,  frozenset ( { 10 ,  11 } ) ] ] } ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = False ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        1 :  ' two ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        b ' three ' :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        4.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        6.7 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        9 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        frozenset ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        10 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        11 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = True ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         1 :  ' two ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         b ' three ' :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           4.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           6.7 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            9 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           frozenset ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            10 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            11 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 0 ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        1 :  ' two ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        b ' three ' :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        4.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        6.7 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        9 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        frozenset ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        10 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        11 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 1 ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         1 :  ' two ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         b ' three ' :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           4.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           6.7 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            9 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           frozenset ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            10 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            11 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 4 ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            1 :  ' two ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            b ' three ' :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    4.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    6.7 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        9 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    frozenset ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        10 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        11 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = 4 ,  maxlevel = 2 ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            1 :  ' two ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            b ' three ' :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ( . . . ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                [ . . . ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' ' ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        1 :  ' two ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        b ' three ' :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        4.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        6.7 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        9 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        frozenset ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        10 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        11 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' --> ' ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > 1 :  ' two ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > b ' three ' :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > - - > 4.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > - - > 6.7 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > - - > { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > - - > - - > 8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > - - > - - > 9 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > - - > } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > - - > frozenset ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > - - > - - > 10 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > - - > - - > 11 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > - - > } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > - - > ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        - - > ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ( dict ( indent = ' .... ' ) ,  ''' \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . .1 :  ' two ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . b ' three ' :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . . . . .4 .5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . . . . .6 .7 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . . . . . { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . . . . . . . . .8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . . . . . . . . .9 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . . . . . } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . . . . . frozenset ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . . . . . . . . .10 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . . . . . . . . .11 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . . . . . } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . . . . . ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . . . . ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } ''' ), 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  test_case  in  test_cases : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            with  self . subTest ( test_object = test_case [ ' object ' ] ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                for  repr_settings ,  expected_repr  in  test_case [ ' tests ' ] : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    with  self . subTest ( repr_settings = repr_settings ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        r  =  Repr ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        for  attribute ,  value  in  repr_settings . items ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            setattr ( r ,  attribute ,  value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        resulting_repr  =  r . repr ( test_case [ ' object ' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        expected_repr  =  textwrap . dedent ( expected_repr ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        self . assertEqual ( resulting_repr ,  expected_repr ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_invalid_indent ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        test_object  =  [ 1 ,  ' spam ' ,  { ' eggs ' :  True ,  ' ham ' :  [ ] } ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        test_cases  =  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( - 1 ,  ( ValueError ,  ' [Nn]egative|[Pp]ositive ' ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( - 4 ,  ( ValueError ,  ' [Nn]egative|[Pp]ositive ' ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( ( ) ,  ( TypeError ,  None ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( [ ] ,  ( TypeError ,  None ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( ( 4 , ) ,  ( TypeError ,  None ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( [ 4 , ] ,  ( TypeError ,  None ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( object ( ) ,  ( TypeError ,  None ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  indent ,  ( expected_error ,  expected_msg )  in  test_cases : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            with  self . subTest ( indent = indent ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                r  =  Repr ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                r . indent  =  indent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                expected_msg  =  expected_msg  or  f ' { type ( indent ) } ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                with  self . assertRaisesRegex ( expected_error ,  expected_msg ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    r . repr ( test_object ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-10-17 17:34:37 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_shadowed_stdlib_array ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # Issue #113570: repr() should not be fooled by an array 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class  array : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            def  __repr__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  " not array.array " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( r ( array ( ) ) ,  " not array.array " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_shadowed_builtin ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # Issue #113570: repr() should not be fooled 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # by a shadowed builtin function 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class  list : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            def  __repr__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  " not builtins.list " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( r ( list ( ) ) ,  " not builtins.list " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_custom_repr ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class  MyRepr ( Repr ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            def  repr_TextIOWrapper ( self ,  obj ,  level ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  obj . name  in  { ' <stdin> ' ,  ' <stdout> ' ,  ' <stderr> ' } : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    return  obj . name 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  repr ( obj ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aRepr  =  MyRepr ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( aRepr . repr ( sys . stdin ) ,  " <stdin> " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_custom_repr_class_with_spaces ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class  TypeWithSpaces : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            pass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        t  =  TypeWithSpaces ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        type ( t ) . __name__  =  " type with spaces " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( type ( t ) . __name__ ,  " type with spaces " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class  MyRepr ( Repr ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            def  repr_type_with_spaces ( self ,  obj ,  level ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  " Type With Spaces " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        aRepr  =  MyRepr ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( aRepr . repr ( t ) ,  " Type With Spaces " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-06-30 23:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								def  write_file ( path ,  text ) :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    with  open ( path ,  ' w ' ,  encoding = ' ASCII ' )  as  fp : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        fp . write ( text ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  LongReprTest ( unittest . TestCase ) :  
						 
					
						
							
								
									
										
										
										
											2012-04-24 13:55:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    longname  =  ' areallylongpackageandmodulenametotestreprtruncation ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  setUp ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-24 13:55:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . pkgname  =  os . path . join ( self . longname ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . subpkgname  =  os . path . join ( self . longname ,  self . longname ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # Make the package and subpackage 
							 
						 
					
						
							
								
									
										
											 
										
											
												Partially merge trunk into p3yk. The removal of Mac/Tools is confusing svn
merge in bad ways, so I'll have to merge that extra-carefully (probably manually.)
Merged revisions 46495-46605 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r46495 | tim.peters | 2006-05-28 03:52:38 +0200 (Sun, 28 May 2006) | 2 lines
  Added missing svn:eol-style property to text files.
........
  r46497 | tim.peters | 2006-05-28 12:41:29 +0200 (Sun, 28 May 2006) | 3 lines
  PyErr_Display(), PyErr_WriteUnraisable():  Coverity found a cut-and-paste
  bug in both:  `className` was referenced before being checked for NULL.
........
  r46499 | fredrik.lundh | 2006-05-28 14:06:46 +0200 (Sun, 28 May 2006) | 5 lines
  needforspeed: added Py_MEMCPY macro (currently tuned for Visual C only),
  and use it for string copy operations.  this gives a 20% speedup on some
  string benchmarks.
........
  r46501 | michael.hudson | 2006-05-28 17:51:40 +0200 (Sun, 28 May 2006) | 26 lines
  Quality control, meet exceptions.c.
  Fix a number of problems with the need for speed code:
  One is doing this sort of thing:
      Py_DECREF(self->field);
      self->field = newval;
      Py_INCREF(self->field);
  without being very sure that self->field doesn't start with a
  value that has a __del__, because that almost certainly can lead
  to segfaults.
  As self->args is constrained to be an exact tuple we may as well
  exploit this fact consistently.  This leads to quite a lot of
  simplification (and, hey, probably better performance).
  Add some error checking in places lacking it.
  Fix some rather strange indentation in the Unicode code.
  Delete some trailing whitespace.
  More to come, I haven't fixed all the reference leaks yet...
........
  r46502 | george.yoshida | 2006-05-28 18:39:09 +0200 (Sun, 28 May 2006) | 3 lines
  Patch #1080727: add "encoding" parameter to doctest.DocFileSuite
  Contributed by Bjorn Tillenius.
........
  r46503 | martin.v.loewis | 2006-05-28 18:57:38 +0200 (Sun, 28 May 2006) | 4 lines
  Rest of patch #1490384: Commit icon source, remove
  claim that Erik von Blokland is the author of the
  installer picture.
........
  r46504 | michael.hudson | 2006-05-28 19:40:29 +0200 (Sun, 28 May 2006) | 16 lines
  Quality control, meet exceptions.c, round two.
  Make some functions that should have been static static.
  Fix a bunch of refleaks by fixing the definition of
  MiddlingExtendsException.
  Remove all the __new__ implementations apart from
  BaseException_new.  Rewrite most code that needs it to cope with
  NULL fields (such code could get excercised anyway, the
  __new__-removal just makes it more likely).  This involved
  editing the code for WindowsError, which I can't test.
  This fixes all the refleaks in at least the start of a regrtest
  -R :: run.
........
  r46505 | marc-andre.lemburg | 2006-05-28 19:46:58 +0200 (Sun, 28 May 2006) | 10 lines
  Initial version of systimes - a module to provide platform dependent
  performance measurements.
  The module is currently just a proof-of-concept implementation, but
  will integrated into pybench once it is stable enough.
  License: pybench license.
  Author: Marc-Andre Lemburg.
........
  r46507 | armin.rigo | 2006-05-28 21:13:17 +0200 (Sun, 28 May 2006) | 15 lines
  ("Forward-port" of r46506)
  Remove various dependencies on dictionary order in the standard library
  tests, and one (clearly an oversight, potentially critical) in the
  standard library itself - base64.py.
  Remaining open issues:
   * test_extcall is an output test, messy to make robust
   * tarfile.py has a potential bug here, but I'm not familiar
     enough with this code.  Filed in as SF bug #1496501.
   * urllib2.HTTPPasswordMgr() returns a random result if there is more
     than one matching root path.  I'm asking python-dev for
     clarification...
........
  r46508 | georg.brandl | 2006-05-28 22:11:45 +0200 (Sun, 28 May 2006) | 4 lines
  The empty string is a valid import path.
   (fixes #1496539)
........
  r46509 | georg.brandl | 2006-05-28 22:23:12 +0200 (Sun, 28 May 2006) | 3 lines
  Patch #1496206: urllib2 PasswordMgr ./. default ports
........
  r46510 | georg.brandl | 2006-05-28 22:57:09 +0200 (Sun, 28 May 2006) | 3 lines
  Fix refleaks in UnicodeError get and set methods.
........
  r46511 | michael.hudson | 2006-05-28 23:19:03 +0200 (Sun, 28 May 2006) | 3 lines
  use the UnicodeError traversal and clearing functions in UnicodeError
  subclasses.
........
  r46512 | thomas.wouters | 2006-05-28 23:32:12 +0200 (Sun, 28 May 2006) | 4 lines
  Make last patch valid C89 so Windows compilers can deal with it.
........
  r46513 | georg.brandl | 2006-05-28 23:42:54 +0200 (Sun, 28 May 2006) | 3 lines
  Fix ref-antileak in _struct.c which eventually lead to deallocating None.
........
  r46514 | georg.brandl | 2006-05-28 23:57:35 +0200 (Sun, 28 May 2006) | 4 lines
  Correct None refcount issue in Mac modules. (Are they
  still used?)
........
  r46515 | armin.rigo | 2006-05-29 00:07:08 +0200 (Mon, 29 May 2006) | 3 lines
  A clearer error message when passing -R to regrtest.py with
  release builds of Python.
........
  r46516 | georg.brandl | 2006-05-29 00:14:04 +0200 (Mon, 29 May 2006) | 3 lines
  Fix C function calling conventions in _sre module.
........
  r46517 | georg.brandl | 2006-05-29 00:34:51 +0200 (Mon, 29 May 2006) | 3 lines
  Convert audioop over to METH_VARARGS.
........
  r46518 | georg.brandl | 2006-05-29 00:38:57 +0200 (Mon, 29 May 2006) | 3 lines
  METH_NOARGS functions do get called with two args.
........
  r46519 | georg.brandl | 2006-05-29 11:46:51 +0200 (Mon, 29 May 2006) | 4 lines
  Fix refleak in socketmodule. Replace bogus Py_BuildValue calls.
  Fix refleak in exceptions.
........
  r46520 | nick.coghlan | 2006-05-29 14:43:05 +0200 (Mon, 29 May 2006) | 7 lines
  Apply modified version of Collin Winter's patch #1478788
  Renames functional extension module to _functools and adds a Python
  functools module so that utility functions like update_wrapper can be
  added easily.
........
  r46522 | georg.brandl | 2006-05-29 15:53:16 +0200 (Mon, 29 May 2006) | 3 lines
  Convert fmmodule to METH_VARARGS.
........
  r46523 | georg.brandl | 2006-05-29 16:13:21 +0200 (Mon, 29 May 2006) | 3 lines
  Fix #1494605.
........
  r46524 | georg.brandl | 2006-05-29 16:28:05 +0200 (Mon, 29 May 2006) | 3 lines
  Handle PyMem_Malloc failure in pystrtod.c. Closes #1494671.
........
  r46525 | georg.brandl | 2006-05-29 16:33:55 +0200 (Mon, 29 May 2006) | 3 lines
  Fix compiler warning.
........
  r46526 | georg.brandl | 2006-05-29 16:39:00 +0200 (Mon, 29 May 2006) | 3 lines
  Fix #1494787 (pyclbr counts whitespace as superclass name)
........
  r46527 | bob.ippolito | 2006-05-29 17:47:29 +0200 (Mon, 29 May 2006) | 1 line
  simplify the struct code a bit (no functional changes)
........
  r46528 | armin.rigo | 2006-05-29 19:59:47 +0200 (Mon, 29 May 2006) | 2 lines
  Silence a warning.
........
  r46529 | georg.brandl | 2006-05-29 21:39:45 +0200 (Mon, 29 May 2006) | 3 lines
  Correct some value converting strangenesses.
........
  r46530 | nick.coghlan | 2006-05-29 22:27:44 +0200 (Mon, 29 May 2006) | 1 line
  When adding a module like functools, it helps to let SVN know about the file.
........
  r46531 | georg.brandl | 2006-05-29 22:52:54 +0200 (Mon, 29 May 2006) | 4 lines
  Patches #1497027 and #972322: try HTTP digest auth first,
  and watch out for handler name collisions.
........
  r46532 | georg.brandl | 2006-05-29 22:57:01 +0200 (Mon, 29 May 2006) | 3 lines
  Add News entry for last commit.
........
  r46533 | georg.brandl | 2006-05-29 23:04:52 +0200 (Mon, 29 May 2006) | 4 lines
  Make use of METH_O and METH_NOARGS where possible.
  Use Py_UnpackTuple instead of PyArg_ParseTuple where possible.
........
  r46534 | georg.brandl | 2006-05-29 23:58:42 +0200 (Mon, 29 May 2006) | 3 lines
  Convert more modules to METH_VARARGS.
........
  r46535 | georg.brandl | 2006-05-30 00:00:30 +0200 (Tue, 30 May 2006) | 3 lines
  Whoops.
........
  r46536 | fredrik.lundh | 2006-05-30 00:42:07 +0200 (Tue, 30 May 2006) | 4 lines
  fixed "abc".count("", 100) == -96 error (hopefully, nobody's relying on
  the current behaviour ;-)
........
  r46537 | bob.ippolito | 2006-05-30 00:55:48 +0200 (Tue, 30 May 2006) | 1 line
  struct: modulo math plus warning on all endian-explicit formats for compatibility with older struct usage (ugly)
........
  r46539 | bob.ippolito | 2006-05-30 02:26:01 +0200 (Tue, 30 May 2006) | 1 line
  Add a length check to aifc to ensure it doesn't write a bogus file
........
  r46540 | tim.peters | 2006-05-30 04:25:25 +0200 (Tue, 30 May 2006) | 10 lines
  deprecated_err():  Stop bizarre warning messages when the tests
  are run in the order:
      test_genexps (or any other doctest-based test)
      test_struct
      test_doctest
  The `warnings` module needs an advertised way to save/restore
  its internal filter list.
........
  r46541 | tim.peters | 2006-05-30 04:26:46 +0200 (Tue, 30 May 2006) | 2 lines
  Whitespace normalization.
........
  r46542 | tim.peters | 2006-05-30 04:30:30 +0200 (Tue, 30 May 2006) | 2 lines
  Set a binary svn:mime-type property on this UTF-8 encoded file.
........
  r46543 | neal.norwitz | 2006-05-30 05:18:50 +0200 (Tue, 30 May 2006) | 1 line
  Simplify further by using AddStringConstant
........
  r46544 | tim.peters | 2006-05-30 06:16:25 +0200 (Tue, 30 May 2006) | 6 lines
  Convert relevant dict internals to Py_ssize_t.
  I don't have a box with nearly enough RAM, or an OS,
  that could get close to tickling this, though (requires
  a dict w/ at least 2**31 entries).
........
  r46545 | neal.norwitz | 2006-05-30 06:19:21 +0200 (Tue, 30 May 2006) | 1 line
  Remove stray | in comment
........
  r46546 | neal.norwitz | 2006-05-30 06:25:05 +0200 (Tue, 30 May 2006) | 1 line
  Use Py_SAFE_DOWNCAST for safety.  Fix format strings.  Remove 2 more stray | in comment
........
  r46547 | neal.norwitz | 2006-05-30 06:43:23 +0200 (Tue, 30 May 2006) | 1 line
  No DOWNCAST is required since sizeof(Py_ssize_t) >= sizeof(int) and Py_ReprEntr returns an int
........
  r46548 | tim.peters | 2006-05-30 07:04:59 +0200 (Tue, 30 May 2006) | 3 lines
  dict_print():  Explicitly narrow the return value
  from a (possibly) wider variable.
........
  r46549 | tim.peters | 2006-05-30 07:23:59 +0200 (Tue, 30 May 2006) | 5 lines
  dict_print():  So that Neal & I don't spend the rest of
  our lives taking turns rewriting code that works ;-),
  get rid of casting illusions by declaring a new variable
  with the obvious type.
........
  r46550 | georg.brandl | 2006-05-30 09:04:55 +0200 (Tue, 30 May 2006) | 3 lines
  Restore exception pickle support. #1497319.
........
  r46551 | georg.brandl | 2006-05-30 09:13:29 +0200 (Tue, 30 May 2006) | 3 lines
  Add a test case for exception pickling. args is never NULL.
........
  r46552 | neal.norwitz | 2006-05-30 09:21:10 +0200 (Tue, 30 May 2006) | 1 line
  Don't fail if the (sub)pkgname already exist.
........
  r46553 | georg.brandl | 2006-05-30 09:34:45 +0200 (Tue, 30 May 2006) | 3 lines
  Disallow keyword args for exceptions.
........
  r46554 | neal.norwitz | 2006-05-30 09:36:54 +0200 (Tue, 30 May 2006) | 5 lines
  I'm impatient.  I think this will fix a few more problems with the buildbots.
  I'm not sure this is the best approach, but I can't think of anything better.
  If this creates problems, feel free to revert, but I think it's safe and
  should make things a little better.
........
  r46555 | georg.brandl | 2006-05-30 10:17:00 +0200 (Tue, 30 May 2006) | 4 lines
  Do the check for no keyword arguments in __init__ so that
  subclasses of Exception can be supplied keyword args
........
  r46556 | georg.brandl | 2006-05-30 10:47:19 +0200 (Tue, 30 May 2006) | 3 lines
  Convert test_exceptions to unittest.
........
  r46557 | andrew.kuchling | 2006-05-30 14:52:01 +0200 (Tue, 30 May 2006) | 1 line
  Add SoC name, and reorganize this section a bit
........
  r46559 | tim.peters | 2006-05-30 17:53:34 +0200 (Tue, 30 May 2006) | 11 lines
  PyLong_FromString():  Continued fraction analysis (explained in
  a new comment) suggests there are almost certainly large input
  integers in all non-binary input bases for which one Python digit
  too few is initally allocated to hold the final result.  Instead
  of assert-failing when that happens, allocate more space.  Alas,
  I estimate it would take a few days to find a specific such case,
  so this isn't backed up by a new test (not to mention that such
  a case may take hours to run, since conversion time is quadratic
  in the number of digits, and preliminary attempts suggested that
  the smallest such inputs contain at least a million digits).
........
  r46560 | fredrik.lundh | 2006-05-30 19:11:48 +0200 (Tue, 30 May 2006) | 3 lines
  changed find/rfind to return -1 for matches outside the source string
........
  r46561 | bob.ippolito | 2006-05-30 19:37:54 +0200 (Tue, 30 May 2006) | 1 line
  Change wrapping terminology to overflow masking
........
  r46562 | fredrik.lundh | 2006-05-30 19:39:58 +0200 (Tue, 30 May 2006) | 3 lines
  changed count to return 0 for slices outside the source string
........
  r46568 | tim.peters | 2006-05-31 01:28:02 +0200 (Wed, 31 May 2006) | 2 lines
  Whitespace normalization.
........
  r46569 | brett.cannon | 2006-05-31 04:19:54 +0200 (Wed, 31 May 2006) | 5 lines
  Clarify wording on default values for strptime(); defaults are used when better
  values cannot be inferred.
  Closes bug #1496315.
........
  r46572 | neal.norwitz | 2006-05-31 09:43:27 +0200 (Wed, 31 May 2006) | 1 line
  Calculate smallest properly (it was off by one) and use proper ssize_t types for Win64
........
  r46573 | neal.norwitz | 2006-05-31 10:01:08 +0200 (Wed, 31 May 2006) | 1 line
  Revert last checkin, it is better to do make distclean
........
  r46574 | neal.norwitz | 2006-05-31 11:02:44 +0200 (Wed, 31 May 2006) | 3 lines
  On 64-bit platforms running test_struct after test_tarfile would fail
  since the deprecation warning wouldn't be raised.
........
  r46575 | thomas.heller | 2006-05-31 13:37:58 +0200 (Wed, 31 May 2006) | 3 lines
  PyTuple_Pack is not available in Python 2.3, but ctypes must stay
  compatible with that.
........
  r46576 | andrew.kuchling | 2006-05-31 15:18:56 +0200 (Wed, 31 May 2006) | 1 line
  'functional' module was renamed to 'functools'
........
  r46577 | kristjan.jonsson | 2006-05-31 15:35:41 +0200 (Wed, 31 May 2006) | 1 line
  Fixup the PCBuild8 project directory.  exceptions.c have moved to Objects, and the functionalmodule.c has been replaced with _functoolsmodule.c.  Other minor changes to .vcproj files and .sln to fix compilation
........
  r46578 | andrew.kuchling | 2006-05-31 16:08:48 +0200 (Wed, 31 May 2006) | 15 lines
  [Bug #1473048]
  SimpleXMLRPCServer and DocXMLRPCServer don't look at
  the path of the HTTP request at all; you can POST or
  GET from / or /RPC2 or /blahblahblah with the same results.
  Security scanners that look for /cgi-bin/phf will therefore report
  lots of vulnerabilities.
  Fix: add a .rpc_paths attribute to the SimpleXMLRPCServer class,
  and report a 404 error if the path isn't on the allowed list.
  Possibly-controversial aspect of this change: the default makes only
  '/' and '/RPC2' legal.  Maybe this will break people's applications
  (though I doubt it).  We could just set the default to an empty tuple,
  which would exactly match the current behaviour.
........
  r46579 | andrew.kuchling | 2006-05-31 16:12:47 +0200 (Wed, 31 May 2006) | 1 line
  Mention SimpleXMLRPCServer change
........
  r46580 | tim.peters | 2006-05-31 16:28:07 +0200 (Wed, 31 May 2006) | 2 lines
  Trimmed trailing whitespace.
........
  r46581 | tim.peters | 2006-05-31 17:33:22 +0200 (Wed, 31 May 2006) | 4 lines
  _range_error():  Speed and simplify (there's no real need for
  loops here).  Assert that size_t is actually big enough, and
  that f->size is at least one.  Wrap a long line.
........
  r46582 | tim.peters | 2006-05-31 17:34:37 +0200 (Wed, 31 May 2006) | 2 lines
  Repaired error in new comment.
........
  r46584 | neal.norwitz | 2006-06-01 07:32:49 +0200 (Thu, 01 Jun 2006) | 4 lines
  Remove ; at end of macro.  There was a compiler recently that warned
  about extra semi-colons.  It may have been the HP C compiler.
  This file will trigger a bunch of those warnings now.
........
  r46585 | georg.brandl | 2006-06-01 08:39:19 +0200 (Thu, 01 Jun 2006) | 3 lines
  Correctly unpickle 2.4 exceptions via __setstate__ (patch #1498571)
........
  r46586 | georg.brandl | 2006-06-01 10:27:32 +0200 (Thu, 01 Jun 2006) | 3 lines
  Correctly allocate complex types with tp_alloc. (bug #1498638)
........
  r46587 | georg.brandl | 2006-06-01 14:30:46 +0200 (Thu, 01 Jun 2006) | 2 lines
  Correctly dispatch Faults in loads (patch #1498627)
........
  r46588 | georg.brandl | 2006-06-01 15:00:49 +0200 (Thu, 01 Jun 2006) | 3 lines
  Some code style tweaks, and remove apply.
........
  r46589 | armin.rigo | 2006-06-01 15:19:12 +0200 (Thu, 01 Jun 2006) | 5 lines
  [ 1497053 ] Let dicts propagate the exceptions in user __eq__().
  [ 1456209 ] dictresize() vulnerability ( <- backport candidate ).
........
  r46590 | tim.peters | 2006-06-01 15:41:46 +0200 (Thu, 01 Jun 2006) | 2 lines
  Whitespace normalization.
........
  r46591 | tim.peters | 2006-06-01 15:49:23 +0200 (Thu, 01 Jun 2006) | 2 lines
  Record bugs 1275608 and 1456209 as being fixed.
........
  r46592 | tim.peters | 2006-06-01 15:56:26 +0200 (Thu, 01 Jun 2006) | 5 lines
  Re-enable a new empty-string test added during the NFS sprint,
  but disabled then because str and unicode strings gave different
  results.  The implementations were repaired later during the
  sprint, but the new test remained disabled.
........
  r46594 | tim.peters | 2006-06-01 17:50:44 +0200 (Thu, 01 Jun 2006) | 7 lines
  Armin committed his patch while I was reviewing it (I'm sure
  he didn't know this), so merged in some changes I made during
  review.  Nothing material apart from changing a new `mask` local
  from int to Py_ssize_t.  Mostly this is repairing comments that
  were made incorrect, and adding new comments.  Also a few
  minor code rewrites for clarity or helpful succinctness.
........
  r46599 | neal.norwitz | 2006-06-02 06:45:53 +0200 (Fri, 02 Jun 2006) | 1 line
  Convert docstrings to comments so regrtest -v prints method names
........
  r46600 | neal.norwitz | 2006-06-02 06:50:49 +0200 (Fri, 02 Jun 2006) | 2 lines
  Fix memory leak found by valgrind.
........
  r46601 | neal.norwitz | 2006-06-02 06:54:52 +0200 (Fri, 02 Jun 2006) | 1 line
  More memory leaks from valgrind
........
  r46602 | neal.norwitz | 2006-06-02 08:23:00 +0200 (Fri, 02 Jun 2006) | 11 lines
  Patch #1357836:
  Prevent an invalid memory read from test_coding in case the done flag is set.
  In that case, the loop isn't entered.  I wonder if rather than setting
  the done flag in the cases before the loop, if they should just exit early.
  This code looks like it should be refactored.
  Backport candidate (also the early break above if decoding_fgets fails)
........
  r46603 | martin.blais | 2006-06-02 15:03:43 +0200 (Fri, 02 Jun 2006) | 1 line
  Fixed struct test to not use unittest.
........
  r46605 | tim.peters | 2006-06-03 01:22:51 +0200 (Sat, 03 Jun 2006) | 10 lines
  pprint functions used to sort a dict (by key) if and only if
  the output required more than one line.  "Small" dicts got
  displayed in seemingly random order (the hash-induced order
  produced by dict.__repr__).  None of this was documented.
  Now pprint functions always sort dicts by key, and the docs
  promise it.
  This was proposed and agreed to during the PyCon 2006 core
  sprint -- I just didn't have time for it before now.
........
											 
										 
										
											2006-06-08 14:42:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        shutil . rmtree ( self . pkgname ,  ignore_errors = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        os . mkdir ( self . pkgname ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-30 23:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        create_empty_file ( os . path . join ( self . pkgname ,  ' __init__.py ' ) ) 
							 
						 
					
						
							
								
									
										
											 
										
											
												Partially merge trunk into p3yk. The removal of Mac/Tools is confusing svn
merge in bad ways, so I'll have to merge that extra-carefully (probably manually.)
Merged revisions 46495-46605 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r46495 | tim.peters | 2006-05-28 03:52:38 +0200 (Sun, 28 May 2006) | 2 lines
  Added missing svn:eol-style property to text files.
........
  r46497 | tim.peters | 2006-05-28 12:41:29 +0200 (Sun, 28 May 2006) | 3 lines
  PyErr_Display(), PyErr_WriteUnraisable():  Coverity found a cut-and-paste
  bug in both:  `className` was referenced before being checked for NULL.
........
  r46499 | fredrik.lundh | 2006-05-28 14:06:46 +0200 (Sun, 28 May 2006) | 5 lines
  needforspeed: added Py_MEMCPY macro (currently tuned for Visual C only),
  and use it for string copy operations.  this gives a 20% speedup on some
  string benchmarks.
........
  r46501 | michael.hudson | 2006-05-28 17:51:40 +0200 (Sun, 28 May 2006) | 26 lines
  Quality control, meet exceptions.c.
  Fix a number of problems with the need for speed code:
  One is doing this sort of thing:
      Py_DECREF(self->field);
      self->field = newval;
      Py_INCREF(self->field);
  without being very sure that self->field doesn't start with a
  value that has a __del__, because that almost certainly can lead
  to segfaults.
  As self->args is constrained to be an exact tuple we may as well
  exploit this fact consistently.  This leads to quite a lot of
  simplification (and, hey, probably better performance).
  Add some error checking in places lacking it.
  Fix some rather strange indentation in the Unicode code.
  Delete some trailing whitespace.
  More to come, I haven't fixed all the reference leaks yet...
........
  r46502 | george.yoshida | 2006-05-28 18:39:09 +0200 (Sun, 28 May 2006) | 3 lines
  Patch #1080727: add "encoding" parameter to doctest.DocFileSuite
  Contributed by Bjorn Tillenius.
........
  r46503 | martin.v.loewis | 2006-05-28 18:57:38 +0200 (Sun, 28 May 2006) | 4 lines
  Rest of patch #1490384: Commit icon source, remove
  claim that Erik von Blokland is the author of the
  installer picture.
........
  r46504 | michael.hudson | 2006-05-28 19:40:29 +0200 (Sun, 28 May 2006) | 16 lines
  Quality control, meet exceptions.c, round two.
  Make some functions that should have been static static.
  Fix a bunch of refleaks by fixing the definition of
  MiddlingExtendsException.
  Remove all the __new__ implementations apart from
  BaseException_new.  Rewrite most code that needs it to cope with
  NULL fields (such code could get excercised anyway, the
  __new__-removal just makes it more likely).  This involved
  editing the code for WindowsError, which I can't test.
  This fixes all the refleaks in at least the start of a regrtest
  -R :: run.
........
  r46505 | marc-andre.lemburg | 2006-05-28 19:46:58 +0200 (Sun, 28 May 2006) | 10 lines
  Initial version of systimes - a module to provide platform dependent
  performance measurements.
  The module is currently just a proof-of-concept implementation, but
  will integrated into pybench once it is stable enough.
  License: pybench license.
  Author: Marc-Andre Lemburg.
........
  r46507 | armin.rigo | 2006-05-28 21:13:17 +0200 (Sun, 28 May 2006) | 15 lines
  ("Forward-port" of r46506)
  Remove various dependencies on dictionary order in the standard library
  tests, and one (clearly an oversight, potentially critical) in the
  standard library itself - base64.py.
  Remaining open issues:
   * test_extcall is an output test, messy to make robust
   * tarfile.py has a potential bug here, but I'm not familiar
     enough with this code.  Filed in as SF bug #1496501.
   * urllib2.HTTPPasswordMgr() returns a random result if there is more
     than one matching root path.  I'm asking python-dev for
     clarification...
........
  r46508 | georg.brandl | 2006-05-28 22:11:45 +0200 (Sun, 28 May 2006) | 4 lines
  The empty string is a valid import path.
   (fixes #1496539)
........
  r46509 | georg.brandl | 2006-05-28 22:23:12 +0200 (Sun, 28 May 2006) | 3 lines
  Patch #1496206: urllib2 PasswordMgr ./. default ports
........
  r46510 | georg.brandl | 2006-05-28 22:57:09 +0200 (Sun, 28 May 2006) | 3 lines
  Fix refleaks in UnicodeError get and set methods.
........
  r46511 | michael.hudson | 2006-05-28 23:19:03 +0200 (Sun, 28 May 2006) | 3 lines
  use the UnicodeError traversal and clearing functions in UnicodeError
  subclasses.
........
  r46512 | thomas.wouters | 2006-05-28 23:32:12 +0200 (Sun, 28 May 2006) | 4 lines
  Make last patch valid C89 so Windows compilers can deal with it.
........
  r46513 | georg.brandl | 2006-05-28 23:42:54 +0200 (Sun, 28 May 2006) | 3 lines
  Fix ref-antileak in _struct.c which eventually lead to deallocating None.
........
  r46514 | georg.brandl | 2006-05-28 23:57:35 +0200 (Sun, 28 May 2006) | 4 lines
  Correct None refcount issue in Mac modules. (Are they
  still used?)
........
  r46515 | armin.rigo | 2006-05-29 00:07:08 +0200 (Mon, 29 May 2006) | 3 lines
  A clearer error message when passing -R to regrtest.py with
  release builds of Python.
........
  r46516 | georg.brandl | 2006-05-29 00:14:04 +0200 (Mon, 29 May 2006) | 3 lines
  Fix C function calling conventions in _sre module.
........
  r46517 | georg.brandl | 2006-05-29 00:34:51 +0200 (Mon, 29 May 2006) | 3 lines
  Convert audioop over to METH_VARARGS.
........
  r46518 | georg.brandl | 2006-05-29 00:38:57 +0200 (Mon, 29 May 2006) | 3 lines
  METH_NOARGS functions do get called with two args.
........
  r46519 | georg.brandl | 2006-05-29 11:46:51 +0200 (Mon, 29 May 2006) | 4 lines
  Fix refleak in socketmodule. Replace bogus Py_BuildValue calls.
  Fix refleak in exceptions.
........
  r46520 | nick.coghlan | 2006-05-29 14:43:05 +0200 (Mon, 29 May 2006) | 7 lines
  Apply modified version of Collin Winter's patch #1478788
  Renames functional extension module to _functools and adds a Python
  functools module so that utility functions like update_wrapper can be
  added easily.
........
  r46522 | georg.brandl | 2006-05-29 15:53:16 +0200 (Mon, 29 May 2006) | 3 lines
  Convert fmmodule to METH_VARARGS.
........
  r46523 | georg.brandl | 2006-05-29 16:13:21 +0200 (Mon, 29 May 2006) | 3 lines
  Fix #1494605.
........
  r46524 | georg.brandl | 2006-05-29 16:28:05 +0200 (Mon, 29 May 2006) | 3 lines
  Handle PyMem_Malloc failure in pystrtod.c. Closes #1494671.
........
  r46525 | georg.brandl | 2006-05-29 16:33:55 +0200 (Mon, 29 May 2006) | 3 lines
  Fix compiler warning.
........
  r46526 | georg.brandl | 2006-05-29 16:39:00 +0200 (Mon, 29 May 2006) | 3 lines
  Fix #1494787 (pyclbr counts whitespace as superclass name)
........
  r46527 | bob.ippolito | 2006-05-29 17:47:29 +0200 (Mon, 29 May 2006) | 1 line
  simplify the struct code a bit (no functional changes)
........
  r46528 | armin.rigo | 2006-05-29 19:59:47 +0200 (Mon, 29 May 2006) | 2 lines
  Silence a warning.
........
  r46529 | georg.brandl | 2006-05-29 21:39:45 +0200 (Mon, 29 May 2006) | 3 lines
  Correct some value converting strangenesses.
........
  r46530 | nick.coghlan | 2006-05-29 22:27:44 +0200 (Mon, 29 May 2006) | 1 line
  When adding a module like functools, it helps to let SVN know about the file.
........
  r46531 | georg.brandl | 2006-05-29 22:52:54 +0200 (Mon, 29 May 2006) | 4 lines
  Patches #1497027 and #972322: try HTTP digest auth first,
  and watch out for handler name collisions.
........
  r46532 | georg.brandl | 2006-05-29 22:57:01 +0200 (Mon, 29 May 2006) | 3 lines
  Add News entry for last commit.
........
  r46533 | georg.brandl | 2006-05-29 23:04:52 +0200 (Mon, 29 May 2006) | 4 lines
  Make use of METH_O and METH_NOARGS where possible.
  Use Py_UnpackTuple instead of PyArg_ParseTuple where possible.
........
  r46534 | georg.brandl | 2006-05-29 23:58:42 +0200 (Mon, 29 May 2006) | 3 lines
  Convert more modules to METH_VARARGS.
........
  r46535 | georg.brandl | 2006-05-30 00:00:30 +0200 (Tue, 30 May 2006) | 3 lines
  Whoops.
........
  r46536 | fredrik.lundh | 2006-05-30 00:42:07 +0200 (Tue, 30 May 2006) | 4 lines
  fixed "abc".count("", 100) == -96 error (hopefully, nobody's relying on
  the current behaviour ;-)
........
  r46537 | bob.ippolito | 2006-05-30 00:55:48 +0200 (Tue, 30 May 2006) | 1 line
  struct: modulo math plus warning on all endian-explicit formats for compatibility with older struct usage (ugly)
........
  r46539 | bob.ippolito | 2006-05-30 02:26:01 +0200 (Tue, 30 May 2006) | 1 line
  Add a length check to aifc to ensure it doesn't write a bogus file
........
  r46540 | tim.peters | 2006-05-30 04:25:25 +0200 (Tue, 30 May 2006) | 10 lines
  deprecated_err():  Stop bizarre warning messages when the tests
  are run in the order:
      test_genexps (or any other doctest-based test)
      test_struct
      test_doctest
  The `warnings` module needs an advertised way to save/restore
  its internal filter list.
........
  r46541 | tim.peters | 2006-05-30 04:26:46 +0200 (Tue, 30 May 2006) | 2 lines
  Whitespace normalization.
........
  r46542 | tim.peters | 2006-05-30 04:30:30 +0200 (Tue, 30 May 2006) | 2 lines
  Set a binary svn:mime-type property on this UTF-8 encoded file.
........
  r46543 | neal.norwitz | 2006-05-30 05:18:50 +0200 (Tue, 30 May 2006) | 1 line
  Simplify further by using AddStringConstant
........
  r46544 | tim.peters | 2006-05-30 06:16:25 +0200 (Tue, 30 May 2006) | 6 lines
  Convert relevant dict internals to Py_ssize_t.
  I don't have a box with nearly enough RAM, or an OS,
  that could get close to tickling this, though (requires
  a dict w/ at least 2**31 entries).
........
  r46545 | neal.norwitz | 2006-05-30 06:19:21 +0200 (Tue, 30 May 2006) | 1 line
  Remove stray | in comment
........
  r46546 | neal.norwitz | 2006-05-30 06:25:05 +0200 (Tue, 30 May 2006) | 1 line
  Use Py_SAFE_DOWNCAST for safety.  Fix format strings.  Remove 2 more stray | in comment
........
  r46547 | neal.norwitz | 2006-05-30 06:43:23 +0200 (Tue, 30 May 2006) | 1 line
  No DOWNCAST is required since sizeof(Py_ssize_t) >= sizeof(int) and Py_ReprEntr returns an int
........
  r46548 | tim.peters | 2006-05-30 07:04:59 +0200 (Tue, 30 May 2006) | 3 lines
  dict_print():  Explicitly narrow the return value
  from a (possibly) wider variable.
........
  r46549 | tim.peters | 2006-05-30 07:23:59 +0200 (Tue, 30 May 2006) | 5 lines
  dict_print():  So that Neal & I don't spend the rest of
  our lives taking turns rewriting code that works ;-),
  get rid of casting illusions by declaring a new variable
  with the obvious type.
........
  r46550 | georg.brandl | 2006-05-30 09:04:55 +0200 (Tue, 30 May 2006) | 3 lines
  Restore exception pickle support. #1497319.
........
  r46551 | georg.brandl | 2006-05-30 09:13:29 +0200 (Tue, 30 May 2006) | 3 lines
  Add a test case for exception pickling. args is never NULL.
........
  r46552 | neal.norwitz | 2006-05-30 09:21:10 +0200 (Tue, 30 May 2006) | 1 line
  Don't fail if the (sub)pkgname already exist.
........
  r46553 | georg.brandl | 2006-05-30 09:34:45 +0200 (Tue, 30 May 2006) | 3 lines
  Disallow keyword args for exceptions.
........
  r46554 | neal.norwitz | 2006-05-30 09:36:54 +0200 (Tue, 30 May 2006) | 5 lines
  I'm impatient.  I think this will fix a few more problems with the buildbots.
  I'm not sure this is the best approach, but I can't think of anything better.
  If this creates problems, feel free to revert, but I think it's safe and
  should make things a little better.
........
  r46555 | georg.brandl | 2006-05-30 10:17:00 +0200 (Tue, 30 May 2006) | 4 lines
  Do the check for no keyword arguments in __init__ so that
  subclasses of Exception can be supplied keyword args
........
  r46556 | georg.brandl | 2006-05-30 10:47:19 +0200 (Tue, 30 May 2006) | 3 lines
  Convert test_exceptions to unittest.
........
  r46557 | andrew.kuchling | 2006-05-30 14:52:01 +0200 (Tue, 30 May 2006) | 1 line
  Add SoC name, and reorganize this section a bit
........
  r46559 | tim.peters | 2006-05-30 17:53:34 +0200 (Tue, 30 May 2006) | 11 lines
  PyLong_FromString():  Continued fraction analysis (explained in
  a new comment) suggests there are almost certainly large input
  integers in all non-binary input bases for which one Python digit
  too few is initally allocated to hold the final result.  Instead
  of assert-failing when that happens, allocate more space.  Alas,
  I estimate it would take a few days to find a specific such case,
  so this isn't backed up by a new test (not to mention that such
  a case may take hours to run, since conversion time is quadratic
  in the number of digits, and preliminary attempts suggested that
  the smallest such inputs contain at least a million digits).
........
  r46560 | fredrik.lundh | 2006-05-30 19:11:48 +0200 (Tue, 30 May 2006) | 3 lines
  changed find/rfind to return -1 for matches outside the source string
........
  r46561 | bob.ippolito | 2006-05-30 19:37:54 +0200 (Tue, 30 May 2006) | 1 line
  Change wrapping terminology to overflow masking
........
  r46562 | fredrik.lundh | 2006-05-30 19:39:58 +0200 (Tue, 30 May 2006) | 3 lines
  changed count to return 0 for slices outside the source string
........
  r46568 | tim.peters | 2006-05-31 01:28:02 +0200 (Wed, 31 May 2006) | 2 lines
  Whitespace normalization.
........
  r46569 | brett.cannon | 2006-05-31 04:19:54 +0200 (Wed, 31 May 2006) | 5 lines
  Clarify wording on default values for strptime(); defaults are used when better
  values cannot be inferred.
  Closes bug #1496315.
........
  r46572 | neal.norwitz | 2006-05-31 09:43:27 +0200 (Wed, 31 May 2006) | 1 line
  Calculate smallest properly (it was off by one) and use proper ssize_t types for Win64
........
  r46573 | neal.norwitz | 2006-05-31 10:01:08 +0200 (Wed, 31 May 2006) | 1 line
  Revert last checkin, it is better to do make distclean
........
  r46574 | neal.norwitz | 2006-05-31 11:02:44 +0200 (Wed, 31 May 2006) | 3 lines
  On 64-bit platforms running test_struct after test_tarfile would fail
  since the deprecation warning wouldn't be raised.
........
  r46575 | thomas.heller | 2006-05-31 13:37:58 +0200 (Wed, 31 May 2006) | 3 lines
  PyTuple_Pack is not available in Python 2.3, but ctypes must stay
  compatible with that.
........
  r46576 | andrew.kuchling | 2006-05-31 15:18:56 +0200 (Wed, 31 May 2006) | 1 line
  'functional' module was renamed to 'functools'
........
  r46577 | kristjan.jonsson | 2006-05-31 15:35:41 +0200 (Wed, 31 May 2006) | 1 line
  Fixup the PCBuild8 project directory.  exceptions.c have moved to Objects, and the functionalmodule.c has been replaced with _functoolsmodule.c.  Other minor changes to .vcproj files and .sln to fix compilation
........
  r46578 | andrew.kuchling | 2006-05-31 16:08:48 +0200 (Wed, 31 May 2006) | 15 lines
  [Bug #1473048]
  SimpleXMLRPCServer and DocXMLRPCServer don't look at
  the path of the HTTP request at all; you can POST or
  GET from / or /RPC2 or /blahblahblah with the same results.
  Security scanners that look for /cgi-bin/phf will therefore report
  lots of vulnerabilities.
  Fix: add a .rpc_paths attribute to the SimpleXMLRPCServer class,
  and report a 404 error if the path isn't on the allowed list.
  Possibly-controversial aspect of this change: the default makes only
  '/' and '/RPC2' legal.  Maybe this will break people's applications
  (though I doubt it).  We could just set the default to an empty tuple,
  which would exactly match the current behaviour.
........
  r46579 | andrew.kuchling | 2006-05-31 16:12:47 +0200 (Wed, 31 May 2006) | 1 line
  Mention SimpleXMLRPCServer change
........
  r46580 | tim.peters | 2006-05-31 16:28:07 +0200 (Wed, 31 May 2006) | 2 lines
  Trimmed trailing whitespace.
........
  r46581 | tim.peters | 2006-05-31 17:33:22 +0200 (Wed, 31 May 2006) | 4 lines
  _range_error():  Speed and simplify (there's no real need for
  loops here).  Assert that size_t is actually big enough, and
  that f->size is at least one.  Wrap a long line.
........
  r46582 | tim.peters | 2006-05-31 17:34:37 +0200 (Wed, 31 May 2006) | 2 lines
  Repaired error in new comment.
........
  r46584 | neal.norwitz | 2006-06-01 07:32:49 +0200 (Thu, 01 Jun 2006) | 4 lines
  Remove ; at end of macro.  There was a compiler recently that warned
  about extra semi-colons.  It may have been the HP C compiler.
  This file will trigger a bunch of those warnings now.
........
  r46585 | georg.brandl | 2006-06-01 08:39:19 +0200 (Thu, 01 Jun 2006) | 3 lines
  Correctly unpickle 2.4 exceptions via __setstate__ (patch #1498571)
........
  r46586 | georg.brandl | 2006-06-01 10:27:32 +0200 (Thu, 01 Jun 2006) | 3 lines
  Correctly allocate complex types with tp_alloc. (bug #1498638)
........
  r46587 | georg.brandl | 2006-06-01 14:30:46 +0200 (Thu, 01 Jun 2006) | 2 lines
  Correctly dispatch Faults in loads (patch #1498627)
........
  r46588 | georg.brandl | 2006-06-01 15:00:49 +0200 (Thu, 01 Jun 2006) | 3 lines
  Some code style tweaks, and remove apply.
........
  r46589 | armin.rigo | 2006-06-01 15:19:12 +0200 (Thu, 01 Jun 2006) | 5 lines
  [ 1497053 ] Let dicts propagate the exceptions in user __eq__().
  [ 1456209 ] dictresize() vulnerability ( <- backport candidate ).
........
  r46590 | tim.peters | 2006-06-01 15:41:46 +0200 (Thu, 01 Jun 2006) | 2 lines
  Whitespace normalization.
........
  r46591 | tim.peters | 2006-06-01 15:49:23 +0200 (Thu, 01 Jun 2006) | 2 lines
  Record bugs 1275608 and 1456209 as being fixed.
........
  r46592 | tim.peters | 2006-06-01 15:56:26 +0200 (Thu, 01 Jun 2006) | 5 lines
  Re-enable a new empty-string test added during the NFS sprint,
  but disabled then because str and unicode strings gave different
  results.  The implementations were repaired later during the
  sprint, but the new test remained disabled.
........
  r46594 | tim.peters | 2006-06-01 17:50:44 +0200 (Thu, 01 Jun 2006) | 7 lines
  Armin committed his patch while I was reviewing it (I'm sure
  he didn't know this), so merged in some changes I made during
  review.  Nothing material apart from changing a new `mask` local
  from int to Py_ssize_t.  Mostly this is repairing comments that
  were made incorrect, and adding new comments.  Also a few
  minor code rewrites for clarity or helpful succinctness.
........
  r46599 | neal.norwitz | 2006-06-02 06:45:53 +0200 (Fri, 02 Jun 2006) | 1 line
  Convert docstrings to comments so regrtest -v prints method names
........
  r46600 | neal.norwitz | 2006-06-02 06:50:49 +0200 (Fri, 02 Jun 2006) | 2 lines
  Fix memory leak found by valgrind.
........
  r46601 | neal.norwitz | 2006-06-02 06:54:52 +0200 (Fri, 02 Jun 2006) | 1 line
  More memory leaks from valgrind
........
  r46602 | neal.norwitz | 2006-06-02 08:23:00 +0200 (Fri, 02 Jun 2006) | 11 lines
  Patch #1357836:
  Prevent an invalid memory read from test_coding in case the done flag is set.
  In that case, the loop isn't entered.  I wonder if rather than setting
  the done flag in the cases before the loop, if they should just exit early.
  This code looks like it should be refactored.
  Backport candidate (also the early break above if decoding_fgets fails)
........
  r46603 | martin.blais | 2006-06-02 15:03:43 +0200 (Fri, 02 Jun 2006) | 1 line
  Fixed struct test to not use unittest.
........
  r46605 | tim.peters | 2006-06-03 01:22:51 +0200 (Sat, 03 Jun 2006) | 10 lines
  pprint functions used to sort a dict (by key) if and only if
  the output required more than one line.  "Small" dicts got
  displayed in seemingly random order (the hash-induced order
  produced by dict.__repr__).  None of this was documented.
  Now pprint functions always sort dicts by key, and the docs
  promise it.
  This was proposed and agreed to during the PyCon 2006 core
  sprint -- I just didn't have time for it before now.
........
											 
										 
										
											2006-06-08 14:42:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        shutil . rmtree ( self . subpkgname ,  ignore_errors = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        os . mkdir ( self . subpkgname ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-30 23:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        create_empty_file ( os . path . join ( self . subpkgname ,  ' __init__.py ' ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # Remember where we are 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . here  =  os . getcwd ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        sys . path . insert ( 0 ,  self . here ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-16 20:48:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # When regrtest is run with its -j option, this command alone is not 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # enough. 
							 
						 
					
						
							
								
									
										
										
										
											2012-02-20 01:48:16 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        importlib . invalidate_caches ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  tearDown ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        actions  =  [ ] 
							 
						 
					
						
							
								
									
										
											 
										
											
												Merged revisions 62873,62887,62892-62896,62904 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r62873 | raymond.hettinger | 2008-05-08 12:18:13 -0500 (Thu, 08 May 2008) | 1 line
  Issue 2778.  Document the temporary frozenset swap in __contains__(), remove(), and discard().
........
  r62887 | brett.cannon | 2008-05-08 14:50:51 -0500 (Thu, 08 May 2008) | 5 lines
  Make test.test_support.catch_warning() take an argument specifying if any
  triggered warnings should be captured. This allows the context manager to be
  used to just prevent the internal state of the 'warnings' framework and thus
  allow triggered warnings to be displayed.
........
  r62892 | brett.cannon | 2008-05-08 15:20:24 -0500 (Thu, 08 May 2008) | 4 lines
  Fix a bug introduced by the addition of the 'record' argument to
  test.test_support.catch_warning() where showwarning() was not being set
  properly.
........
  r62893 | brett.cannon | 2008-05-08 15:20:54 -0500 (Thu, 08 May 2008) | 2 lines
  Document the 'record' argument for test.test_support.catch_warning().
........
  r62894 | brett.cannon | 2008-05-08 15:23:06 -0500 (Thu, 08 May 2008) | 4 lines
  Fix sys.flags to properly expose bytes_warning.
  Closes issue #2790.
........
  r62895 | brett.cannon | 2008-05-08 15:23:54 -0500 (Thu, 08 May 2008) | 2 lines
  Add a missing entry on  the fix for issue #2790.
........
  r62896 | brett.cannon | 2008-05-08 15:24:43 -0500 (Thu, 08 May 2008) | 2 lines
  Add test.test_support.catch_warning()'s new argument.
........
  r62904 | benjamin.peterson | 2008-05-08 17:09:54 -0500 (Thu, 08 May 2008) | 2 lines
  Replace instances of os.path.walk with os.walk
........
											 
										 
										
											2008-05-08 22:27:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        for  dirpath ,  dirnames ,  filenames  in  os . walk ( self . pkgname ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            for  name  in  dirnames  +  filenames : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                actions . append ( os . path . join ( dirpath ,  name ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        actions . append ( self . pkgname ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        actions . sort ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        actions . reverse ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  p  in  actions : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  os . path . isdir ( p ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                os . rmdir ( p ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                os . remove ( p ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        del  sys . path [ 0 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-04-24 13:55:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  _check_path_limitations ( self ,  module_name ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # base directory 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        source_path_len  =  len ( self . here ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # a path separator + `longname` (twice) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        source_path_len  + =  2  *  ( len ( self . longname )  +  1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # a path separator + `module_name` + ".py" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        source_path_len  + =  len ( module_name )  +  1  +  len ( " .py " ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-15 17:11:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        cached_path_len  =  ( source_path_len  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            len ( importlib . util . cache_from_source ( " x.py " ) )  -  len ( " x.py " ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-23 22:55:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  os . name  ==  ' nt '  and  cached_path_len  > =  258 : 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-24 13:55:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            # Under Windows, the max path len is 260 including C's terminating 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            # NUL character. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            # (see http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#maxpath) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            self . skipTest ( " test paths too long ( %d  characters) for Windows '  260 character limit " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          %  cached_path_len ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-23 00:07:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        elif  os . name  ==  ' nt '  and  verbose : 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-23 00:49:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            print ( " cached_path_len = " ,  cached_path_len ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-24 13:55:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_module ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-22 09:05:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . maxDiff  =  None 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-24 13:55:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . _check_path_limitations ( self . pkgname ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-30 23:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        create_empty_file ( os . path . join ( self . subpkgname ,  self . pkgname  +  ' .py ' ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-16 20:48:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        importlib . invalidate_caches ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        from  areallylongpackageandmodulenametotestreprtruncation . areallylongpackageandmodulenametotestreprtruncation  import  areallylongpackageandmodulenametotestreprtruncation 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-11 11:02:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        module  =  areallylongpackageandmodulenametotestreprtruncation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( repr ( module ) ,  " <module  %r  from  %r > "  %  ( module . __name__ ,  module . __file__ ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( repr ( sys ) ,  " <module  ' sys '  (built-in)> " ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_type ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-24 13:55:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . _check_path_limitations ( ' foo ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-30 23:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        write_file ( os . path . join ( self . subpkgname ,  ' foo.py ' ) ,  ''' \
 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  foo ( object ) :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								''' ) 
  
						 
					
						
							
								
									
										
										
										
											2012-04-16 20:48:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        importlib . invalidate_caches ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        from  areallylongpackageandmodulenametotestreprtruncation . areallylongpackageandmodulenametotestreprtruncation  import  foo 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-13 21:13:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq ( repr ( foo . foo ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               " <class  ' %s .foo ' > "  %  foo . __name__ ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-12-08 00:20:35 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @unittest.skip ( ' need a suitable object ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_object ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # XXX Test the repr of a type with a really long tp_name but with no 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # tp_repr.  WIBNI we had ::Inline? :) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        pass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_class ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-24 13:55:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . _check_path_limitations ( ' bar ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-30 23:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        write_file ( os . path . join ( self . subpkgname ,  ' bar.py ' ) ,  ''' \
 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  bar :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								''' ) 
  
						 
					
						
							
								
									
										
										
										
											2012-04-16 20:48:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        importlib . invalidate_caches ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        from  areallylongpackageandmodulenametotestreprtruncation . areallylongpackageandmodulenametotestreprtruncation  import  bar 
							 
						 
					
						
							
								
									
										
										
										
											2003-01-16 04:56:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # Module name may be prefixed with "test.", depending on how run. 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-13 21:13:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . assertEqual ( repr ( bar . bar ) ,  " <class  ' %s .bar ' > "  %  bar . __name__ ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_instance ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-24 13:55:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . _check_path_limitations ( ' baz ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-30 23:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        write_file ( os . path . join ( self . subpkgname ,  ' baz.py ' ) ,  ''' \
 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  baz :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								''' ) 
  
						 
					
						
							
								
									
										
										
										
											2012-04-16 20:48:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        importlib . invalidate_caches ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        from  areallylongpackageandmodulenametotestreprtruncation . areallylongpackageandmodulenametotestreprtruncation  import  baz 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ibaz  =  baz . baz ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 23:06:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . assertTrue ( repr ( ibaz ) . startswith ( 
							 
						 
					
						
							
								
									
										
										
										
											2006-04-20 16:07:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            " < %s .baz object at 0x "  %  baz . __name__ ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_method ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-24 13:55:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . _check_path_limitations ( ' qux ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-20 19:04:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        eq  =  self . assertEqual 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-30 23:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        write_file ( os . path . join ( self . subpkgname ,  ' qux.py ' ) ,  ''' \
 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  amethod ( self ) :  pass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								''' ) 
  
						 
					
						
							
								
									
										
										
										
											2012-04-16 20:48:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        importlib . invalidate_caches ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        from  areallylongpackageandmodulenametotestreprtruncation . areallylongpackageandmodulenametotestreprtruncation  import  qux 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # Unbound methods first 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-25 18:56:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        r  =  repr ( qux . aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa . amethod ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertTrue ( r . startswith ( ' <function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.amethod ' ) ,  r ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # Bound method next 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        iqux  =  qux . aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-25 18:56:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        r  =  repr ( iqux . amethod ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertTrue ( r . startswith ( 
							 
						 
					
						
							
								
									
										
										
										
											2006-04-20 16:07:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' <bound method aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.amethod of < %s .aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa object at 0x '  \
							 
						 
					
						
							
								
									
										
										
										
											2011-11-25 18:56:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            %  ( qux . __name__ , )  ) ,  r ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-12-08 00:20:35 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @unittest.skip ( ' needs a built-in function with a really long name ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-08-24 18:37:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_builtin_function ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # XXX test built-in functions and methods with really long names 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        pass 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  ClassWithRepr :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  __init__ ( self ,  s ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . s  =  s 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  __repr__ ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2006-04-20 16:07:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  " ClassWithRepr( %r ) "  %  self . s 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  ClassWithFailingRepr :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  __repr__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        raise  Exception ( " This should be caught by Repr.repr_instance " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-09-13 21:36:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  MyContainer :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ' Helper class for TestRecursiveRepr ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  __init__ ( self ,  values ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . values  =  list ( values ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  append ( self ,  value ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . values . append ( value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @recursive_repr ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  __repr__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  ' < '  +  ' ,  ' . join ( map ( str ,  self . values ) )  +  ' > ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  MyContainer2 ( MyContainer ) :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @recursive_repr ( ' +++ ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  __repr__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  ' < '  +  ' ,  ' . join ( map ( str ,  self . values ) )  +  ' > ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-04-26 09:30:44 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  MyContainer3 :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  __repr__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' Test document content ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        pass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    wrapped  =  __repr__ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    wrapper  =  recursive_repr ( ) ( wrapped ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-09-13 21:36:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  TestRecursiveRepr ( unittest . TestCase ) :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  test_recursive_repr ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m  =  MyContainer ( list ( ' abcde ' ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m . append ( m ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m . append ( ' x ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m . append ( m ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( repr ( m ) ,  ' <a, b, c, d, e, ..., x, ...> ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m  =  MyContainer2 ( list ( ' abcde ' ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m . append ( m ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m . append ( ' x ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        m . append ( m ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( repr ( m ) ,  ' <a, b, c, d, e, +++, x, +++> ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2001-07-19 22:27:56 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-04-26 09:30:44 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test_assigned_attributes ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        from  functools  import  WRAPPER_ASSIGNMENTS  as  assigned 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        wrapped  =  MyContainer3 . wrapped 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        wrapper  =  MyContainer3 . wrapper 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  name  in  assigned : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            self . assertIs ( getattr ( wrapper ,  name ) ,  getattr ( wrapped ,  name ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-10 11:55:49 +05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test__wrapped__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class  X : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            def  __repr__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  ' X() ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            f  =  __repr__  # save reference to check it later 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            __repr__  =  recursive_repr ( ) ( __repr__ ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertIs ( X . f ,  X . __repr__ . __wrapped__ ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-28 05:26:42 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    def  test__type_params__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        class  My : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            @recursive_repr ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            def  __repr__ [ T :  str ] ( self ,  default :  T  =  ' ' )  - >  str : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return  default 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        type_params  =  My ( ) . __repr__ . __type_params__ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( len ( type_params ) ,  1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( type_params [ 0 ] . __name__ ,  ' T ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        self . assertEqual ( type_params [ 0 ] . __bound__ ,  str ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2001-09-20 21:33:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  __name__  ==  " __main__ " :  
						 
					
						
							
								
									
										
										
										
											2014-11-09 22:30:36 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    unittest . main ( )