From python-checkins at python.org Mon Oct 1 01:19:14 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 1 Oct 2007 01:19:14 +0200 (CEST) Subject: [Python-checkins] r58290 - peps/trunk/pep-3137.txt Message-ID: <20070930231914.BA3D31E4007@bag.python.org> Author: guido.van.rossum Date: Mon Oct 1 01:19:14 2007 New Revision: 58290 Modified: peps/trunk/pep-3137.txt Log: Changed my mind on comparing bytes to str. Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Mon Oct 1 01:19:14 2007 @@ -8,7 +8,7 @@ Content-Type: text/x-rst Created: 26-Sep-2007 Python-Version: 3.0 -Post-History: 26-Sep-2007 +Post-History: 26-Sep-2007, 30-Sep-2007 Introduction ============ @@ -124,8 +124,18 @@ The bytes and buffer types are comparable with each other and orderable, so that e.g. b'abc' == buffer(b'abc') < b'abd'. -Comparing either type to a str object raises an exception. This -turned out to be necessary to catch common mistakes. +Comparing either type to a str object for equality returns False +regardless of the contents of either operand. Ordering comparisons +with str raise TypeError. This is all conformant to the standard +rules for comparison and ordering between objects of incompatible +types. + +(**Note:** in Python 3.0a1, comparing a bytes instance with a str +instance would raise TypeError, on the premise that this would catch +the occasional mistake quicker, especially in code ported from Python +2.x. However, a long discussion on the python-3000 list pointed out +so many problems with this that it is clearly a bad idea, to be rolled +back in 3.0a2 regardless of the fate of the rest of this PEP.) Slicing ------- From python-checkins at python.org Mon Oct 1 04:58:22 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 1 Oct 2007 04:58:22 +0200 (CEST) Subject: [Python-checkins] r58291 - peps/trunk/pep-3137.txt Message-ID: <20071001025822.8DB571E400C@bag.python.org> Author: guido.van.rossum Date: Mon Oct 1 04:58:22 2007 New Revision: 58291 Modified: peps/trunk/pep-3137.txt Log: Fix another paragraph that was referring to bytes()==str() raising TypeError. Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Mon Oct 1 04:58:22 2007 @@ -234,12 +234,11 @@ ---------------------- Like the bytes type in Python 3.0a1, and unlike the relationship -between str and unicode in Python 2.x, any attempt to mix bytes (or +between str and unicode in Python 2.x, attempts to mix bytes (or buffer) objects and str objects without specifying an encoding will -raise a TypeError exception. This is the case even for simply -comparing a bytes or buffer object to a str object (even violating the -general rule that comparing objects of different types for equality -should just return False). +raise a TypeError exception. (However, comparing bytes/buffer and str +objects for equality will simply return False; see the section on +Comparisons above.) Conversions between bytes or buffer objects and str objects must always be explicit, using an encoding. There are two equivalent APIs: From python-checkins at python.org Mon Oct 1 16:43:58 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 1 Oct 2007 16:43:58 +0200 (CEST) Subject: [Python-checkins] r58292 - peps/trunk/pep-3137.txt Message-ID: <20071001144358.47C9D1E4013@bag.python.org> Author: guido.van.rossum Date: Mon Oct 1 16:43:57 2007 New Revision: 58292 Modified: peps/trunk/pep-3137.txt Log: Typo reported by Mark Summerfield. Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Mon Oct 1 16:43:57 2007 @@ -143,7 +143,7 @@ Slicing a bytes object returns a bytes object. Slicing a buffer object returns a buffer object. -Slice assignment to a mutable buffer object accept anything that +Slice assignment to a mutable buffer object accepts anything that implements the PEP 3118 buffer API, or an iterable of integers in range(256). From python-checkins at python.org Tue Oct 2 19:01:25 2007 From: python-checkins at python.org (facundo.batista) Date: Tue, 2 Oct 2007 19:01:25 +0200 (CEST) Subject: [Python-checkins] r58294 - in python/trunk/Lib: decimal.py test/decimaltestdata/extra.decTest test/test_decimal.py Message-ID: <20071002170125.682001E4016@bag.python.org> Author: facundo.batista Date: Tue Oct 2 19:01:24 2007 New Revision: 58294 Modified: python/trunk/Lib/decimal.py python/trunk/Lib/test/decimaltestdata/extra.decTest python/trunk/Lib/test/test_decimal.py Log: Made the various is_* operations return booleans. This was discussed with Cawlishaw by mail, and he basically confirmed that to these is_* operations, there's no need to return Decimal(0) and Decimal(1) if the language supports the False and True booleans. Also added a few tests for the these functions in extra.decTest, since they are mostly untested (apart from the doctests). Thanks Mark Dickinson Modified: python/trunk/Lib/decimal.py ============================================================================== --- python/trunk/Lib/decimal.py (original) +++ python/trunk/Lib/decimal.py Tue Oct 2 19:01:24 2007 @@ -679,14 +679,11 @@ return 0 def __nonzero__(self): - """Is the number non-zero? + """Return True if self is nonzero; otherwise return False. - 0 if self == 0 - 1 if self != 0 + NaNs and infinities are considered nonzero. """ - if self._is_special: - return True - return sum(self._int) != 0 + return self._is_special or self._int[0] != 0 def __cmp__(self, other): other = _convert_other(other) @@ -2239,15 +2236,18 @@ return ans def same_quantum(self, other): - """Test whether self and other have the same exponent. + """Return True if self and other have the same exponent; otherwise + return False. - same as self._exp == other._exp, except NaN == sNaN + If either operand is a special value, the following rules are used: + * return True if both operands are infinities + * return True if both operands are NaNs + * otherwise, return False. """ + other = _convert_other(other, raiseit=True) if self._is_special or other._is_special: - if self._isnan() or other._isnan(): - return self._isnan() and other._isnan() and True - if self._isinfinity() or other._isinfinity(): - return self._isinfinity() and other._isinfinity() and True + return (self.is_nan() and other.is_nan() or + self.is_infinite() and other.is_infinite()) return self._exp == other._exp def _rescale(self, exp, rounding): @@ -2730,84 +2730,60 @@ return ans def is_canonical(self): - """Returns 1 if self is canonical; otherwise returns 0.""" - return Dec_p1 + """Return True if self is canonical; otherwise return False. + + Currently, the encoding of a Decimal instance is always + canonical, so this method returns True for any Decimal. + """ + return True def is_finite(self): - """Returns 1 if self is finite, otherwise returns 0. + """Return True if self is finite; otherwise return False. - For it to be finite, it must be neither infinite nor a NaN. + A Decimal instance is considered finite if it is neither + infinite nor a NaN. """ - if self._is_special: - return Dec_0 - else: - return Dec_p1 + return not self._is_special def is_infinite(self): - """Returns 1 if self is an Infinite, otherwise returns 0.""" - if self._isinfinity(): - return Dec_p1 - else: - return Dec_0 + """Return True if self is infinite; otherwise return False.""" + return self._exp == 'F' def is_nan(self): - """Returns 1 if self is qNaN or sNaN, otherwise returns 0.""" - if self._isnan(): - return Dec_p1 - else: - return Dec_0 + """Return True if self is a qNaN or sNaN; otherwise return False.""" + return self._exp in ('n', 'N') def is_normal(self, context=None): - """Returns 1 if self is a normal number, otherwise returns 0.""" - if self._is_special: - return Dec_0 - if not self: - return Dec_0 + """Return True if self is a normal number; otherwise return False.""" + if self._is_special or not self: + return False if context is None: context = getcontext() - if context.Emin <= self.adjusted() <= context.Emax: - return Dec_p1 - else: - return Dec_0 + return context.Emin <= self.adjusted() <= context.Emax def is_qnan(self): - """Returns 1 if self is a quiet NaN, otherwise returns 0.""" - if self._isnan() == 1: - return Dec_p1 - else: - return Dec_0 + """Return True if self is a quiet NaN; otherwise return False.""" + return self._exp == 'n' def is_signed(self): - """Returns 1 if self is negative, otherwise returns 0.""" - return Decimal(self._sign) + """Return True if self is negative; otherwise return False.""" + return self._sign == 1 def is_snan(self): - """Returns 1 if self is a signaling NaN, otherwise returns 0.""" - if self._isnan() == 2: - return Dec_p1 - else: - return Dec_0 + """Return True if self is a signaling NaN; otherwise return False.""" + return self._exp == 'N' def is_subnormal(self, context=None): - """Returns 1 if self is subnormal, otherwise returns 0.""" - if self._is_special: - return Dec_0 - if not self: - return Dec_0 + """Return True if self is subnormal; otherwise return False.""" + if self._is_special or not self: + return False if context is None: context = getcontext() - - r = self._exp + len(self._int) - if r <= context.Emin: - return Dec_p1 - return Dec_0 + return self.adjusted() < context.Emin def is_zero(self): - """Returns 1 if self is a zero, otherwise returns 0.""" - if self: - return Dec_0 - else: - return Dec_p1 + """Return True if self is a zero; otherwise return False.""" + return not self._is_special and self._int[0] == 0 def _ln_exp_bound(self): """Compute a lower bound for the adjusted exponent of self.ln(). @@ -3871,138 +3847,145 @@ return a.fma(b, c, context=self) def is_canonical(self, a): - """Returns 1 if the operand is canonical; otherwise returns 0. + """Return True if the operand is canonical; otherwise return False. + + Currently, the encoding of a Decimal instance is always + canonical, so this method returns True for any Decimal. >>> ExtendedContext.is_canonical(Decimal('2.50')) - Decimal("1") + True """ - return Dec_p1 + return a.is_canonical() def is_finite(self, a): - """Returns 1 if the operand is finite, otherwise returns 0. + """Return True if the operand is finite; otherwise return False. - For it to be finite, it must be neither infinite nor a NaN. + A Decimal instance is considered finite if it is neither + infinite nor a NaN. >>> ExtendedContext.is_finite(Decimal('2.50')) - Decimal("1") + True >>> ExtendedContext.is_finite(Decimal('-0.3')) - Decimal("1") + True >>> ExtendedContext.is_finite(Decimal('0')) - Decimal("1") + True >>> ExtendedContext.is_finite(Decimal('Inf')) - Decimal("0") + False >>> ExtendedContext.is_finite(Decimal('NaN')) - Decimal("0") + False """ return a.is_finite() def is_infinite(self, a): - """Returns 1 if the operand is an Infinite, otherwise returns 0. + """Return True if the operand is infinite; otherwise return False. >>> ExtendedContext.is_infinite(Decimal('2.50')) - Decimal("0") + False >>> ExtendedContext.is_infinite(Decimal('-Inf')) - Decimal("1") + True >>> ExtendedContext.is_infinite(Decimal('NaN')) - Decimal("0") + False """ return a.is_infinite() def is_nan(self, a): - """Returns 1 if the operand is qNaN or sNaN, otherwise returns 0. + """Return True if the operand is a qNaN or sNaN; + otherwise return False. >>> ExtendedContext.is_nan(Decimal('2.50')) - Decimal("0") + False >>> ExtendedContext.is_nan(Decimal('NaN')) - Decimal("1") + True >>> ExtendedContext.is_nan(Decimal('-sNaN')) - Decimal("1") + True """ return a.is_nan() def is_normal(self, a): - """Returns 1 if the operand is a normal number, otherwise returns 0. + """Return True if the operand is a normal number; + otherwise return False. >>> c = ExtendedContext.copy() >>> c.Emin = -999 >>> c.Emax = 999 >>> c.is_normal(Decimal('2.50')) - Decimal("1") + True >>> c.is_normal(Decimal('0.1E-999')) - Decimal("0") + False >>> c.is_normal(Decimal('0.00')) - Decimal("0") + False >>> c.is_normal(Decimal('-Inf')) - Decimal("0") + False >>> c.is_normal(Decimal('NaN')) - Decimal("0") + False """ return a.is_normal(context=self) def is_qnan(self, a): - """Returns 1 if the operand is a quiet NaN, otherwise returns 0. + """Return True if the operand is a quiet NaN; otherwise return False. >>> ExtendedContext.is_qnan(Decimal('2.50')) - Decimal("0") + False >>> ExtendedContext.is_qnan(Decimal('NaN')) - Decimal("1") + True >>> ExtendedContext.is_qnan(Decimal('sNaN')) - Decimal("0") + False """ return a.is_qnan() def is_signed(self, a): - """Returns 1 if the operand is negative, otherwise returns 0. + """Return True if the operand is negative; otherwise return False. >>> ExtendedContext.is_signed(Decimal('2.50')) - Decimal("0") + False >>> ExtendedContext.is_signed(Decimal('-12')) - Decimal("1") + True >>> ExtendedContext.is_signed(Decimal('-0')) - Decimal("1") + True """ return a.is_signed() def is_snan(self, a): - """Returns 1 if the operand is a signaling NaN, otherwise returns 0. + """Return True if the operand is a signaling NaN; + otherwise return False. >>> ExtendedContext.is_snan(Decimal('2.50')) - Decimal("0") + False >>> ExtendedContext.is_snan(Decimal('NaN')) - Decimal("0") + False >>> ExtendedContext.is_snan(Decimal('sNaN')) - Decimal("1") + True """ return a.is_snan() def is_subnormal(self, a): - """Returns 1 if the operand is subnormal, otherwise returns 0. + """Return True if the operand is subnormal; otherwise return False. >>> c = ExtendedContext.copy() >>> c.Emin = -999 >>> c.Emax = 999 >>> c.is_subnormal(Decimal('2.50')) - Decimal("0") + False >>> c.is_subnormal(Decimal('0.1E-999')) - Decimal("1") + True >>> c.is_subnormal(Decimal('0.00')) - Decimal("0") + False >>> c.is_subnormal(Decimal('-Inf')) - Decimal("0") + False >>> c.is_subnormal(Decimal('NaN')) - Decimal("0") + False """ return a.is_subnormal(context=self) def is_zero(self, a): - """Returns 1 if the operand is a zero, otherwise returns 0. + """Return True if the operand is a zero; otherwise return False. >>> ExtendedContext.is_zero(Decimal('0')) - Decimal("1") + True >>> ExtendedContext.is_zero(Decimal('2.50')) - Decimal("0") + False >>> ExtendedContext.is_zero(Decimal('-0E+2')) - Decimal("1") + True """ return a.is_zero() Modified: python/trunk/Lib/test/decimaltestdata/extra.decTest ============================================================================== --- python/trunk/Lib/test/decimaltestdata/extra.decTest (original) +++ python/trunk/Lib/test/decimaltestdata/extra.decTest Tue Oct 2 19:01:24 2007 @@ -154,6 +154,2112 @@ extr1302 fma 0E123 -Inf sNaN789 -> NaN Invalid_operation extr1302 fma -Inf 0E-456 sNaN148 -> NaN Invalid_operation +-- Tests for the is_* boolean operations +precision: 9 +maxExponent: 999 +minExponent: -999 + +bool0000 iscanonical 0E-2000 -> 1 +bool0001 iscanonical -0E-2000 -> 1 +bool0002 iscanonical 0E-1008 -> 1 +bool0003 iscanonical -0E-1008 -> 1 +bool0004 iscanonical 0E-1007 -> 1 +bool0005 iscanonical -0E-1007 -> 1 +bool0006 iscanonical 0E-1006 -> 1 +bool0007 iscanonical -0E-1006 -> 1 +bool0008 iscanonical 0E-1000 -> 1 +bool0009 iscanonical -0E-1000 -> 1 +bool0010 iscanonical 0E-999 -> 1 +bool0011 iscanonical -0E-999 -> 1 +bool0012 iscanonical 0E-998 -> 1 +bool0013 iscanonical -0E-998 -> 1 +bool0014 iscanonical 0E-100 -> 1 +bool0015 iscanonical -0E-100 -> 1 +bool0016 iscanonical 0.000000 -> 1 +bool0017 iscanonical -0.000000 -> 1 +bool0018 iscanonical 0.000 -> 1 +bool0019 iscanonical -0.000 -> 1 +bool0020 iscanonical 0.00 -> 1 +bool0021 iscanonical -0.00 -> 1 +bool0022 iscanonical 0.0 -> 1 +bool0023 iscanonical -0.0 -> 1 +bool0024 iscanonical 0 -> 1 +bool0025 iscanonical -0 -> 1 +bool0026 iscanonical 0E+1 -> 1 +bool0027 iscanonical -0E+1 -> 1 +bool0028 iscanonical 0E+2 -> 1 +bool0029 iscanonical -0E+2 -> 1 +bool0030 iscanonical 0E+3 -> 1 +bool0031 iscanonical -0E+3 -> 1 +bool0032 iscanonical 0E+6 -> 1 +bool0033 iscanonical -0E+6 -> 1 +bool0034 iscanonical 0E+100 -> 1 +bool0035 iscanonical -0E+100 -> 1 +bool0036 iscanonical 0E+990 -> 1 +bool0037 iscanonical -0E+990 -> 1 +bool0038 iscanonical 0E+991 -> 1 +bool0039 iscanonical -0E+991 -> 1 +bool0040 iscanonical 0E+992 -> 1 +bool0041 iscanonical -0E+992 -> 1 +bool0042 iscanonical 0E+998 -> 1 +bool0043 iscanonical -0E+998 -> 1 +bool0044 iscanonical 0E+999 -> 1 +bool0045 iscanonical -0E+999 -> 1 +bool0046 iscanonical 0E+1000 -> 1 +bool0047 iscanonical -0E+1000 -> 1 +bool0048 iscanonical 0E+2000 -> 1 +bool0049 iscanonical -0E+2000 -> 1 +bool0050 iscanonical 1E-2000 -> 1 +bool0051 iscanonical -1E-2000 -> 1 +bool0052 iscanonical 1E-1008 -> 1 +bool0053 iscanonical -1E-1008 -> 1 +bool0054 iscanonical 1E-1007 -> 1 +bool0055 iscanonical -1E-1007 -> 1 +bool0056 iscanonical 1E-1006 -> 1 +bool0057 iscanonical -1E-1006 -> 1 +bool0058 iscanonical 1E-1000 -> 1 +bool0059 iscanonical -1E-1000 -> 1 +bool0060 iscanonical 1E-999 -> 1 +bool0061 iscanonical -1E-999 -> 1 +bool0062 iscanonical 1E-998 -> 1 +bool0063 iscanonical -1E-998 -> 1 +bool0064 iscanonical 1E-100 -> 1 +bool0065 iscanonical -1E-100 -> 1 +bool0066 iscanonical 0.000001 -> 1 +bool0067 iscanonical -0.000001 -> 1 +bool0068 iscanonical 0.001 -> 1 +bool0069 iscanonical -0.001 -> 1 +bool0070 iscanonical 0.01 -> 1 +bool0071 iscanonical -0.01 -> 1 +bool0072 iscanonical 0.1 -> 1 +bool0073 iscanonical -0.1 -> 1 +bool0074 iscanonical 1 -> 1 +bool0075 iscanonical -1 -> 1 +bool0076 iscanonical 1E+1 -> 1 +bool0077 iscanonical -1E+1 -> 1 +bool0078 iscanonical 1E+2 -> 1 +bool0079 iscanonical -1E+2 -> 1 +bool0080 iscanonical 1E+3 -> 1 +bool0081 iscanonical -1E+3 -> 1 +bool0082 iscanonical 1E+6 -> 1 +bool0083 iscanonical -1E+6 -> 1 +bool0084 iscanonical 1E+100 -> 1 +bool0085 iscanonical -1E+100 -> 1 +bool0086 iscanonical 1E+990 -> 1 +bool0087 iscanonical -1E+990 -> 1 +bool0088 iscanonical 1E+991 -> 1 +bool0089 iscanonical -1E+991 -> 1 +bool0090 iscanonical 1E+992 -> 1 +bool0091 iscanonical -1E+992 -> 1 +bool0092 iscanonical 1E+998 -> 1 +bool0093 iscanonical -1E+998 -> 1 +bool0094 iscanonical 1E+999 -> 1 +bool0095 iscanonical -1E+999 -> 1 +bool0096 iscanonical 1E+1000 -> 1 +bool0097 iscanonical -1E+1000 -> 1 +bool0098 iscanonical 1E+2000 -> 1 +bool0099 iscanonical -1E+2000 -> 1 +bool0100 iscanonical 9E-2000 -> 1 +bool0101 iscanonical -9E-2000 -> 1 +bool0102 iscanonical 9E-1008 -> 1 +bool0103 iscanonical -9E-1008 -> 1 +bool0104 iscanonical 9E-1007 -> 1 +bool0105 iscanonical -9E-1007 -> 1 +bool0106 iscanonical 9E-1006 -> 1 +bool0107 iscanonical -9E-1006 -> 1 +bool0108 iscanonical 9E-1000 -> 1 +bool0109 iscanonical -9E-1000 -> 1 +bool0110 iscanonical 9E-999 -> 1 +bool0111 iscanonical -9E-999 -> 1 +bool0112 iscanonical 9E-998 -> 1 +bool0113 iscanonical -9E-998 -> 1 +bool0114 iscanonical 9E-100 -> 1 +bool0115 iscanonical -9E-100 -> 1 +bool0116 iscanonical 0.000009 -> 1 +bool0117 iscanonical -0.000009 -> 1 +bool0118 iscanonical 0.009 -> 1 +bool0119 iscanonical -0.009 -> 1 +bool0120 iscanonical 0.09 -> 1 +bool0121 iscanonical -0.09 -> 1 +bool0122 iscanonical 0.9 -> 1 +bool0123 iscanonical -0.9 -> 1 +bool0124 iscanonical 9 -> 1 +bool0125 iscanonical -9 -> 1 +bool0126 iscanonical 9E+1 -> 1 +bool0127 iscanonical -9E+1 -> 1 +bool0128 iscanonical 9E+2 -> 1 +bool0129 iscanonical -9E+2 -> 1 +bool0130 iscanonical 9E+3 -> 1 +bool0131 iscanonical -9E+3 -> 1 +bool0132 iscanonical 9E+6 -> 1 +bool0133 iscanonical -9E+6 -> 1 +bool0134 iscanonical 9E+100 -> 1 +bool0135 iscanonical -9E+100 -> 1 +bool0136 iscanonical 9E+990 -> 1 +bool0137 iscanonical -9E+990 -> 1 +bool0138 iscanonical 9E+991 -> 1 +bool0139 iscanonical -9E+991 -> 1 +bool0140 iscanonical 9E+992 -> 1 +bool0141 iscanonical -9E+992 -> 1 +bool0142 iscanonical 9E+998 -> 1 +bool0143 iscanonical -9E+998 -> 1 +bool0144 iscanonical 9E+999 -> 1 +bool0145 iscanonical -9E+999 -> 1 +bool0146 iscanonical 9E+1000 -> 1 +bool0147 iscanonical -9E+1000 -> 1 +bool0148 iscanonical 9E+2000 -> 1 +bool0149 iscanonical -9E+2000 -> 1 +bool0150 iscanonical 9.99999999E-2000 -> 1 +bool0151 iscanonical -9.99999999E-2000 -> 1 +bool0152 iscanonical 9.99999999E-1008 -> 1 +bool0153 iscanonical -9.99999999E-1008 -> 1 +bool0154 iscanonical 9.99999999E-1007 -> 1 +bool0155 iscanonical -9.99999999E-1007 -> 1 +bool0156 iscanonical 9.99999999E-1006 -> 1 +bool0157 iscanonical -9.99999999E-1006 -> 1 +bool0158 iscanonical 9.99999999E-1000 -> 1 +bool0159 iscanonical -9.99999999E-1000 -> 1 +bool0160 iscanonical 9.99999999E-999 -> 1 +bool0161 iscanonical -9.99999999E-999 -> 1 +bool0162 iscanonical 9.99999999E-998 -> 1 +bool0163 iscanonical -9.99999999E-998 -> 1 +bool0164 iscanonical 9.99999999E-100 -> 1 +bool0165 iscanonical -9.99999999E-100 -> 1 +bool0166 iscanonical 0.00000999999999 -> 1 +bool0167 iscanonical -0.00000999999999 -> 1 +bool0168 iscanonical 0.00999999999 -> 1 +bool0169 iscanonical -0.00999999999 -> 1 +bool0170 iscanonical 0.0999999999 -> 1 +bool0171 iscanonical -0.0999999999 -> 1 +bool0172 iscanonical 0.999999999 -> 1 +bool0173 iscanonical -0.999999999 -> 1 +bool0174 iscanonical 9.99999999 -> 1 +bool0175 iscanonical -9.99999999 -> 1 +bool0176 iscanonical 99.9999999 -> 1 +bool0177 iscanonical -99.9999999 -> 1 +bool0178 iscanonical 999.999999 -> 1 +bool0179 iscanonical -999.999999 -> 1 +bool0180 iscanonical 9999.99999 -> 1 +bool0181 iscanonical -9999.99999 -> 1 +bool0182 iscanonical 9999999.99 -> 1 +bool0183 iscanonical -9999999.99 -> 1 +bool0184 iscanonical 9.99999999E+100 -> 1 +bool0185 iscanonical -9.99999999E+100 -> 1 +bool0186 iscanonical 9.99999999E+990 -> 1 +bool0187 iscanonical -9.99999999E+990 -> 1 +bool0188 iscanonical 9.99999999E+991 -> 1 +bool0189 iscanonical -9.99999999E+991 -> 1 +bool0190 iscanonical 9.99999999E+992 -> 1 +bool0191 iscanonical -9.99999999E+992 -> 1 +bool0192 iscanonical 9.99999999E+998 -> 1 +bool0193 iscanonical -9.99999999E+998 -> 1 +bool0194 iscanonical 9.99999999E+999 -> 1 +bool0195 iscanonical -9.99999999E+999 -> 1 +bool0196 iscanonical 9.99999999E+1000 -> 1 +bool0197 iscanonical -9.99999999E+1000 -> 1 +bool0198 iscanonical 9.99999999E+2000 -> 1 +bool0199 iscanonical -9.99999999E+2000 -> 1 +bool0200 iscanonical Infinity -> 1 +bool0201 iscanonical -Infinity -> 1 +bool0202 iscanonical NaN -> 1 +bool0203 iscanonical -NaN -> 1 +bool0204 iscanonical NaN123 -> 1 +bool0205 iscanonical -NaN123 -> 1 +bool0206 iscanonical sNaN -> 1 +bool0207 iscanonical -sNaN -> 1 +bool0208 iscanonical sNaN123 -> 1 +bool0209 iscanonical -sNaN123 -> 1 +bool0210 isfinite 0E-2000 -> 1 +bool0211 isfinite -0E-2000 -> 1 +bool0212 isfinite 0E-1008 -> 1 +bool0213 isfinite -0E-1008 -> 1 +bool0214 isfinite 0E-1007 -> 1 +bool0215 isfinite -0E-1007 -> 1 +bool0216 isfinite 0E-1006 -> 1 +bool0217 isfinite -0E-1006 -> 1 +bool0218 isfinite 0E-1000 -> 1 +bool0219 isfinite -0E-1000 -> 1 +bool0220 isfinite 0E-999 -> 1 +bool0221 isfinite -0E-999 -> 1 +bool0222 isfinite 0E-998 -> 1 +bool0223 isfinite -0E-998 -> 1 +bool0224 isfinite 0E-100 -> 1 +bool0225 isfinite -0E-100 -> 1 +bool0226 isfinite 0.000000 -> 1 +bool0227 isfinite -0.000000 -> 1 +bool0228 isfinite 0.000 -> 1 +bool0229 isfinite -0.000 -> 1 +bool0230 isfinite 0.00 -> 1 +bool0231 isfinite -0.00 -> 1 +bool0232 isfinite 0.0 -> 1 +bool0233 isfinite -0.0 -> 1 +bool0234 isfinite 0 -> 1 +bool0235 isfinite -0 -> 1 +bool0236 isfinite 0E+1 -> 1 +bool0237 isfinite -0E+1 -> 1 +bool0238 isfinite 0E+2 -> 1 +bool0239 isfinite -0E+2 -> 1 +bool0240 isfinite 0E+3 -> 1 +bool0241 isfinite -0E+3 -> 1 +bool0242 isfinite 0E+6 -> 1 +bool0243 isfinite -0E+6 -> 1 +bool0244 isfinite 0E+100 -> 1 +bool0245 isfinite -0E+100 -> 1 +bool0246 isfinite 0E+990 -> 1 +bool0247 isfinite -0E+990 -> 1 +bool0248 isfinite 0E+991 -> 1 +bool0249 isfinite -0E+991 -> 1 +bool0250 isfinite 0E+992 -> 1 +bool0251 isfinite -0E+992 -> 1 +bool0252 isfinite 0E+998 -> 1 +bool0253 isfinite -0E+998 -> 1 +bool0254 isfinite 0E+999 -> 1 +bool0255 isfinite -0E+999 -> 1 +bool0256 isfinite 0E+1000 -> 1 +bool0257 isfinite -0E+1000 -> 1 +bool0258 isfinite 0E+2000 -> 1 +bool0259 isfinite -0E+2000 -> 1 +bool0260 isfinite 1E-2000 -> 1 +bool0261 isfinite -1E-2000 -> 1 +bool0262 isfinite 1E-1008 -> 1 +bool0263 isfinite -1E-1008 -> 1 +bool0264 isfinite 1E-1007 -> 1 +bool0265 isfinite -1E-1007 -> 1 +bool0266 isfinite 1E-1006 -> 1 +bool0267 isfinite -1E-1006 -> 1 +bool0268 isfinite 1E-1000 -> 1 +bool0269 isfinite -1E-1000 -> 1 +bool0270 isfinite 1E-999 -> 1 +bool0271 isfinite -1E-999 -> 1 +bool0272 isfinite 1E-998 -> 1 +bool0273 isfinite -1E-998 -> 1 +bool0274 isfinite 1E-100 -> 1 +bool0275 isfinite -1E-100 -> 1 +bool0276 isfinite 0.000001 -> 1 +bool0277 isfinite -0.000001 -> 1 +bool0278 isfinite 0.001 -> 1 +bool0279 isfinite -0.001 -> 1 +bool0280 isfinite 0.01 -> 1 +bool0281 isfinite -0.01 -> 1 +bool0282 isfinite 0.1 -> 1 +bool0283 isfinite -0.1 -> 1 +bool0284 isfinite 1 -> 1 +bool0285 isfinite -1 -> 1 +bool0286 isfinite 1E+1 -> 1 +bool0287 isfinite -1E+1 -> 1 +bool0288 isfinite 1E+2 -> 1 +bool0289 isfinite -1E+2 -> 1 +bool0290 isfinite 1E+3 -> 1 +bool0291 isfinite -1E+3 -> 1 +bool0292 isfinite 1E+6 -> 1 +bool0293 isfinite -1E+6 -> 1 +bool0294 isfinite 1E+100 -> 1 +bool0295 isfinite -1E+100 -> 1 +bool0296 isfinite 1E+990 -> 1 +bool0297 isfinite -1E+990 -> 1 +bool0298 isfinite 1E+991 -> 1 +bool0299 isfinite -1E+991 -> 1 +bool0300 isfinite 1E+992 -> 1 +bool0301 isfinite -1E+992 -> 1 +bool0302 isfinite 1E+998 -> 1 +bool0303 isfinite -1E+998 -> 1 +bool0304 isfinite 1E+999 -> 1 +bool0305 isfinite -1E+999 -> 1 +bool0306 isfinite 1E+1000 -> 1 +bool0307 isfinite -1E+1000 -> 1 +bool0308 isfinite 1E+2000 -> 1 +bool0309 isfinite -1E+2000 -> 1 +bool0310 isfinite 9E-2000 -> 1 +bool0311 isfinite -9E-2000 -> 1 +bool0312 isfinite 9E-1008 -> 1 +bool0313 isfinite -9E-1008 -> 1 +bool0314 isfinite 9E-1007 -> 1 +bool0315 isfinite -9E-1007 -> 1 +bool0316 isfinite 9E-1006 -> 1 +bool0317 isfinite -9E-1006 -> 1 +bool0318 isfinite 9E-1000 -> 1 +bool0319 isfinite -9E-1000 -> 1 +bool0320 isfinite 9E-999 -> 1 +bool0321 isfinite -9E-999 -> 1 +bool0322 isfinite 9E-998 -> 1 +bool0323 isfinite -9E-998 -> 1 +bool0324 isfinite 9E-100 -> 1 +bool0325 isfinite -9E-100 -> 1 +bool0326 isfinite 0.000009 -> 1 +bool0327 isfinite -0.000009 -> 1 +bool0328 isfinite 0.009 -> 1 +bool0329 isfinite -0.009 -> 1 +bool0330 isfinite 0.09 -> 1 +bool0331 isfinite -0.09 -> 1 +bool0332 isfinite 0.9 -> 1 +bool0333 isfinite -0.9 -> 1 +bool0334 isfinite 9 -> 1 +bool0335 isfinite -9 -> 1 +bool0336 isfinite 9E+1 -> 1 +bool0337 isfinite -9E+1 -> 1 +bool0338 isfinite 9E+2 -> 1 +bool0339 isfinite -9E+2 -> 1 +bool0340 isfinite 9E+3 -> 1 +bool0341 isfinite -9E+3 -> 1 +bool0342 isfinite 9E+6 -> 1 +bool0343 isfinite -9E+6 -> 1 +bool0344 isfinite 9E+100 -> 1 +bool0345 isfinite -9E+100 -> 1 +bool0346 isfinite 9E+990 -> 1 +bool0347 isfinite -9E+990 -> 1 +bool0348 isfinite 9E+991 -> 1 +bool0349 isfinite -9E+991 -> 1 +bool0350 isfinite 9E+992 -> 1 +bool0351 isfinite -9E+992 -> 1 +bool0352 isfinite 9E+998 -> 1 +bool0353 isfinite -9E+998 -> 1 +bool0354 isfinite 9E+999 -> 1 +bool0355 isfinite -9E+999 -> 1 +bool0356 isfinite 9E+1000 -> 1 +bool0357 isfinite -9E+1000 -> 1 +bool0358 isfinite 9E+2000 -> 1 +bool0359 isfinite -9E+2000 -> 1 +bool0360 isfinite 9.99999999E-2000 -> 1 +bool0361 isfinite -9.99999999E-2000 -> 1 +bool0362 isfinite 9.99999999E-1008 -> 1 +bool0363 isfinite -9.99999999E-1008 -> 1 +bool0364 isfinite 9.99999999E-1007 -> 1 +bool0365 isfinite -9.99999999E-1007 -> 1 +bool0366 isfinite 9.99999999E-1006 -> 1 +bool0367 isfinite -9.99999999E-1006 -> 1 +bool0368 isfinite 9.99999999E-1000 -> 1 +bool0369 isfinite -9.99999999E-1000 -> 1 +bool0370 isfinite 9.99999999E-999 -> 1 +bool0371 isfinite -9.99999999E-999 -> 1 +bool0372 isfinite 9.99999999E-998 -> 1 +bool0373 isfinite -9.99999999E-998 -> 1 +bool0374 isfinite 9.99999999E-100 -> 1 +bool0375 isfinite -9.99999999E-100 -> 1 +bool0376 isfinite 0.00000999999999 -> 1 +bool0377 isfinite -0.00000999999999 -> 1 +bool0378 isfinite 0.00999999999 -> 1 +bool0379 isfinite -0.00999999999 -> 1 +bool0380 isfinite 0.0999999999 -> 1 +bool0381 isfinite -0.0999999999 -> 1 +bool0382 isfinite 0.999999999 -> 1 +bool0383 isfinite -0.999999999 -> 1 +bool0384 isfinite 9.99999999 -> 1 +bool0385 isfinite -9.99999999 -> 1 +bool0386 isfinite 99.9999999 -> 1 +bool0387 isfinite -99.9999999 -> 1 +bool0388 isfinite 999.999999 -> 1 +bool0389 isfinite -999.999999 -> 1 +bool0390 isfinite 9999.99999 -> 1 +bool0391 isfinite -9999.99999 -> 1 +bool0392 isfinite 9999999.99 -> 1 +bool0393 isfinite -9999999.99 -> 1 +bool0394 isfinite 9.99999999E+100 -> 1 +bool0395 isfinite -9.99999999E+100 -> 1 +bool0396 isfinite 9.99999999E+990 -> 1 +bool0397 isfinite -9.99999999E+990 -> 1 +bool0398 isfinite 9.99999999E+991 -> 1 +bool0399 isfinite -9.99999999E+991 -> 1 +bool0400 isfinite 9.99999999E+992 -> 1 +bool0401 isfinite -9.99999999E+992 -> 1 +bool0402 isfinite 9.99999999E+998 -> 1 +bool0403 isfinite -9.99999999E+998 -> 1 +bool0404 isfinite 9.99999999E+999 -> 1 +bool0405 isfinite -9.99999999E+999 -> 1 +bool0406 isfinite 9.99999999E+1000 -> 1 +bool0407 isfinite -9.99999999E+1000 -> 1 +bool0408 isfinite 9.99999999E+2000 -> 1 +bool0409 isfinite -9.99999999E+2000 -> 1 +bool0410 isfinite Infinity -> 0 +bool0411 isfinite -Infinity -> 0 +bool0412 isfinite NaN -> 0 +bool0413 isfinite -NaN -> 0 +bool0414 isfinite NaN123 -> 0 +bool0415 isfinite -NaN123 -> 0 +bool0416 isfinite sNaN -> 0 +bool0417 isfinite -sNaN -> 0 +bool0418 isfinite sNaN123 -> 0 +bool0419 isfinite -sNaN123 -> 0 +bool0420 isinfinite 0E-2000 -> 0 +bool0421 isinfinite -0E-2000 -> 0 +bool0422 isinfinite 0E-1008 -> 0 +bool0423 isinfinite -0E-1008 -> 0 +bool0424 isinfinite 0E-1007 -> 0 +bool0425 isinfinite -0E-1007 -> 0 +bool0426 isinfinite 0E-1006 -> 0 +bool0427 isinfinite -0E-1006 -> 0 +bool0428 isinfinite 0E-1000 -> 0 +bool0429 isinfinite -0E-1000 -> 0 +bool0430 isinfinite 0E-999 -> 0 +bool0431 isinfinite -0E-999 -> 0 +bool0432 isinfinite 0E-998 -> 0 +bool0433 isinfinite -0E-998 -> 0 +bool0434 isinfinite 0E-100 -> 0 +bool0435 isinfinite -0E-100 -> 0 +bool0436 isinfinite 0.000000 -> 0 +bool0437 isinfinite -0.000000 -> 0 +bool0438 isinfinite 0.000 -> 0 +bool0439 isinfinite -0.000 -> 0 +bool0440 isinfinite 0.00 -> 0 +bool0441 isinfinite -0.00 -> 0 +bool0442 isinfinite 0.0 -> 0 +bool0443 isinfinite -0.0 -> 0 +bool0444 isinfinite 0 -> 0 +bool0445 isinfinite -0 -> 0 +bool0446 isinfinite 0E+1 -> 0 +bool0447 isinfinite -0E+1 -> 0 +bool0448 isinfinite 0E+2 -> 0 +bool0449 isinfinite -0E+2 -> 0 +bool0450 isinfinite 0E+3 -> 0 +bool0451 isinfinite -0E+3 -> 0 +bool0452 isinfinite 0E+6 -> 0 +bool0453 isinfinite -0E+6 -> 0 +bool0454 isinfinite 0E+100 -> 0 +bool0455 isinfinite -0E+100 -> 0 +bool0456 isinfinite 0E+990 -> 0 +bool0457 isinfinite -0E+990 -> 0 +bool0458 isinfinite 0E+991 -> 0 +bool0459 isinfinite -0E+991 -> 0 +bool0460 isinfinite 0E+992 -> 0 +bool0461 isinfinite -0E+992 -> 0 +bool0462 isinfinite 0E+998 -> 0 +bool0463 isinfinite -0E+998 -> 0 +bool0464 isinfinite 0E+999 -> 0 +bool0465 isinfinite -0E+999 -> 0 +bool0466 isinfinite 0E+1000 -> 0 +bool0467 isinfinite -0E+1000 -> 0 +bool0468 isinfinite 0E+2000 -> 0 +bool0469 isinfinite -0E+2000 -> 0 +bool0470 isinfinite 1E-2000 -> 0 +bool0471 isinfinite -1E-2000 -> 0 +bool0472 isinfinite 1E-1008 -> 0 +bool0473 isinfinite -1E-1008 -> 0 +bool0474 isinfinite 1E-1007 -> 0 +bool0475 isinfinite -1E-1007 -> 0 +bool0476 isinfinite 1E-1006 -> 0 +bool0477 isinfinite -1E-1006 -> 0 +bool0478 isinfinite 1E-1000 -> 0 +bool0479 isinfinite -1E-1000 -> 0 +bool0480 isinfinite 1E-999 -> 0 +bool0481 isinfinite -1E-999 -> 0 +bool0482 isinfinite 1E-998 -> 0 +bool0483 isinfinite -1E-998 -> 0 +bool0484 isinfinite 1E-100 -> 0 +bool0485 isinfinite -1E-100 -> 0 +bool0486 isinfinite 0.000001 -> 0 +bool0487 isinfinite -0.000001 -> 0 +bool0488 isinfinite 0.001 -> 0 +bool0489 isinfinite -0.001 -> 0 +bool0490 isinfinite 0.01 -> 0 +bool0491 isinfinite -0.01 -> 0 +bool0492 isinfinite 0.1 -> 0 +bool0493 isinfinite -0.1 -> 0 +bool0494 isinfinite 1 -> 0 +bool0495 isinfinite -1 -> 0 +bool0496 isinfinite 1E+1 -> 0 +bool0497 isinfinite -1E+1 -> 0 +bool0498 isinfinite 1E+2 -> 0 +bool0499 isinfinite -1E+2 -> 0 +bool0500 isinfinite 1E+3 -> 0 +bool0501 isinfinite -1E+3 -> 0 +bool0502 isinfinite 1E+6 -> 0 +bool0503 isinfinite -1E+6 -> 0 +bool0504 isinfinite 1E+100 -> 0 +bool0505 isinfinite -1E+100 -> 0 +bool0506 isinfinite 1E+990 -> 0 +bool0507 isinfinite -1E+990 -> 0 +bool0508 isinfinite 1E+991 -> 0 +bool0509 isinfinite -1E+991 -> 0 +bool0510 isinfinite 1E+992 -> 0 +bool0511 isinfinite -1E+992 -> 0 +bool0512 isinfinite 1E+998 -> 0 +bool0513 isinfinite -1E+998 -> 0 +bool0514 isinfinite 1E+999 -> 0 +bool0515 isinfinite -1E+999 -> 0 +bool0516 isinfinite 1E+1000 -> 0 +bool0517 isinfinite -1E+1000 -> 0 +bool0518 isinfinite 1E+2000 -> 0 +bool0519 isinfinite -1E+2000 -> 0 +bool0520 isinfinite 9E-2000 -> 0 +bool0521 isinfinite -9E-2000 -> 0 +bool0522 isinfinite 9E-1008 -> 0 +bool0523 isinfinite -9E-1008 -> 0 +bool0524 isinfinite 9E-1007 -> 0 +bool0525 isinfinite -9E-1007 -> 0 +bool0526 isinfinite 9E-1006 -> 0 +bool0527 isinfinite -9E-1006 -> 0 +bool0528 isinfinite 9E-1000 -> 0 +bool0529 isinfinite -9E-1000 -> 0 +bool0530 isinfinite 9E-999 -> 0 +bool0531 isinfinite -9E-999 -> 0 +bool0532 isinfinite 9E-998 -> 0 +bool0533 isinfinite -9E-998 -> 0 +bool0534 isinfinite 9E-100 -> 0 +bool0535 isinfinite -9E-100 -> 0 +bool0536 isinfinite 0.000009 -> 0 +bool0537 isinfinite -0.000009 -> 0 +bool0538 isinfinite 0.009 -> 0 +bool0539 isinfinite -0.009 -> 0 +bool0540 isinfinite 0.09 -> 0 +bool0541 isinfinite -0.09 -> 0 +bool0542 isinfinite 0.9 -> 0 +bool0543 isinfinite -0.9 -> 0 +bool0544 isinfinite 9 -> 0 +bool0545 isinfinite -9 -> 0 +bool0546 isinfinite 9E+1 -> 0 +bool0547 isinfinite -9E+1 -> 0 +bool0548 isinfinite 9E+2 -> 0 +bool0549 isinfinite -9E+2 -> 0 +bool0550 isinfinite 9E+3 -> 0 +bool0551 isinfinite -9E+3 -> 0 +bool0552 isinfinite 9E+6 -> 0 +bool0553 isinfinite -9E+6 -> 0 +bool0554 isinfinite 9E+100 -> 0 +bool0555 isinfinite -9E+100 -> 0 +bool0556 isinfinite 9E+990 -> 0 +bool0557 isinfinite -9E+990 -> 0 +bool0558 isinfinite 9E+991 -> 0 +bool0559 isinfinite -9E+991 -> 0 +bool0560 isinfinite 9E+992 -> 0 +bool0561 isinfinite -9E+992 -> 0 +bool0562 isinfinite 9E+998 -> 0 +bool0563 isinfinite -9E+998 -> 0 +bool0564 isinfinite 9E+999 -> 0 +bool0565 isinfinite -9E+999 -> 0 +bool0566 isinfinite 9E+1000 -> 0 +bool0567 isinfinite -9E+1000 -> 0 +bool0568 isinfinite 9E+2000 -> 0 +bool0569 isinfinite -9E+2000 -> 0 +bool0570 isinfinite 9.99999999E-2000 -> 0 +bool0571 isinfinite -9.99999999E-2000 -> 0 +bool0572 isinfinite 9.99999999E-1008 -> 0 +bool0573 isinfinite -9.99999999E-1008 -> 0 +bool0574 isinfinite 9.99999999E-1007 -> 0 +bool0575 isinfinite -9.99999999E-1007 -> 0 +bool0576 isinfinite 9.99999999E-1006 -> 0 +bool0577 isinfinite -9.99999999E-1006 -> 0 +bool0578 isinfinite 9.99999999E-1000 -> 0 +bool0579 isinfinite -9.99999999E-1000 -> 0 +bool0580 isinfinite 9.99999999E-999 -> 0 +bool0581 isinfinite -9.99999999E-999 -> 0 +bool0582 isinfinite 9.99999999E-998 -> 0 +bool0583 isinfinite -9.99999999E-998 -> 0 +bool0584 isinfinite 9.99999999E-100 -> 0 +bool0585 isinfinite -9.99999999E-100 -> 0 +bool0586 isinfinite 0.00000999999999 -> 0 +bool0587 isinfinite -0.00000999999999 -> 0 +bool0588 isinfinite 0.00999999999 -> 0 +bool0589 isinfinite -0.00999999999 -> 0 +bool0590 isinfinite 0.0999999999 -> 0 +bool0591 isinfinite -0.0999999999 -> 0 +bool0592 isinfinite 0.999999999 -> 0 +bool0593 isinfinite -0.999999999 -> 0 +bool0594 isinfinite 9.99999999 -> 0 +bool0595 isinfinite -9.99999999 -> 0 +bool0596 isinfinite 99.9999999 -> 0 +bool0597 isinfinite -99.9999999 -> 0 +bool0598 isinfinite 999.999999 -> 0 +bool0599 isinfinite -999.999999 -> 0 +bool0600 isinfinite 9999.99999 -> 0 +bool0601 isinfinite -9999.99999 -> 0 +bool0602 isinfinite 9999999.99 -> 0 +bool0603 isinfinite -9999999.99 -> 0 +bool0604 isinfinite 9.99999999E+100 -> 0 +bool0605 isinfinite -9.99999999E+100 -> 0 +bool0606 isinfinite 9.99999999E+990 -> 0 +bool0607 isinfinite -9.99999999E+990 -> 0 +bool0608 isinfinite 9.99999999E+991 -> 0 +bool0609 isinfinite -9.99999999E+991 -> 0 +bool0610 isinfinite 9.99999999E+992 -> 0 +bool0611 isinfinite -9.99999999E+992 -> 0 +bool0612 isinfinite 9.99999999E+998 -> 0 +bool0613 isinfinite -9.99999999E+998 -> 0 +bool0614 isinfinite 9.99999999E+999 -> 0 +bool0615 isinfinite -9.99999999E+999 -> 0 +bool0616 isinfinite 9.99999999E+1000 -> 0 +bool0617 isinfinite -9.99999999E+1000 -> 0 +bool0618 isinfinite 9.99999999E+2000 -> 0 +bool0619 isinfinite -9.99999999E+2000 -> 0 +bool0620 isinfinite Infinity -> 1 +bool0621 isinfinite -Infinity -> 1 +bool0622 isinfinite NaN -> 0 +bool0623 isinfinite -NaN -> 0 +bool0624 isinfinite NaN123 -> 0 +bool0625 isinfinite -NaN123 -> 0 +bool0626 isinfinite sNaN -> 0 +bool0627 isinfinite -sNaN -> 0 +bool0628 isinfinite sNaN123 -> 0 +bool0629 isinfinite -sNaN123 -> 0 +bool0630 isnan 0E-2000 -> 0 +bool0631 isnan -0E-2000 -> 0 +bool0632 isnan 0E-1008 -> 0 +bool0633 isnan -0E-1008 -> 0 +bool0634 isnan 0E-1007 -> 0 +bool0635 isnan -0E-1007 -> 0 +bool0636 isnan 0E-1006 -> 0 +bool0637 isnan -0E-1006 -> 0 +bool0638 isnan 0E-1000 -> 0 +bool0639 isnan -0E-1000 -> 0 +bool0640 isnan 0E-999 -> 0 +bool0641 isnan -0E-999 -> 0 +bool0642 isnan 0E-998 -> 0 +bool0643 isnan -0E-998 -> 0 +bool0644 isnan 0E-100 -> 0 +bool0645 isnan -0E-100 -> 0 +bool0646 isnan 0.000000 -> 0 +bool0647 isnan -0.000000 -> 0 +bool0648 isnan 0.000 -> 0 +bool0649 isnan -0.000 -> 0 +bool0650 isnan 0.00 -> 0 +bool0651 isnan -0.00 -> 0 +bool0652 isnan 0.0 -> 0 +bool0653 isnan -0.0 -> 0 +bool0654 isnan 0 -> 0 +bool0655 isnan -0 -> 0 +bool0656 isnan 0E+1 -> 0 +bool0657 isnan -0E+1 -> 0 +bool0658 isnan 0E+2 -> 0 +bool0659 isnan -0E+2 -> 0 +bool0660 isnan 0E+3 -> 0 +bool0661 isnan -0E+3 -> 0 +bool0662 isnan 0E+6 -> 0 +bool0663 isnan -0E+6 -> 0 +bool0664 isnan 0E+100 -> 0 +bool0665 isnan -0E+100 -> 0 +bool0666 isnan 0E+990 -> 0 +bool0667 isnan -0E+990 -> 0 +bool0668 isnan 0E+991 -> 0 +bool0669 isnan -0E+991 -> 0 +bool0670 isnan 0E+992 -> 0 +bool0671 isnan -0E+992 -> 0 +bool0672 isnan 0E+998 -> 0 +bool0673 isnan -0E+998 -> 0 +bool0674 isnan 0E+999 -> 0 +bool0675 isnan -0E+999 -> 0 +bool0676 isnan 0E+1000 -> 0 +bool0677 isnan -0E+1000 -> 0 +bool0678 isnan 0E+2000 -> 0 +bool0679 isnan -0E+2000 -> 0 +bool0680 isnan 1E-2000 -> 0 +bool0681 isnan -1E-2000 -> 0 +bool0682 isnan 1E-1008 -> 0 +bool0683 isnan -1E-1008 -> 0 +bool0684 isnan 1E-1007 -> 0 +bool0685 isnan -1E-1007 -> 0 +bool0686 isnan 1E-1006 -> 0 +bool0687 isnan -1E-1006 -> 0 +bool0688 isnan 1E-1000 -> 0 +bool0689 isnan -1E-1000 -> 0 +bool0690 isnan 1E-999 -> 0 +bool0691 isnan -1E-999 -> 0 +bool0692 isnan 1E-998 -> 0 +bool0693 isnan -1E-998 -> 0 +bool0694 isnan 1E-100 -> 0 +bool0695 isnan -1E-100 -> 0 +bool0696 isnan 0.000001 -> 0 +bool0697 isnan -0.000001 -> 0 +bool0698 isnan 0.001 -> 0 +bool0699 isnan -0.001 -> 0 +bool0700 isnan 0.01 -> 0 +bool0701 isnan -0.01 -> 0 +bool0702 isnan 0.1 -> 0 +bool0703 isnan -0.1 -> 0 +bool0704 isnan 1 -> 0 +bool0705 isnan -1 -> 0 +bool0706 isnan 1E+1 -> 0 +bool0707 isnan -1E+1 -> 0 +bool0708 isnan 1E+2 -> 0 +bool0709 isnan -1E+2 -> 0 +bool0710 isnan 1E+3 -> 0 +bool0711 isnan -1E+3 -> 0 +bool0712 isnan 1E+6 -> 0 +bool0713 isnan -1E+6 -> 0 +bool0714 isnan 1E+100 -> 0 +bool0715 isnan -1E+100 -> 0 +bool0716 isnan 1E+990 -> 0 +bool0717 isnan -1E+990 -> 0 +bool0718 isnan 1E+991 -> 0 +bool0719 isnan -1E+991 -> 0 +bool0720 isnan 1E+992 -> 0 +bool0721 isnan -1E+992 -> 0 +bool0722 isnan 1E+998 -> 0 +bool0723 isnan -1E+998 -> 0 +bool0724 isnan 1E+999 -> 0 +bool0725 isnan -1E+999 -> 0 +bool0726 isnan 1E+1000 -> 0 +bool0727 isnan -1E+1000 -> 0 +bool0728 isnan 1E+2000 -> 0 +bool0729 isnan -1E+2000 -> 0 +bool0730 isnan 9E-2000 -> 0 +bool0731 isnan -9E-2000 -> 0 +bool0732 isnan 9E-1008 -> 0 +bool0733 isnan -9E-1008 -> 0 +bool0734 isnan 9E-1007 -> 0 +bool0735 isnan -9E-1007 -> 0 +bool0736 isnan 9E-1006 -> 0 +bool0737 isnan -9E-1006 -> 0 +bool0738 isnan 9E-1000 -> 0 +bool0739 isnan -9E-1000 -> 0 +bool0740 isnan 9E-999 -> 0 +bool0741 isnan -9E-999 -> 0 +bool0742 isnan 9E-998 -> 0 +bool0743 isnan -9E-998 -> 0 +bool0744 isnan 9E-100 -> 0 +bool0745 isnan -9E-100 -> 0 +bool0746 isnan 0.000009 -> 0 +bool0747 isnan -0.000009 -> 0 +bool0748 isnan 0.009 -> 0 +bool0749 isnan -0.009 -> 0 +bool0750 isnan 0.09 -> 0 +bool0751 isnan -0.09 -> 0 +bool0752 isnan 0.9 -> 0 +bool0753 isnan -0.9 -> 0 +bool0754 isnan 9 -> 0 +bool0755 isnan -9 -> 0 +bool0756 isnan 9E+1 -> 0 +bool0757 isnan -9E+1 -> 0 +bool0758 isnan 9E+2 -> 0 +bool0759 isnan -9E+2 -> 0 +bool0760 isnan 9E+3 -> 0 +bool0761 isnan -9E+3 -> 0 +bool0762 isnan 9E+6 -> 0 +bool0763 isnan -9E+6 -> 0 +bool0764 isnan 9E+100 -> 0 +bool0765 isnan -9E+100 -> 0 +bool0766 isnan 9E+990 -> 0 +bool0767 isnan -9E+990 -> 0 +bool0768 isnan 9E+991 -> 0 +bool0769 isnan -9E+991 -> 0 +bool0770 isnan 9E+992 -> 0 +bool0771 isnan -9E+992 -> 0 +bool0772 isnan 9E+998 -> 0 +bool0773 isnan -9E+998 -> 0 +bool0774 isnan 9E+999 -> 0 +bool0775 isnan -9E+999 -> 0 +bool0776 isnan 9E+1000 -> 0 +bool0777 isnan -9E+1000 -> 0 +bool0778 isnan 9E+2000 -> 0 +bool0779 isnan -9E+2000 -> 0 +bool0780 isnan 9.99999999E-2000 -> 0 +bool0781 isnan -9.99999999E-2000 -> 0 +bool0782 isnan 9.99999999E-1008 -> 0 +bool0783 isnan -9.99999999E-1008 -> 0 +bool0784 isnan 9.99999999E-1007 -> 0 +bool0785 isnan -9.99999999E-1007 -> 0 +bool0786 isnan 9.99999999E-1006 -> 0 +bool0787 isnan -9.99999999E-1006 -> 0 +bool0788 isnan 9.99999999E-1000 -> 0 +bool0789 isnan -9.99999999E-1000 -> 0 +bool0790 isnan 9.99999999E-999 -> 0 +bool0791 isnan -9.99999999E-999 -> 0 +bool0792 isnan 9.99999999E-998 -> 0 +bool0793 isnan -9.99999999E-998 -> 0 +bool0794 isnan 9.99999999E-100 -> 0 +bool0795 isnan -9.99999999E-100 -> 0 +bool0796 isnan 0.00000999999999 -> 0 +bool0797 isnan -0.00000999999999 -> 0 +bool0798 isnan 0.00999999999 -> 0 +bool0799 isnan -0.00999999999 -> 0 +bool0800 isnan 0.0999999999 -> 0 +bool0801 isnan -0.0999999999 -> 0 +bool0802 isnan 0.999999999 -> 0 +bool0803 isnan -0.999999999 -> 0 +bool0804 isnan 9.99999999 -> 0 +bool0805 isnan -9.99999999 -> 0 +bool0806 isnan 99.9999999 -> 0 +bool0807 isnan -99.9999999 -> 0 +bool0808 isnan 999.999999 -> 0 +bool0809 isnan -999.999999 -> 0 +bool0810 isnan 9999.99999 -> 0 +bool0811 isnan -9999.99999 -> 0 +bool0812 isnan 9999999.99 -> 0 +bool0813 isnan -9999999.99 -> 0 +bool0814 isnan 9.99999999E+100 -> 0 +bool0815 isnan -9.99999999E+100 -> 0 +bool0816 isnan 9.99999999E+990 -> 0 +bool0817 isnan -9.99999999E+990 -> 0 +bool0818 isnan 9.99999999E+991 -> 0 +bool0819 isnan -9.99999999E+991 -> 0 +bool0820 isnan 9.99999999E+992 -> 0 +bool0821 isnan -9.99999999E+992 -> 0 +bool0822 isnan 9.99999999E+998 -> 0 +bool0823 isnan -9.99999999E+998 -> 0 +bool0824 isnan 9.99999999E+999 -> 0 +bool0825 isnan -9.99999999E+999 -> 0 +bool0826 isnan 9.99999999E+1000 -> 0 +bool0827 isnan -9.99999999E+1000 -> 0 +bool0828 isnan 9.99999999E+2000 -> 0 +bool0829 isnan -9.99999999E+2000 -> 0 +bool0830 isnan Infinity -> 0 +bool0831 isnan -Infinity -> 0 +bool0832 isnan NaN -> 1 +bool0833 isnan -NaN -> 1 +bool0834 isnan NaN123 -> 1 +bool0835 isnan -NaN123 -> 1 +bool0836 isnan sNaN -> 1 +bool0837 isnan -sNaN -> 1 +bool0838 isnan sNaN123 -> 1 +bool0839 isnan -sNaN123 -> 1 +bool0840 isnormal 0E-2000 -> 0 +bool0841 isnormal -0E-2000 -> 0 +bool0842 isnormal 0E-1008 -> 0 +bool0843 isnormal -0E-1008 -> 0 +bool0844 isnormal 0E-1007 -> 0 +bool0845 isnormal -0E-1007 -> 0 +bool0846 isnormal 0E-1006 -> 0 +bool0847 isnormal -0E-1006 -> 0 +bool0848 isnormal 0E-1000 -> 0 +bool0849 isnormal -0E-1000 -> 0 +bool0850 isnormal 0E-999 -> 0 +bool0851 isnormal -0E-999 -> 0 +bool0852 isnormal 0E-998 -> 0 +bool0853 isnormal -0E-998 -> 0 +bool0854 isnormal 0E-100 -> 0 +bool0855 isnormal -0E-100 -> 0 +bool0856 isnormal 0.000000 -> 0 +bool0857 isnormal -0.000000 -> 0 +bool0858 isnormal 0.000 -> 0 +bool0859 isnormal -0.000 -> 0 +bool0860 isnormal 0.00 -> 0 +bool0861 isnormal -0.00 -> 0 +bool0862 isnormal 0.0 -> 0 +bool0863 isnormal -0.0 -> 0 +bool0864 isnormal 0 -> 0 +bool0865 isnormal -0 -> 0 +bool0866 isnormal 0E+1 -> 0 +bool0867 isnormal -0E+1 -> 0 +bool0868 isnormal 0E+2 -> 0 +bool0869 isnormal -0E+2 -> 0 +bool0870 isnormal 0E+3 -> 0 +bool0871 isnormal -0E+3 -> 0 +bool0872 isnormal 0E+6 -> 0 +bool0873 isnormal -0E+6 -> 0 +bool0874 isnormal 0E+100 -> 0 +bool0875 isnormal -0E+100 -> 0 +bool0876 isnormal 0E+990 -> 0 +bool0877 isnormal -0E+990 -> 0 +bool0878 isnormal 0E+991 -> 0 +bool0879 isnormal -0E+991 -> 0 +bool0880 isnormal 0E+992 -> 0 +bool0881 isnormal -0E+992 -> 0 +bool0882 isnormal 0E+998 -> 0 +bool0883 isnormal -0E+998 -> 0 +bool0884 isnormal 0E+999 -> 0 +bool0885 isnormal -0E+999 -> 0 +bool0886 isnormal 0E+1000 -> 0 +bool0887 isnormal -0E+1000 -> 0 +bool0888 isnormal 0E+2000 -> 0 +bool0889 isnormal -0E+2000 -> 0 +bool0890 isnormal 1E-2000 -> 0 +bool0891 isnormal -1E-2000 -> 0 +bool0892 isnormal 1E-1008 -> 0 +bool0893 isnormal -1E-1008 -> 0 +bool0894 isnormal 1E-1007 -> 0 +bool0895 isnormal -1E-1007 -> 0 +bool0896 isnormal 1E-1006 -> 0 +bool0897 isnormal -1E-1006 -> 0 +bool0898 isnormal 1E-1000 -> 0 +bool0899 isnormal -1E-1000 -> 0 +bool0900 isnormal 1E-999 -> 1 +bool0901 isnormal -1E-999 -> 1 +bool0902 isnormal 1E-998 -> 1 +bool0903 isnormal -1E-998 -> 1 +bool0904 isnormal 1E-100 -> 1 +bool0905 isnormal -1E-100 -> 1 +bool0906 isnormal 0.000001 -> 1 +bool0907 isnormal -0.000001 -> 1 +bool0908 isnormal 0.001 -> 1 +bool0909 isnormal -0.001 -> 1 +bool0910 isnormal 0.01 -> 1 +bool0911 isnormal -0.01 -> 1 +bool0912 isnormal 0.1 -> 1 +bool0913 isnormal -0.1 -> 1 +bool0914 isnormal 1 -> 1 +bool0915 isnormal -1 -> 1 +bool0916 isnormal 1E+1 -> 1 +bool0917 isnormal -1E+1 -> 1 +bool0918 isnormal 1E+2 -> 1 +bool0919 isnormal -1E+2 -> 1 +bool0920 isnormal 1E+3 -> 1 +bool0921 isnormal -1E+3 -> 1 +bool0922 isnormal 1E+6 -> 1 +bool0923 isnormal -1E+6 -> 1 +bool0924 isnormal 1E+100 -> 1 +bool0925 isnormal -1E+100 -> 1 +bool0926 isnormal 1E+990 -> 1 +bool0927 isnormal -1E+990 -> 1 +bool0928 isnormal 1E+991 -> 1 +bool0929 isnormal -1E+991 -> 1 +bool0930 isnormal 1E+992 -> 1 +bool0931 isnormal -1E+992 -> 1 +bool0932 isnormal 1E+998 -> 1 +bool0933 isnormal -1E+998 -> 1 +bool0934 isnormal 1E+999 -> 1 +bool0935 isnormal -1E+999 -> 1 +bool0936 isnormal 1E+1000 -> 0 +bool0937 isnormal -1E+1000 -> 0 +bool0938 isnormal 1E+2000 -> 0 +bool0939 isnormal -1E+2000 -> 0 +bool0940 isnormal 9E-2000 -> 0 +bool0941 isnormal -9E-2000 -> 0 +bool0942 isnormal 9E-1008 -> 0 +bool0943 isnormal -9E-1008 -> 0 +bool0944 isnormal 9E-1007 -> 0 +bool0945 isnormal -9E-1007 -> 0 +bool0946 isnormal 9E-1006 -> 0 +bool0947 isnormal -9E-1006 -> 0 +bool0948 isnormal 9E-1000 -> 0 +bool0949 isnormal -9E-1000 -> 0 +bool0950 isnormal 9E-999 -> 1 +bool0951 isnormal -9E-999 -> 1 +bool0952 isnormal 9E-998 -> 1 +bool0953 isnormal -9E-998 -> 1 +bool0954 isnormal 9E-100 -> 1 +bool0955 isnormal -9E-100 -> 1 +bool0956 isnormal 0.000009 -> 1 +bool0957 isnormal -0.000009 -> 1 +bool0958 isnormal 0.009 -> 1 +bool0959 isnormal -0.009 -> 1 +bool0960 isnormal 0.09 -> 1 +bool0961 isnormal -0.09 -> 1 +bool0962 isnormal 0.9 -> 1 +bool0963 isnormal -0.9 -> 1 +bool0964 isnormal 9 -> 1 +bool0965 isnormal -9 -> 1 +bool0966 isnormal 9E+1 -> 1 +bool0967 isnormal -9E+1 -> 1 +bool0968 isnormal 9E+2 -> 1 +bool0969 isnormal -9E+2 -> 1 +bool0970 isnormal 9E+3 -> 1 +bool0971 isnormal -9E+3 -> 1 +bool0972 isnormal 9E+6 -> 1 +bool0973 isnormal -9E+6 -> 1 +bool0974 isnormal 9E+100 -> 1 +bool0975 isnormal -9E+100 -> 1 +bool0976 isnormal 9E+990 -> 1 +bool0977 isnormal -9E+990 -> 1 +bool0978 isnormal 9E+991 -> 1 +bool0979 isnormal -9E+991 -> 1 +bool0980 isnormal 9E+992 -> 1 +bool0981 isnormal -9E+992 -> 1 +bool0982 isnormal 9E+998 -> 1 +bool0983 isnormal -9E+998 -> 1 +bool0984 isnormal 9E+999 -> 1 +bool0985 isnormal -9E+999 -> 1 +bool0986 isnormal 9E+1000 -> 0 +bool0987 isnormal -9E+1000 -> 0 +bool0988 isnormal 9E+2000 -> 0 +bool0989 isnormal -9E+2000 -> 0 +bool0990 isnormal 9.99999999E-2000 -> 0 +bool0991 isnormal -9.99999999E-2000 -> 0 +bool0992 isnormal 9.99999999E-1008 -> 0 +bool0993 isnormal -9.99999999E-1008 -> 0 +bool0994 isnormal 9.99999999E-1007 -> 0 +bool0995 isnormal -9.99999999E-1007 -> 0 +bool0996 isnormal 9.99999999E-1006 -> 0 +bool0997 isnormal -9.99999999E-1006 -> 0 +bool0998 isnormal 9.99999999E-1000 -> 0 +bool0999 isnormal -9.99999999E-1000 -> 0 +bool1000 isnormal 9.99999999E-999 -> 1 +bool1001 isnormal -9.99999999E-999 -> 1 +bool1002 isnormal 9.99999999E-998 -> 1 +bool1003 isnormal -9.99999999E-998 -> 1 +bool1004 isnormal 9.99999999E-100 -> 1 +bool1005 isnormal -9.99999999E-100 -> 1 +bool1006 isnormal 0.00000999999999 -> 1 +bool1007 isnormal -0.00000999999999 -> 1 +bool1008 isnormal 0.00999999999 -> 1 +bool1009 isnormal -0.00999999999 -> 1 +bool1010 isnormal 0.0999999999 -> 1 +bool1011 isnormal -0.0999999999 -> 1 +bool1012 isnormal 0.999999999 -> 1 +bool1013 isnormal -0.999999999 -> 1 +bool1014 isnormal 9.99999999 -> 1 +bool1015 isnormal -9.99999999 -> 1 +bool1016 isnormal 99.9999999 -> 1 +bool1017 isnormal -99.9999999 -> 1 +bool1018 isnormal 999.999999 -> 1 +bool1019 isnormal -999.999999 -> 1 +bool1020 isnormal 9999.99999 -> 1 +bool1021 isnormal -9999.99999 -> 1 +bool1022 isnormal 9999999.99 -> 1 +bool1023 isnormal -9999999.99 -> 1 +bool1024 isnormal 9.99999999E+100 -> 1 +bool1025 isnormal -9.99999999E+100 -> 1 +bool1026 isnormal 9.99999999E+990 -> 1 +bool1027 isnormal -9.99999999E+990 -> 1 +bool1028 isnormal 9.99999999E+991 -> 1 +bool1029 isnormal -9.99999999E+991 -> 1 +bool1030 isnormal 9.99999999E+992 -> 1 +bool1031 isnormal -9.99999999E+992 -> 1 +bool1032 isnormal 9.99999999E+998 -> 1 +bool1033 isnormal -9.99999999E+998 -> 1 +bool1034 isnormal 9.99999999E+999 -> 1 +bool1035 isnormal -9.99999999E+999 -> 1 +bool1036 isnormal 9.99999999E+1000 -> 0 +bool1037 isnormal -9.99999999E+1000 -> 0 +bool1038 isnormal 9.99999999E+2000 -> 0 +bool1039 isnormal -9.99999999E+2000 -> 0 +bool1040 isnormal Infinity -> 0 +bool1041 isnormal -Infinity -> 0 +bool1042 isnormal NaN -> 0 +bool1043 isnormal -NaN -> 0 +bool1044 isnormal NaN123 -> 0 +bool1045 isnormal -NaN123 -> 0 +bool1046 isnormal sNaN -> 0 +bool1047 isnormal -sNaN -> 0 +bool1048 isnormal sNaN123 -> 0 +bool1049 isnormal -sNaN123 -> 0 +bool1050 isqnan 0E-2000 -> 0 +bool1051 isqnan -0E-2000 -> 0 +bool1052 isqnan 0E-1008 -> 0 +bool1053 isqnan -0E-1008 -> 0 +bool1054 isqnan 0E-1007 -> 0 +bool1055 isqnan -0E-1007 -> 0 +bool1056 isqnan 0E-1006 -> 0 +bool1057 isqnan -0E-1006 -> 0 +bool1058 isqnan 0E-1000 -> 0 +bool1059 isqnan -0E-1000 -> 0 +bool1060 isqnan 0E-999 -> 0 +bool1061 isqnan -0E-999 -> 0 +bool1062 isqnan 0E-998 -> 0 +bool1063 isqnan -0E-998 -> 0 +bool1064 isqnan 0E-100 -> 0 +bool1065 isqnan -0E-100 -> 0 +bool1066 isqnan 0.000000 -> 0 +bool1067 isqnan -0.000000 -> 0 +bool1068 isqnan 0.000 -> 0 +bool1069 isqnan -0.000 -> 0 +bool1070 isqnan 0.00 -> 0 +bool1071 isqnan -0.00 -> 0 +bool1072 isqnan 0.0 -> 0 +bool1073 isqnan -0.0 -> 0 +bool1074 isqnan 0 -> 0 +bool1075 isqnan -0 -> 0 +bool1076 isqnan 0E+1 -> 0 +bool1077 isqnan -0E+1 -> 0 +bool1078 isqnan 0E+2 -> 0 +bool1079 isqnan -0E+2 -> 0 +bool1080 isqnan 0E+3 -> 0 +bool1081 isqnan -0E+3 -> 0 +bool1082 isqnan 0E+6 -> 0 +bool1083 isqnan -0E+6 -> 0 +bool1084 isqnan 0E+100 -> 0 +bool1085 isqnan -0E+100 -> 0 +bool1086 isqnan 0E+990 -> 0 +bool1087 isqnan -0E+990 -> 0 +bool1088 isqnan 0E+991 -> 0 +bool1089 isqnan -0E+991 -> 0 +bool1090 isqnan 0E+992 -> 0 +bool1091 isqnan -0E+992 -> 0 +bool1092 isqnan 0E+998 -> 0 +bool1093 isqnan -0E+998 -> 0 +bool1094 isqnan 0E+999 -> 0 +bool1095 isqnan -0E+999 -> 0 +bool1096 isqnan 0E+1000 -> 0 +bool1097 isqnan -0E+1000 -> 0 +bool1098 isqnan 0E+2000 -> 0 +bool1099 isqnan -0E+2000 -> 0 +bool1100 isqnan 1E-2000 -> 0 +bool1101 isqnan -1E-2000 -> 0 +bool1102 isqnan 1E-1008 -> 0 +bool1103 isqnan -1E-1008 -> 0 +bool1104 isqnan 1E-1007 -> 0 +bool1105 isqnan -1E-1007 -> 0 +bool1106 isqnan 1E-1006 -> 0 +bool1107 isqnan -1E-1006 -> 0 +bool1108 isqnan 1E-1000 -> 0 +bool1109 isqnan -1E-1000 -> 0 +bool1110 isqnan 1E-999 -> 0 +bool1111 isqnan -1E-999 -> 0 +bool1112 isqnan 1E-998 -> 0 +bool1113 isqnan -1E-998 -> 0 +bool1114 isqnan 1E-100 -> 0 +bool1115 isqnan -1E-100 -> 0 +bool1116 isqnan 0.000001 -> 0 +bool1117 isqnan -0.000001 -> 0 +bool1118 isqnan 0.001 -> 0 +bool1119 isqnan -0.001 -> 0 +bool1120 isqnan 0.01 -> 0 +bool1121 isqnan -0.01 -> 0 +bool1122 isqnan 0.1 -> 0 +bool1123 isqnan -0.1 -> 0 +bool1124 isqnan 1 -> 0 +bool1125 isqnan -1 -> 0 +bool1126 isqnan 1E+1 -> 0 +bool1127 isqnan -1E+1 -> 0 +bool1128 isqnan 1E+2 -> 0 +bool1129 isqnan -1E+2 -> 0 +bool1130 isqnan 1E+3 -> 0 +bool1131 isqnan -1E+3 -> 0 +bool1132 isqnan 1E+6 -> 0 +bool1133 isqnan -1E+6 -> 0 +bool1134 isqnan 1E+100 -> 0 +bool1135 isqnan -1E+100 -> 0 +bool1136 isqnan 1E+990 -> 0 +bool1137 isqnan -1E+990 -> 0 +bool1138 isqnan 1E+991 -> 0 +bool1139 isqnan -1E+991 -> 0 +bool1140 isqnan 1E+992 -> 0 +bool1141 isqnan -1E+992 -> 0 +bool1142 isqnan 1E+998 -> 0 +bool1143 isqnan -1E+998 -> 0 +bool1144 isqnan 1E+999 -> 0 +bool1145 isqnan -1E+999 -> 0 +bool1146 isqnan 1E+1000 -> 0 +bool1147 isqnan -1E+1000 -> 0 +bool1148 isqnan 1E+2000 -> 0 +bool1149 isqnan -1E+2000 -> 0 +bool1150 isqnan 9E-2000 -> 0 +bool1151 isqnan -9E-2000 -> 0 +bool1152 isqnan 9E-1008 -> 0 +bool1153 isqnan -9E-1008 -> 0 +bool1154 isqnan 9E-1007 -> 0 +bool1155 isqnan -9E-1007 -> 0 +bool1156 isqnan 9E-1006 -> 0 +bool1157 isqnan -9E-1006 -> 0 +bool1158 isqnan 9E-1000 -> 0 +bool1159 isqnan -9E-1000 -> 0 +bool1160 isqnan 9E-999 -> 0 +bool1161 isqnan -9E-999 -> 0 +bool1162 isqnan 9E-998 -> 0 +bool1163 isqnan -9E-998 -> 0 +bool1164 isqnan 9E-100 -> 0 +bool1165 isqnan -9E-100 -> 0 +bool1166 isqnan 0.000009 -> 0 +bool1167 isqnan -0.000009 -> 0 +bool1168 isqnan 0.009 -> 0 +bool1169 isqnan -0.009 -> 0 +bool1170 isqnan 0.09 -> 0 +bool1171 isqnan -0.09 -> 0 +bool1172 isqnan 0.9 -> 0 +bool1173 isqnan -0.9 -> 0 +bool1174 isqnan 9 -> 0 +bool1175 isqnan -9 -> 0 +bool1176 isqnan 9E+1 -> 0 +bool1177 isqnan -9E+1 -> 0 +bool1178 isqnan 9E+2 -> 0 +bool1179 isqnan -9E+2 -> 0 +bool1180 isqnan 9E+3 -> 0 +bool1181 isqnan -9E+3 -> 0 +bool1182 isqnan 9E+6 -> 0 +bool1183 isqnan -9E+6 -> 0 +bool1184 isqnan 9E+100 -> 0 +bool1185 isqnan -9E+100 -> 0 +bool1186 isqnan 9E+990 -> 0 +bool1187 isqnan -9E+990 -> 0 +bool1188 isqnan 9E+991 -> 0 +bool1189 isqnan -9E+991 -> 0 +bool1190 isqnan 9E+992 -> 0 +bool1191 isqnan -9E+992 -> 0 +bool1192 isqnan 9E+998 -> 0 +bool1193 isqnan -9E+998 -> 0 +bool1194 isqnan 9E+999 -> 0 +bool1195 isqnan -9E+999 -> 0 +bool1196 isqnan 9E+1000 -> 0 +bool1197 isqnan -9E+1000 -> 0 +bool1198 isqnan 9E+2000 -> 0 +bool1199 isqnan -9E+2000 -> 0 +bool1200 isqnan 9.99999999E-2000 -> 0 +bool1201 isqnan -9.99999999E-2000 -> 0 +bool1202 isqnan 9.99999999E-1008 -> 0 +bool1203 isqnan -9.99999999E-1008 -> 0 +bool1204 isqnan 9.99999999E-1007 -> 0 +bool1205 isqnan -9.99999999E-1007 -> 0 +bool1206 isqnan 9.99999999E-1006 -> 0 +bool1207 isqnan -9.99999999E-1006 -> 0 +bool1208 isqnan 9.99999999E-1000 -> 0 +bool1209 isqnan -9.99999999E-1000 -> 0 +bool1210 isqnan 9.99999999E-999 -> 0 +bool1211 isqnan -9.99999999E-999 -> 0 +bool1212 isqnan 9.99999999E-998 -> 0 +bool1213 isqnan -9.99999999E-998 -> 0 +bool1214 isqnan 9.99999999E-100 -> 0 +bool1215 isqnan -9.99999999E-100 -> 0 +bool1216 isqnan 0.00000999999999 -> 0 +bool1217 isqnan -0.00000999999999 -> 0 +bool1218 isqnan 0.00999999999 -> 0 +bool1219 isqnan -0.00999999999 -> 0 +bool1220 isqnan 0.0999999999 -> 0 +bool1221 isqnan -0.0999999999 -> 0 +bool1222 isqnan 0.999999999 -> 0 +bool1223 isqnan -0.999999999 -> 0 +bool1224 isqnan 9.99999999 -> 0 +bool1225 isqnan -9.99999999 -> 0 +bool1226 isqnan 99.9999999 -> 0 +bool1227 isqnan -99.9999999 -> 0 +bool1228 isqnan 999.999999 -> 0 +bool1229 isqnan -999.999999 -> 0 +bool1230 isqnan 9999.99999 -> 0 +bool1231 isqnan -9999.99999 -> 0 +bool1232 isqnan 9999999.99 -> 0 +bool1233 isqnan -9999999.99 -> 0 +bool1234 isqnan 9.99999999E+100 -> 0 +bool1235 isqnan -9.99999999E+100 -> 0 +bool1236 isqnan 9.99999999E+990 -> 0 +bool1237 isqnan -9.99999999E+990 -> 0 +bool1238 isqnan 9.99999999E+991 -> 0 +bool1239 isqnan -9.99999999E+991 -> 0 +bool1240 isqnan 9.99999999E+992 -> 0 +bool1241 isqnan -9.99999999E+992 -> 0 +bool1242 isqnan 9.99999999E+998 -> 0 +bool1243 isqnan -9.99999999E+998 -> 0 +bool1244 isqnan 9.99999999E+999 -> 0 +bool1245 isqnan -9.99999999E+999 -> 0 +bool1246 isqnan 9.99999999E+1000 -> 0 +bool1247 isqnan -9.99999999E+1000 -> 0 +bool1248 isqnan 9.99999999E+2000 -> 0 +bool1249 isqnan -9.99999999E+2000 -> 0 +bool1250 isqnan Infinity -> 0 +bool1251 isqnan -Infinity -> 0 +bool1252 isqnan NaN -> 1 +bool1253 isqnan -NaN -> 1 +bool1254 isqnan NaN123 -> 1 +bool1255 isqnan -NaN123 -> 1 +bool1256 isqnan sNaN -> 0 +bool1257 isqnan -sNaN -> 0 +bool1258 isqnan sNaN123 -> 0 +bool1259 isqnan -sNaN123 -> 0 +bool1260 issigned 0E-2000 -> 0 +bool1261 issigned -0E-2000 -> 1 +bool1262 issigned 0E-1008 -> 0 +bool1263 issigned -0E-1008 -> 1 +bool1264 issigned 0E-1007 -> 0 +bool1265 issigned -0E-1007 -> 1 +bool1266 issigned 0E-1006 -> 0 +bool1267 issigned -0E-1006 -> 1 +bool1268 issigned 0E-1000 -> 0 +bool1269 issigned -0E-1000 -> 1 +bool1270 issigned 0E-999 -> 0 +bool1271 issigned -0E-999 -> 1 +bool1272 issigned 0E-998 -> 0 +bool1273 issigned -0E-998 -> 1 +bool1274 issigned 0E-100 -> 0 +bool1275 issigned -0E-100 -> 1 +bool1276 issigned 0.000000 -> 0 +bool1277 issigned -0.000000 -> 1 +bool1278 issigned 0.000 -> 0 +bool1279 issigned -0.000 -> 1 +bool1280 issigned 0.00 -> 0 +bool1281 issigned -0.00 -> 1 +bool1282 issigned 0.0 -> 0 +bool1283 issigned -0.0 -> 1 +bool1284 issigned 0 -> 0 +bool1285 issigned -0 -> 1 +bool1286 issigned 0E+1 -> 0 +bool1287 issigned -0E+1 -> 1 +bool1288 issigned 0E+2 -> 0 +bool1289 issigned -0E+2 -> 1 +bool1290 issigned 0E+3 -> 0 +bool1291 issigned -0E+3 -> 1 +bool1292 issigned 0E+6 -> 0 +bool1293 issigned -0E+6 -> 1 +bool1294 issigned 0E+100 -> 0 +bool1295 issigned -0E+100 -> 1 +bool1296 issigned 0E+990 -> 0 +bool1297 issigned -0E+990 -> 1 +bool1298 issigned 0E+991 -> 0 +bool1299 issigned -0E+991 -> 1 +bool1300 issigned 0E+992 -> 0 +bool1301 issigned -0E+992 -> 1 +bool1302 issigned 0E+998 -> 0 +bool1303 issigned -0E+998 -> 1 +bool1304 issigned 0E+999 -> 0 +bool1305 issigned -0E+999 -> 1 +bool1306 issigned 0E+1000 -> 0 +bool1307 issigned -0E+1000 -> 1 +bool1308 issigned 0E+2000 -> 0 +bool1309 issigned -0E+2000 -> 1 +bool1310 issigned 1E-2000 -> 0 +bool1311 issigned -1E-2000 -> 1 +bool1312 issigned 1E-1008 -> 0 +bool1313 issigned -1E-1008 -> 1 +bool1314 issigned 1E-1007 -> 0 +bool1315 issigned -1E-1007 -> 1 +bool1316 issigned 1E-1006 -> 0 +bool1317 issigned -1E-1006 -> 1 +bool1318 issigned 1E-1000 -> 0 +bool1319 issigned -1E-1000 -> 1 +bool1320 issigned 1E-999 -> 0 +bool1321 issigned -1E-999 -> 1 +bool1322 issigned 1E-998 -> 0 +bool1323 issigned -1E-998 -> 1 +bool1324 issigned 1E-100 -> 0 +bool1325 issigned -1E-100 -> 1 +bool1326 issigned 0.000001 -> 0 +bool1327 issigned -0.000001 -> 1 +bool1328 issigned 0.001 -> 0 +bool1329 issigned -0.001 -> 1 +bool1330 issigned 0.01 -> 0 +bool1331 issigned -0.01 -> 1 +bool1332 issigned 0.1 -> 0 +bool1333 issigned -0.1 -> 1 +bool1334 issigned 1 -> 0 +bool1335 issigned -1 -> 1 +bool1336 issigned 1E+1 -> 0 +bool1337 issigned -1E+1 -> 1 +bool1338 issigned 1E+2 -> 0 +bool1339 issigned -1E+2 -> 1 +bool1340 issigned 1E+3 -> 0 +bool1341 issigned -1E+3 -> 1 +bool1342 issigned 1E+6 -> 0 +bool1343 issigned -1E+6 -> 1 +bool1344 issigned 1E+100 -> 0 +bool1345 issigned -1E+100 -> 1 +bool1346 issigned 1E+990 -> 0 +bool1347 issigned -1E+990 -> 1 +bool1348 issigned 1E+991 -> 0 +bool1349 issigned -1E+991 -> 1 +bool1350 issigned 1E+992 -> 0 +bool1351 issigned -1E+992 -> 1 +bool1352 issigned 1E+998 -> 0 +bool1353 issigned -1E+998 -> 1 +bool1354 issigned 1E+999 -> 0 +bool1355 issigned -1E+999 -> 1 +bool1356 issigned 1E+1000 -> 0 +bool1357 issigned -1E+1000 -> 1 +bool1358 issigned 1E+2000 -> 0 +bool1359 issigned -1E+2000 -> 1 +bool1360 issigned 9E-2000 -> 0 +bool1361 issigned -9E-2000 -> 1 +bool1362 issigned 9E-1008 -> 0 +bool1363 issigned -9E-1008 -> 1 +bool1364 issigned 9E-1007 -> 0 +bool1365 issigned -9E-1007 -> 1 +bool1366 issigned 9E-1006 -> 0 +bool1367 issigned -9E-1006 -> 1 +bool1368 issigned 9E-1000 -> 0 +bool1369 issigned -9E-1000 -> 1 +bool1370 issigned 9E-999 -> 0 +bool1371 issigned -9E-999 -> 1 +bool1372 issigned 9E-998 -> 0 +bool1373 issigned -9E-998 -> 1 +bool1374 issigned 9E-100 -> 0 +bool1375 issigned -9E-100 -> 1 +bool1376 issigned 0.000009 -> 0 +bool1377 issigned -0.000009 -> 1 +bool1378 issigned 0.009 -> 0 +bool1379 issigned -0.009 -> 1 +bool1380 issigned 0.09 -> 0 +bool1381 issigned -0.09 -> 1 +bool1382 issigned 0.9 -> 0 +bool1383 issigned -0.9 -> 1 +bool1384 issigned 9 -> 0 +bool1385 issigned -9 -> 1 +bool1386 issigned 9E+1 -> 0 +bool1387 issigned -9E+1 -> 1 +bool1388 issigned 9E+2 -> 0 +bool1389 issigned -9E+2 -> 1 +bool1390 issigned 9E+3 -> 0 +bool1391 issigned -9E+3 -> 1 +bool1392 issigned 9E+6 -> 0 +bool1393 issigned -9E+6 -> 1 +bool1394 issigned 9E+100 -> 0 +bool1395 issigned -9E+100 -> 1 +bool1396 issigned 9E+990 -> 0 +bool1397 issigned -9E+990 -> 1 +bool1398 issigned 9E+991 -> 0 +bool1399 issigned -9E+991 -> 1 +bool1400 issigned 9E+992 -> 0 +bool1401 issigned -9E+992 -> 1 +bool1402 issigned 9E+998 -> 0 +bool1403 issigned -9E+998 -> 1 +bool1404 issigned 9E+999 -> 0 +bool1405 issigned -9E+999 -> 1 +bool1406 issigned 9E+1000 -> 0 +bool1407 issigned -9E+1000 -> 1 +bool1408 issigned 9E+2000 -> 0 +bool1409 issigned -9E+2000 -> 1 +bool1410 issigned 9.99999999E-2000 -> 0 +bool1411 issigned -9.99999999E-2000 -> 1 +bool1412 issigned 9.99999999E-1008 -> 0 +bool1413 issigned -9.99999999E-1008 -> 1 +bool1414 issigned 9.99999999E-1007 -> 0 +bool1415 issigned -9.99999999E-1007 -> 1 +bool1416 issigned 9.99999999E-1006 -> 0 +bool1417 issigned -9.99999999E-1006 -> 1 +bool1418 issigned 9.99999999E-1000 -> 0 +bool1419 issigned -9.99999999E-1000 -> 1 +bool1420 issigned 9.99999999E-999 -> 0 +bool1421 issigned -9.99999999E-999 -> 1 +bool1422 issigned 9.99999999E-998 -> 0 +bool1423 issigned -9.99999999E-998 -> 1 +bool1424 issigned 9.99999999E-100 -> 0 +bool1425 issigned -9.99999999E-100 -> 1 +bool1426 issigned 0.00000999999999 -> 0 +bool1427 issigned -0.00000999999999 -> 1 +bool1428 issigned 0.00999999999 -> 0 +bool1429 issigned -0.00999999999 -> 1 +bool1430 issigned 0.0999999999 -> 0 +bool1431 issigned -0.0999999999 -> 1 +bool1432 issigned 0.999999999 -> 0 +bool1433 issigned -0.999999999 -> 1 +bool1434 issigned 9.99999999 -> 0 +bool1435 issigned -9.99999999 -> 1 +bool1436 issigned 99.9999999 -> 0 +bool1437 issigned -99.9999999 -> 1 +bool1438 issigned 999.999999 -> 0 +bool1439 issigned -999.999999 -> 1 +bool1440 issigned 9999.99999 -> 0 +bool1441 issigned -9999.99999 -> 1 +bool1442 issigned 9999999.99 -> 0 +bool1443 issigned -9999999.99 -> 1 +bool1444 issigned 9.99999999E+100 -> 0 +bool1445 issigned -9.99999999E+100 -> 1 +bool1446 issigned 9.99999999E+990 -> 0 +bool1447 issigned -9.99999999E+990 -> 1 +bool1448 issigned 9.99999999E+991 -> 0 +bool1449 issigned -9.99999999E+991 -> 1 +bool1450 issigned 9.99999999E+992 -> 0 +bool1451 issigned -9.99999999E+992 -> 1 +bool1452 issigned 9.99999999E+998 -> 0 +bool1453 issigned -9.99999999E+998 -> 1 +bool1454 issigned 9.99999999E+999 -> 0 +bool1455 issigned -9.99999999E+999 -> 1 +bool1456 issigned 9.99999999E+1000 -> 0 +bool1457 issigned -9.99999999E+1000 -> 1 +bool1458 issigned 9.99999999E+2000 -> 0 +bool1459 issigned -9.99999999E+2000 -> 1 +bool1460 issigned Infinity -> 0 +bool1461 issigned -Infinity -> 1 +bool1462 issigned NaN -> 0 +bool1463 issigned -NaN -> 1 +bool1464 issigned NaN123 -> 0 +bool1465 issigned -NaN123 -> 1 +bool1466 issigned sNaN -> 0 +bool1467 issigned -sNaN -> 1 +bool1468 issigned sNaN123 -> 0 +bool1469 issigned -sNaN123 -> 1 +bool1470 issnan 0E-2000 -> 0 +bool1471 issnan -0E-2000 -> 0 +bool1472 issnan 0E-1008 -> 0 +bool1473 issnan -0E-1008 -> 0 +bool1474 issnan 0E-1007 -> 0 +bool1475 issnan -0E-1007 -> 0 +bool1476 issnan 0E-1006 -> 0 +bool1477 issnan -0E-1006 -> 0 +bool1478 issnan 0E-1000 -> 0 +bool1479 issnan -0E-1000 -> 0 +bool1480 issnan 0E-999 -> 0 +bool1481 issnan -0E-999 -> 0 +bool1482 issnan 0E-998 -> 0 +bool1483 issnan -0E-998 -> 0 +bool1484 issnan 0E-100 -> 0 +bool1485 issnan -0E-100 -> 0 +bool1486 issnan 0.000000 -> 0 +bool1487 issnan -0.000000 -> 0 +bool1488 issnan 0.000 -> 0 +bool1489 issnan -0.000 -> 0 +bool1490 issnan 0.00 -> 0 +bool1491 issnan -0.00 -> 0 +bool1492 issnan 0.0 -> 0 +bool1493 issnan -0.0 -> 0 +bool1494 issnan 0 -> 0 +bool1495 issnan -0 -> 0 +bool1496 issnan 0E+1 -> 0 +bool1497 issnan -0E+1 -> 0 +bool1498 issnan 0E+2 -> 0 +bool1499 issnan -0E+2 -> 0 +bool1500 issnan 0E+3 -> 0 +bool1501 issnan -0E+3 -> 0 +bool1502 issnan 0E+6 -> 0 +bool1503 issnan -0E+6 -> 0 +bool1504 issnan 0E+100 -> 0 +bool1505 issnan -0E+100 -> 0 +bool1506 issnan 0E+990 -> 0 +bool1507 issnan -0E+990 -> 0 +bool1508 issnan 0E+991 -> 0 +bool1509 issnan -0E+991 -> 0 +bool1510 issnan 0E+992 -> 0 +bool1511 issnan -0E+992 -> 0 +bool1512 issnan 0E+998 -> 0 +bool1513 issnan -0E+998 -> 0 +bool1514 issnan 0E+999 -> 0 +bool1515 issnan -0E+999 -> 0 +bool1516 issnan 0E+1000 -> 0 +bool1517 issnan -0E+1000 -> 0 +bool1518 issnan 0E+2000 -> 0 +bool1519 issnan -0E+2000 -> 0 +bool1520 issnan 1E-2000 -> 0 +bool1521 issnan -1E-2000 -> 0 +bool1522 issnan 1E-1008 -> 0 +bool1523 issnan -1E-1008 -> 0 +bool1524 issnan 1E-1007 -> 0 +bool1525 issnan -1E-1007 -> 0 +bool1526 issnan 1E-1006 -> 0 +bool1527 issnan -1E-1006 -> 0 +bool1528 issnan 1E-1000 -> 0 +bool1529 issnan -1E-1000 -> 0 +bool1530 issnan 1E-999 -> 0 +bool1531 issnan -1E-999 -> 0 +bool1532 issnan 1E-998 -> 0 +bool1533 issnan -1E-998 -> 0 +bool1534 issnan 1E-100 -> 0 +bool1535 issnan -1E-100 -> 0 +bool1536 issnan 0.000001 -> 0 +bool1537 issnan -0.000001 -> 0 +bool1538 issnan 0.001 -> 0 +bool1539 issnan -0.001 -> 0 +bool1540 issnan 0.01 -> 0 +bool1541 issnan -0.01 -> 0 +bool1542 issnan 0.1 -> 0 +bool1543 issnan -0.1 -> 0 +bool1544 issnan 1 -> 0 +bool1545 issnan -1 -> 0 +bool1546 issnan 1E+1 -> 0 +bool1547 issnan -1E+1 -> 0 +bool1548 issnan 1E+2 -> 0 +bool1549 issnan -1E+2 -> 0 +bool1550 issnan 1E+3 -> 0 +bool1551 issnan -1E+3 -> 0 +bool1552 issnan 1E+6 -> 0 +bool1553 issnan -1E+6 -> 0 +bool1554 issnan 1E+100 -> 0 +bool1555 issnan -1E+100 -> 0 +bool1556 issnan 1E+990 -> 0 +bool1557 issnan -1E+990 -> 0 +bool1558 issnan 1E+991 -> 0 +bool1559 issnan -1E+991 -> 0 +bool1560 issnan 1E+992 -> 0 +bool1561 issnan -1E+992 -> 0 +bool1562 issnan 1E+998 -> 0 +bool1563 issnan -1E+998 -> 0 +bool1564 issnan 1E+999 -> 0 +bool1565 issnan -1E+999 -> 0 +bool1566 issnan 1E+1000 -> 0 +bool1567 issnan -1E+1000 -> 0 +bool1568 issnan 1E+2000 -> 0 +bool1569 issnan -1E+2000 -> 0 +bool1570 issnan 9E-2000 -> 0 +bool1571 issnan -9E-2000 -> 0 +bool1572 issnan 9E-1008 -> 0 +bool1573 issnan -9E-1008 -> 0 +bool1574 issnan 9E-1007 -> 0 +bool1575 issnan -9E-1007 -> 0 +bool1576 issnan 9E-1006 -> 0 +bool1577 issnan -9E-1006 -> 0 +bool1578 issnan 9E-1000 -> 0 +bool1579 issnan -9E-1000 -> 0 +bool1580 issnan 9E-999 -> 0 +bool1581 issnan -9E-999 -> 0 +bool1582 issnan 9E-998 -> 0 +bool1583 issnan -9E-998 -> 0 +bool1584 issnan 9E-100 -> 0 +bool1585 issnan -9E-100 -> 0 +bool1586 issnan 0.000009 -> 0 +bool1587 issnan -0.000009 -> 0 +bool1588 issnan 0.009 -> 0 +bool1589 issnan -0.009 -> 0 +bool1590 issnan 0.09 -> 0 +bool1591 issnan -0.09 -> 0 +bool1592 issnan 0.9 -> 0 +bool1593 issnan -0.9 -> 0 +bool1594 issnan 9 -> 0 +bool1595 issnan -9 -> 0 +bool1596 issnan 9E+1 -> 0 +bool1597 issnan -9E+1 -> 0 +bool1598 issnan 9E+2 -> 0 +bool1599 issnan -9E+2 -> 0 +bool1600 issnan 9E+3 -> 0 +bool1601 issnan -9E+3 -> 0 +bool1602 issnan 9E+6 -> 0 +bool1603 issnan -9E+6 -> 0 +bool1604 issnan 9E+100 -> 0 +bool1605 issnan -9E+100 -> 0 +bool1606 issnan 9E+990 -> 0 +bool1607 issnan -9E+990 -> 0 +bool1608 issnan 9E+991 -> 0 +bool1609 issnan -9E+991 -> 0 +bool1610 issnan 9E+992 -> 0 +bool1611 issnan -9E+992 -> 0 +bool1612 issnan 9E+998 -> 0 +bool1613 issnan -9E+998 -> 0 +bool1614 issnan 9E+999 -> 0 +bool1615 issnan -9E+999 -> 0 +bool1616 issnan 9E+1000 -> 0 +bool1617 issnan -9E+1000 -> 0 +bool1618 issnan 9E+2000 -> 0 +bool1619 issnan -9E+2000 -> 0 +bool1620 issnan 9.99999999E-2000 -> 0 +bool1621 issnan -9.99999999E-2000 -> 0 +bool1622 issnan 9.99999999E-1008 -> 0 +bool1623 issnan -9.99999999E-1008 -> 0 +bool1624 issnan 9.99999999E-1007 -> 0 +bool1625 issnan -9.99999999E-1007 -> 0 +bool1626 issnan 9.99999999E-1006 -> 0 +bool1627 issnan -9.99999999E-1006 -> 0 +bool1628 issnan 9.99999999E-1000 -> 0 +bool1629 issnan -9.99999999E-1000 -> 0 +bool1630 issnan 9.99999999E-999 -> 0 +bool1631 issnan -9.99999999E-999 -> 0 +bool1632 issnan 9.99999999E-998 -> 0 +bool1633 issnan -9.99999999E-998 -> 0 +bool1634 issnan 9.99999999E-100 -> 0 +bool1635 issnan -9.99999999E-100 -> 0 +bool1636 issnan 0.00000999999999 -> 0 +bool1637 issnan -0.00000999999999 -> 0 +bool1638 issnan 0.00999999999 -> 0 +bool1639 issnan -0.00999999999 -> 0 +bool1640 issnan 0.0999999999 -> 0 +bool1641 issnan -0.0999999999 -> 0 +bool1642 issnan 0.999999999 -> 0 +bool1643 issnan -0.999999999 -> 0 +bool1644 issnan 9.99999999 -> 0 +bool1645 issnan -9.99999999 -> 0 +bool1646 issnan 99.9999999 -> 0 +bool1647 issnan -99.9999999 -> 0 +bool1648 issnan 999.999999 -> 0 +bool1649 issnan -999.999999 -> 0 +bool1650 issnan 9999.99999 -> 0 +bool1651 issnan -9999.99999 -> 0 +bool1652 issnan 9999999.99 -> 0 +bool1653 issnan -9999999.99 -> 0 +bool1654 issnan 9.99999999E+100 -> 0 +bool1655 issnan -9.99999999E+100 -> 0 +bool1656 issnan 9.99999999E+990 -> 0 +bool1657 issnan -9.99999999E+990 -> 0 +bool1658 issnan 9.99999999E+991 -> 0 +bool1659 issnan -9.99999999E+991 -> 0 +bool1660 issnan 9.99999999E+992 -> 0 +bool1661 issnan -9.99999999E+992 -> 0 +bool1662 issnan 9.99999999E+998 -> 0 +bool1663 issnan -9.99999999E+998 -> 0 +bool1664 issnan 9.99999999E+999 -> 0 +bool1665 issnan -9.99999999E+999 -> 0 +bool1666 issnan 9.99999999E+1000 -> 0 +bool1667 issnan -9.99999999E+1000 -> 0 +bool1668 issnan 9.99999999E+2000 -> 0 +bool1669 issnan -9.99999999E+2000 -> 0 +bool1670 issnan Infinity -> 0 +bool1671 issnan -Infinity -> 0 +bool1672 issnan NaN -> 0 +bool1673 issnan -NaN -> 0 +bool1674 issnan NaN123 -> 0 +bool1675 issnan -NaN123 -> 0 +bool1676 issnan sNaN -> 1 +bool1677 issnan -sNaN -> 1 +bool1678 issnan sNaN123 -> 1 +bool1679 issnan -sNaN123 -> 1 +bool1680 issubnormal 0E-2000 -> 0 +bool1681 issubnormal -0E-2000 -> 0 +bool1682 issubnormal 0E-1008 -> 0 +bool1683 issubnormal -0E-1008 -> 0 +bool1684 issubnormal 0E-1007 -> 0 +bool1685 issubnormal -0E-1007 -> 0 +bool1686 issubnormal 0E-1006 -> 0 +bool1687 issubnormal -0E-1006 -> 0 +bool1688 issubnormal 0E-1000 -> 0 +bool1689 issubnormal -0E-1000 -> 0 +bool1690 issubnormal 0E-999 -> 0 +bool1691 issubnormal -0E-999 -> 0 +bool1692 issubnormal 0E-998 -> 0 +bool1693 issubnormal -0E-998 -> 0 +bool1694 issubnormal 0E-100 -> 0 +bool1695 issubnormal -0E-100 -> 0 +bool1696 issubnormal 0.000000 -> 0 +bool1697 issubnormal -0.000000 -> 0 +bool1698 issubnormal 0.000 -> 0 +bool1699 issubnormal -0.000 -> 0 +bool1700 issubnormal 0.00 -> 0 +bool1701 issubnormal -0.00 -> 0 +bool1702 issubnormal 0.0 -> 0 +bool1703 issubnormal -0.0 -> 0 +bool1704 issubnormal 0 -> 0 +bool1705 issubnormal -0 -> 0 +bool1706 issubnormal 0E+1 -> 0 +bool1707 issubnormal -0E+1 -> 0 +bool1708 issubnormal 0E+2 -> 0 +bool1709 issubnormal -0E+2 -> 0 +bool1710 issubnormal 0E+3 -> 0 +bool1711 issubnormal -0E+3 -> 0 +bool1712 issubnormal 0E+6 -> 0 +bool1713 issubnormal -0E+6 -> 0 +bool1714 issubnormal 0E+100 -> 0 +bool1715 issubnormal -0E+100 -> 0 +bool1716 issubnormal 0E+990 -> 0 +bool1717 issubnormal -0E+990 -> 0 +bool1718 issubnormal 0E+991 -> 0 +bool1719 issubnormal -0E+991 -> 0 +bool1720 issubnormal 0E+992 -> 0 +bool1721 issubnormal -0E+992 -> 0 +bool1722 issubnormal 0E+998 -> 0 +bool1723 issubnormal -0E+998 -> 0 +bool1724 issubnormal 0E+999 -> 0 +bool1725 issubnormal -0E+999 -> 0 +bool1726 issubnormal 0E+1000 -> 0 +bool1727 issubnormal -0E+1000 -> 0 +bool1728 issubnormal 0E+2000 -> 0 +bool1729 issubnormal -0E+2000 -> 0 +bool1730 issubnormal 1E-2000 -> 1 +bool1731 issubnormal -1E-2000 -> 1 +bool1732 issubnormal 1E-1008 -> 1 +bool1733 issubnormal -1E-1008 -> 1 +bool1734 issubnormal 1E-1007 -> 1 +bool1735 issubnormal -1E-1007 -> 1 +bool1736 issubnormal 1E-1006 -> 1 +bool1737 issubnormal -1E-1006 -> 1 +bool1738 issubnormal 1E-1000 -> 1 +bool1739 issubnormal -1E-1000 -> 1 +bool1740 issubnormal 1E-999 -> 0 +bool1741 issubnormal -1E-999 -> 0 +bool1742 issubnormal 1E-998 -> 0 +bool1743 issubnormal -1E-998 -> 0 +bool1744 issubnormal 1E-100 -> 0 +bool1745 issubnormal -1E-100 -> 0 +bool1746 issubnormal 0.000001 -> 0 +bool1747 issubnormal -0.000001 -> 0 +bool1748 issubnormal 0.001 -> 0 +bool1749 issubnormal -0.001 -> 0 +bool1750 issubnormal 0.01 -> 0 +bool1751 issubnormal -0.01 -> 0 +bool1752 issubnormal 0.1 -> 0 +bool1753 issubnormal -0.1 -> 0 +bool1754 issubnormal 1 -> 0 +bool1755 issubnormal -1 -> 0 +bool1756 issubnormal 1E+1 -> 0 +bool1757 issubnormal -1E+1 -> 0 +bool1758 issubnormal 1E+2 -> 0 +bool1759 issubnormal -1E+2 -> 0 +bool1760 issubnormal 1E+3 -> 0 +bool1761 issubnormal -1E+3 -> 0 +bool1762 issubnormal 1E+6 -> 0 +bool1763 issubnormal -1E+6 -> 0 +bool1764 issubnormal 1E+100 -> 0 +bool1765 issubnormal -1E+100 -> 0 +bool1766 issubnormal 1E+990 -> 0 +bool1767 issubnormal -1E+990 -> 0 +bool1768 issubnormal 1E+991 -> 0 +bool1769 issubnormal -1E+991 -> 0 +bool1770 issubnormal 1E+992 -> 0 +bool1771 issubnormal -1E+992 -> 0 +bool1772 issubnormal 1E+998 -> 0 +bool1773 issubnormal -1E+998 -> 0 +bool1774 issubnormal 1E+999 -> 0 +bool1775 issubnormal -1E+999 -> 0 +bool1776 issubnormal 1E+1000 -> 0 +bool1777 issubnormal -1E+1000 -> 0 +bool1778 issubnormal 1E+2000 -> 0 +bool1779 issubnormal -1E+2000 -> 0 +bool1780 issubnormal 9E-2000 -> 1 +bool1781 issubnormal -9E-2000 -> 1 +bool1782 issubnormal 9E-1008 -> 1 +bool1783 issubnormal -9E-1008 -> 1 +bool1784 issubnormal 9E-1007 -> 1 +bool1785 issubnormal -9E-1007 -> 1 +bool1786 issubnormal 9E-1006 -> 1 +bool1787 issubnormal -9E-1006 -> 1 +bool1788 issubnormal 9E-1000 -> 1 +bool1789 issubnormal -9E-1000 -> 1 +bool1790 issubnormal 9E-999 -> 0 +bool1791 issubnormal -9E-999 -> 0 +bool1792 issubnormal 9E-998 -> 0 +bool1793 issubnormal -9E-998 -> 0 +bool1794 issubnormal 9E-100 -> 0 +bool1795 issubnormal -9E-100 -> 0 +bool1796 issubnormal 0.000009 -> 0 +bool1797 issubnormal -0.000009 -> 0 +bool1798 issubnormal 0.009 -> 0 +bool1799 issubnormal -0.009 -> 0 +bool1800 issubnormal 0.09 -> 0 +bool1801 issubnormal -0.09 -> 0 +bool1802 issubnormal 0.9 -> 0 +bool1803 issubnormal -0.9 -> 0 +bool1804 issubnormal 9 -> 0 +bool1805 issubnormal -9 -> 0 +bool1806 issubnormal 9E+1 -> 0 +bool1807 issubnormal -9E+1 -> 0 +bool1808 issubnormal 9E+2 -> 0 +bool1809 issubnormal -9E+2 -> 0 +bool1810 issubnormal 9E+3 -> 0 +bool1811 issubnormal -9E+3 -> 0 +bool1812 issubnormal 9E+6 -> 0 +bool1813 issubnormal -9E+6 -> 0 +bool1814 issubnormal 9E+100 -> 0 +bool1815 issubnormal -9E+100 -> 0 +bool1816 issubnormal 9E+990 -> 0 +bool1817 issubnormal -9E+990 -> 0 +bool1818 issubnormal 9E+991 -> 0 +bool1819 issubnormal -9E+991 -> 0 +bool1820 issubnormal 9E+992 -> 0 +bool1821 issubnormal -9E+992 -> 0 +bool1822 issubnormal 9E+998 -> 0 +bool1823 issubnormal -9E+998 -> 0 +bool1824 issubnormal 9E+999 -> 0 +bool1825 issubnormal -9E+999 -> 0 +bool1826 issubnormal 9E+1000 -> 0 +bool1827 issubnormal -9E+1000 -> 0 +bool1828 issubnormal 9E+2000 -> 0 +bool1829 issubnormal -9E+2000 -> 0 +bool1830 issubnormal 9.99999999E-2000 -> 1 +bool1831 issubnormal -9.99999999E-2000 -> 1 +bool1832 issubnormal 9.99999999E-1008 -> 1 +bool1833 issubnormal -9.99999999E-1008 -> 1 +bool1834 issubnormal 9.99999999E-1007 -> 1 +bool1835 issubnormal -9.99999999E-1007 -> 1 +bool1836 issubnormal 9.99999999E-1006 -> 1 +bool1837 issubnormal -9.99999999E-1006 -> 1 +bool1838 issubnormal 9.99999999E-1000 -> 1 +bool1839 issubnormal -9.99999999E-1000 -> 1 +bool1840 issubnormal 9.99999999E-999 -> 0 +bool1841 issubnormal -9.99999999E-999 -> 0 +bool1842 issubnormal 9.99999999E-998 -> 0 +bool1843 issubnormal -9.99999999E-998 -> 0 +bool1844 issubnormal 9.99999999E-100 -> 0 +bool1845 issubnormal -9.99999999E-100 -> 0 +bool1846 issubnormal 0.00000999999999 -> 0 +bool1847 issubnormal -0.00000999999999 -> 0 +bool1848 issubnormal 0.00999999999 -> 0 +bool1849 issubnormal -0.00999999999 -> 0 +bool1850 issubnormal 0.0999999999 -> 0 +bool1851 issubnormal -0.0999999999 -> 0 +bool1852 issubnormal 0.999999999 -> 0 +bool1853 issubnormal -0.999999999 -> 0 +bool1854 issubnormal 9.99999999 -> 0 +bool1855 issubnormal -9.99999999 -> 0 +bool1856 issubnormal 99.9999999 -> 0 +bool1857 issubnormal -99.9999999 -> 0 +bool1858 issubnormal 999.999999 -> 0 +bool1859 issubnormal -999.999999 -> 0 +bool1860 issubnormal 9999.99999 -> 0 +bool1861 issubnormal -9999.99999 -> 0 +bool1862 issubnormal 9999999.99 -> 0 +bool1863 issubnormal -9999999.99 -> 0 +bool1864 issubnormal 9.99999999E+100 -> 0 +bool1865 issubnormal -9.99999999E+100 -> 0 +bool1866 issubnormal 9.99999999E+990 -> 0 +bool1867 issubnormal -9.99999999E+990 -> 0 +bool1868 issubnormal 9.99999999E+991 -> 0 +bool1869 issubnormal -9.99999999E+991 -> 0 +bool1870 issubnormal 9.99999999E+992 -> 0 +bool1871 issubnormal -9.99999999E+992 -> 0 +bool1872 issubnormal 9.99999999E+998 -> 0 +bool1873 issubnormal -9.99999999E+998 -> 0 +bool1874 issubnormal 9.99999999E+999 -> 0 +bool1875 issubnormal -9.99999999E+999 -> 0 +bool1876 issubnormal 9.99999999E+1000 -> 0 +bool1877 issubnormal -9.99999999E+1000 -> 0 +bool1878 issubnormal 9.99999999E+2000 -> 0 +bool1879 issubnormal -9.99999999E+2000 -> 0 +bool1880 issubnormal Infinity -> 0 +bool1881 issubnormal -Infinity -> 0 +bool1882 issubnormal NaN -> 0 +bool1883 issubnormal -NaN -> 0 +bool1884 issubnormal NaN123 -> 0 +bool1885 issubnormal -NaN123 -> 0 +bool1886 issubnormal sNaN -> 0 +bool1887 issubnormal -sNaN -> 0 +bool1888 issubnormal sNaN123 -> 0 +bool1889 issubnormal -sNaN123 -> 0 +bool1890 iszero 0E-2000 -> 1 +bool1891 iszero -0E-2000 -> 1 +bool1892 iszero 0E-1008 -> 1 +bool1893 iszero -0E-1008 -> 1 +bool1894 iszero 0E-1007 -> 1 +bool1895 iszero -0E-1007 -> 1 +bool1896 iszero 0E-1006 -> 1 +bool1897 iszero -0E-1006 -> 1 +bool1898 iszero 0E-1000 -> 1 +bool1899 iszero -0E-1000 -> 1 +bool1900 iszero 0E-999 -> 1 +bool1901 iszero -0E-999 -> 1 +bool1902 iszero 0E-998 -> 1 +bool1903 iszero -0E-998 -> 1 +bool1904 iszero 0E-100 -> 1 +bool1905 iszero -0E-100 -> 1 +bool1906 iszero 0.000000 -> 1 +bool1907 iszero -0.000000 -> 1 +bool1908 iszero 0.000 -> 1 +bool1909 iszero -0.000 -> 1 +bool1910 iszero 0.00 -> 1 +bool1911 iszero -0.00 -> 1 +bool1912 iszero 0.0 -> 1 +bool1913 iszero -0.0 -> 1 +bool1914 iszero 0 -> 1 +bool1915 iszero -0 -> 1 +bool1916 iszero 0E+1 -> 1 +bool1917 iszero -0E+1 -> 1 +bool1918 iszero 0E+2 -> 1 +bool1919 iszero -0E+2 -> 1 +bool1920 iszero 0E+3 -> 1 +bool1921 iszero -0E+3 -> 1 +bool1922 iszero 0E+6 -> 1 +bool1923 iszero -0E+6 -> 1 +bool1924 iszero 0E+100 -> 1 +bool1925 iszero -0E+100 -> 1 +bool1926 iszero 0E+990 -> 1 +bool1927 iszero -0E+990 -> 1 +bool1928 iszero 0E+991 -> 1 +bool1929 iszero -0E+991 -> 1 +bool1930 iszero 0E+992 -> 1 +bool1931 iszero -0E+992 -> 1 +bool1932 iszero 0E+998 -> 1 +bool1933 iszero -0E+998 -> 1 +bool1934 iszero 0E+999 -> 1 +bool1935 iszero -0E+999 -> 1 +bool1936 iszero 0E+1000 -> 1 +bool1937 iszero -0E+1000 -> 1 +bool1938 iszero 0E+2000 -> 1 +bool1939 iszero -0E+2000 -> 1 +bool1940 iszero 1E-2000 -> 0 +bool1941 iszero -1E-2000 -> 0 +bool1942 iszero 1E-1008 -> 0 +bool1943 iszero -1E-1008 -> 0 +bool1944 iszero 1E-1007 -> 0 +bool1945 iszero -1E-1007 -> 0 +bool1946 iszero 1E-1006 -> 0 +bool1947 iszero -1E-1006 -> 0 +bool1948 iszero 1E-1000 -> 0 +bool1949 iszero -1E-1000 -> 0 +bool1950 iszero 1E-999 -> 0 +bool1951 iszero -1E-999 -> 0 +bool1952 iszero 1E-998 -> 0 +bool1953 iszero -1E-998 -> 0 +bool1954 iszero 1E-100 -> 0 +bool1955 iszero -1E-100 -> 0 +bool1956 iszero 0.000001 -> 0 +bool1957 iszero -0.000001 -> 0 +bool1958 iszero 0.001 -> 0 +bool1959 iszero -0.001 -> 0 +bool1960 iszero 0.01 -> 0 +bool1961 iszero -0.01 -> 0 +bool1962 iszero 0.1 -> 0 +bool1963 iszero -0.1 -> 0 +bool1964 iszero 1 -> 0 +bool1965 iszero -1 -> 0 +bool1966 iszero 1E+1 -> 0 +bool1967 iszero -1E+1 -> 0 +bool1968 iszero 1E+2 -> 0 +bool1969 iszero -1E+2 -> 0 +bool1970 iszero 1E+3 -> 0 +bool1971 iszero -1E+3 -> 0 +bool1972 iszero 1E+6 -> 0 +bool1973 iszero -1E+6 -> 0 +bool1974 iszero 1E+100 -> 0 +bool1975 iszero -1E+100 -> 0 +bool1976 iszero 1E+990 -> 0 +bool1977 iszero -1E+990 -> 0 +bool1978 iszero 1E+991 -> 0 +bool1979 iszero -1E+991 -> 0 +bool1980 iszero 1E+992 -> 0 +bool1981 iszero -1E+992 -> 0 +bool1982 iszero 1E+998 -> 0 +bool1983 iszero -1E+998 -> 0 +bool1984 iszero 1E+999 -> 0 +bool1985 iszero -1E+999 -> 0 +bool1986 iszero 1E+1000 -> 0 +bool1987 iszero -1E+1000 -> 0 +bool1988 iszero 1E+2000 -> 0 +bool1989 iszero -1E+2000 -> 0 +bool1990 iszero 9E-2000 -> 0 +bool1991 iszero -9E-2000 -> 0 +bool1992 iszero 9E-1008 -> 0 +bool1993 iszero -9E-1008 -> 0 +bool1994 iszero 9E-1007 -> 0 +bool1995 iszero -9E-1007 -> 0 +bool1996 iszero 9E-1006 -> 0 +bool1997 iszero -9E-1006 -> 0 +bool1998 iszero 9E-1000 -> 0 +bool1999 iszero -9E-1000 -> 0 +bool2000 iszero 9E-999 -> 0 +bool2001 iszero -9E-999 -> 0 +bool2002 iszero 9E-998 -> 0 +bool2003 iszero -9E-998 -> 0 +bool2004 iszero 9E-100 -> 0 +bool2005 iszero -9E-100 -> 0 +bool2006 iszero 0.000009 -> 0 +bool2007 iszero -0.000009 -> 0 +bool2008 iszero 0.009 -> 0 +bool2009 iszero -0.009 -> 0 +bool2010 iszero 0.09 -> 0 +bool2011 iszero -0.09 -> 0 +bool2012 iszero 0.9 -> 0 +bool2013 iszero -0.9 -> 0 +bool2014 iszero 9 -> 0 +bool2015 iszero -9 -> 0 +bool2016 iszero 9E+1 -> 0 +bool2017 iszero -9E+1 -> 0 +bool2018 iszero 9E+2 -> 0 +bool2019 iszero -9E+2 -> 0 +bool2020 iszero 9E+3 -> 0 +bool2021 iszero -9E+3 -> 0 +bool2022 iszero 9E+6 -> 0 +bool2023 iszero -9E+6 -> 0 +bool2024 iszero 9E+100 -> 0 +bool2025 iszero -9E+100 -> 0 +bool2026 iszero 9E+990 -> 0 +bool2027 iszero -9E+990 -> 0 +bool2028 iszero 9E+991 -> 0 +bool2029 iszero -9E+991 -> 0 +bool2030 iszero 9E+992 -> 0 +bool2031 iszero -9E+992 -> 0 +bool2032 iszero 9E+998 -> 0 +bool2033 iszero -9E+998 -> 0 +bool2034 iszero 9E+999 -> 0 +bool2035 iszero -9E+999 -> 0 +bool2036 iszero 9E+1000 -> 0 +bool2037 iszero -9E+1000 -> 0 +bool2038 iszero 9E+2000 -> 0 +bool2039 iszero -9E+2000 -> 0 +bool2040 iszero 9.99999999E-2000 -> 0 +bool2041 iszero -9.99999999E-2000 -> 0 +bool2042 iszero 9.99999999E-1008 -> 0 +bool2043 iszero -9.99999999E-1008 -> 0 +bool2044 iszero 9.99999999E-1007 -> 0 +bool2045 iszero -9.99999999E-1007 -> 0 +bool2046 iszero 9.99999999E-1006 -> 0 +bool2047 iszero -9.99999999E-1006 -> 0 +bool2048 iszero 9.99999999E-1000 -> 0 +bool2049 iszero -9.99999999E-1000 -> 0 +bool2050 iszero 9.99999999E-999 -> 0 +bool2051 iszero -9.99999999E-999 -> 0 +bool2052 iszero 9.99999999E-998 -> 0 +bool2053 iszero -9.99999999E-998 -> 0 +bool2054 iszero 9.99999999E-100 -> 0 +bool2055 iszero -9.99999999E-100 -> 0 +bool2056 iszero 0.00000999999999 -> 0 +bool2057 iszero -0.00000999999999 -> 0 +bool2058 iszero 0.00999999999 -> 0 +bool2059 iszero -0.00999999999 -> 0 +bool2060 iszero 0.0999999999 -> 0 +bool2061 iszero -0.0999999999 -> 0 +bool2062 iszero 0.999999999 -> 0 +bool2063 iszero -0.999999999 -> 0 +bool2064 iszero 9.99999999 -> 0 +bool2065 iszero -9.99999999 -> 0 +bool2066 iszero 99.9999999 -> 0 +bool2067 iszero -99.9999999 -> 0 +bool2068 iszero 999.999999 -> 0 +bool2069 iszero -999.999999 -> 0 +bool2070 iszero 9999.99999 -> 0 +bool2071 iszero -9999.99999 -> 0 +bool2072 iszero 9999999.99 -> 0 +bool2073 iszero -9999999.99 -> 0 +bool2074 iszero 9.99999999E+100 -> 0 +bool2075 iszero -9.99999999E+100 -> 0 +bool2076 iszero 9.99999999E+990 -> 0 +bool2077 iszero -9.99999999E+990 -> 0 +bool2078 iszero 9.99999999E+991 -> 0 +bool2079 iszero -9.99999999E+991 -> 0 +bool2080 iszero 9.99999999E+992 -> 0 +bool2081 iszero -9.99999999E+992 -> 0 +bool2082 iszero 9.99999999E+998 -> 0 +bool2083 iszero -9.99999999E+998 -> 0 +bool2084 iszero 9.99999999E+999 -> 0 +bool2085 iszero -9.99999999E+999 -> 0 +bool2086 iszero 9.99999999E+1000 -> 0 +bool2087 iszero -9.99999999E+1000 -> 0 +bool2088 iszero 9.99999999E+2000 -> 0 +bool2089 iszero -9.99999999E+2000 -> 0 +bool2090 iszero Infinity -> 0 +bool2091 iszero -Infinity -> 0 +bool2092 iszero NaN -> 0 +bool2093 iszero -NaN -> 0 +bool2094 iszero NaN123 -> 0 +bool2095 iszero -NaN123 -> 0 +bool2096 iszero sNaN -> 0 +bool2097 iszero -sNaN -> 0 +bool2098 iszero sNaN123 -> 0 +bool2099 iszero -sNaN123 -> 0 + ------------------------------------------------------------------------ -- The following tests (pwmx0 through pwmx440) are for the -- -- three-argument version of power: -- Modified: python/trunk/Lib/test/test_decimal.py ============================================================================== --- python/trunk/Lib/test/test_decimal.py (original) +++ python/trunk/Lib/test/test_decimal.py Tue Oct 2 19:01:24 2007 @@ -95,35 +95,61 @@ # Name adapter to be able to change the Decimal and Context # interface without changing the test files from Cowlishaw -nameAdapter = {'toeng':'to_eng_string', - 'tosci':'to_sci_string', - 'samequantum':'same_quantum', - 'tointegral':'to_integral_value', - 'tointegralx':'to_integral_exact', - 'remaindernear':'remainder_near', - 'divideint':'divide_int', - 'squareroot':'sqrt', +nameAdapter = {'and':'logical_and', 'apply':'_apply', 'class':'number_class', 'comparesig':'compare_signal', 'comparetotal':'compare_total', 'comparetotmag':'compare_total_mag', - 'copyabs':'copy_abs', 'copy':'copy_decimal', + 'copyabs':'copy_abs', 'copynegate':'copy_negate', 'copysign':'copy_sign', - 'and':'logical_and', - 'or':'logical_or', - 'xor':'logical_xor', + 'divideint':'divide_int', 'invert':'logical_invert', + 'iscanonical':'is_canonical', + 'isfinite':'is_finite', + 'isinfinite':'is_infinite', + 'isnan':'is_nan', + 'isnormal':'is_normal', + 'isqnan':'is_qnan', + 'issigned':'is_signed', + 'issnan':'is_snan', + 'issubnormal':'is_subnormal', + 'iszero':'is_zero', 'maxmag':'max_mag', 'minmag':'min_mag', 'nextminus':'next_minus', 'nextplus':'next_plus', 'nexttoward':'next_toward', + 'or':'logical_or', 'reduce':'normalize', + 'remaindernear':'remainder_near', + 'samequantum':'same_quantum', + 'squareroot':'sqrt', + 'toeng':'to_eng_string', + 'tointegral':'to_integral_value', + 'tointegralx':'to_integral_exact', + 'tosci':'to_sci_string', + 'xor':'logical_xor', } +# The following functions return True/False rather than a Decimal instance + +LOGICAL_FUNCTIONS = ( + 'is_canonical', + 'is_finite', + 'is_infinite', + 'is_nan', + 'is_normal', + 'is_qnan', + 'is_signed', + 'is_snan', + 'is_subnormal', + 'is_zero', + 'same_quantum', + ) + # For some operations (currently exp, ln, log10, power), the decNumber # reference implementation imposes additional restrictions on the # context and operands. These restrictions are not part of the @@ -321,7 +347,7 @@ print "--", self.context try: result = str(funct(*vals)) - if fname == 'same_quantum': + if fname in LOGICAL_FUNCTIONS: result = str(int(eval(result))) # 'True', 'False' -> '1', '0' except Signals, error: self.fail("Raised %s in %s" % (error, s)) From buildbot at python.org Tue Oct 2 19:48:24 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Oct 2007 17:48:24 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20071002174824.7A3621E400A@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/237 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: facundo.batista BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc ====================================================================== ERROR: test_fail_no_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 497, in test_fail_no_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1005, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 931, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer ====================================================================== ERROR: test_fail_with_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 517, in test_fail_with_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1005, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 931, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Oct 2 20:21:19 2007 From: python-checkins at python.org (facundo.batista) Date: Tue, 2 Oct 2007 20:21:19 +0200 (CEST) Subject: [Python-checkins] r58295 - python/trunk/Lib/decimal.py Message-ID: <20071002182119.2D5B41E4019@bag.python.org> Author: facundo.batista Date: Tue Oct 2 20:21:18 2007 New Revision: 58295 Modified: python/trunk/Lib/decimal.py Log: Added a class to store the digits of log(10), so that they can be made available when necessary without recomputing. Thanks Mark Dickinson Modified: python/trunk/Lib/decimal.py ============================================================================== --- python/trunk/Lib/decimal.py (original) +++ python/trunk/Lib/decimal.py Tue Oct 2 20:21:18 2007 @@ -4908,7 +4908,7 @@ c = _div_nearest(c, 10**-k) log_d = _ilog(c, M) # error < 5 + 22 = 27 - log_10 = _ilog(10*M, M) # error < 15 + log_10 = _log10_digits(p) # error < 1 log_d = _div_nearest(log_d*M, log_10) log_tenpower = f*M # exact else: @@ -4946,24 +4946,58 @@ # p <= 0: just approximate the whole thing by 0; error < 2.31 log_d = 0 - # compute approximation to 10**p*f*log(10), with error < 17 + # compute approximation to f*10**p*log(10), with error < 11. if f: - sign_f = [-1, 1][f > 0] - if p >= 0: - M = 10**p * abs(f) - else: - M = _div_nearest(abs(f), 10**-p) # M = 10**p*|f|, error <= 0.5 - - if M: - f_log_ten = sign_f*_ilog(10*M, M) # M*log(10), error <= 1.2 + 15 < 17 + extra = len(str(abs(f)))-1 + if p + extra >= 0: + # error in f * _log10_digits(p+extra) < |f| * 1 = |f| + # after division, error < |f|/10**extra + 0.5 < 10 + 0.5 < 11 + f_log_ten = _div_nearest(f*_log10_digits(p+extra), 10**extra) else: f_log_ten = 0 else: f_log_ten = 0 - # error in sum < 17+27 = 44; error after division < 0.44 + 0.5 < 1 + # error in sum < 11+27 = 38; error after division < 0.38 + 0.5 < 1 return _div_nearest(f_log_ten + log_d, 100) +class _Log10Memoize(object): + """Class to compute, store, and allow retrieval of, digits of the + constant log(10) = 2.302585.... This constant is needed by + Decimal.ln, Decimal.log10, Decimal.exp and Decimal.__pow__.""" + def __init__(self): + self.digits = "23025850929940456840179914546843642076011014886" + + def getdigits(self, p): + """Given an integer p >= 0, return floor(10**p)*log(10). + + For example, self.getdigits(3) returns 2302. + """ + # digits are stored as a string, for quick conversion to + # integer in the case that we've already computed enough + # digits; the stored digits should always be correct + # (truncated, not rounded to nearest). + if p < 0: + raise ValueError("p should be nonnegative") + + if p >= len(self.digits): + # compute p+3, p+6, p+9, ... digits; continue until at + # least one of the extra digits is nonzero + extra = 3 + while True: + # compute p+extra digits, correct to within 1ulp + M = 10**(p+extra+2) + digits = str(_div_nearest(_ilog(10*M, M), 100)) + if digits[-extra:] != '0'*extra: + break + extra += 3 + # keep all reliable digits so far; remove trailing zeros + # and next nonzero digit + self.digits = digits.rstrip('0')[:-1] + return int(self.digits[:p+1]) + +_log10_digits = _Log10Memoize().getdigits + def _iexp(x, M, L=8): """Given integers x and M, M > 0, such that x/M is small in absolute value, compute an integer approximation to M*exp(x/M). For 0 <= @@ -5005,7 +5039,7 @@ """Compute an approximation to exp(c*10**e), with p decimal places of precision. - Returns d, f such that: + Returns integers d, f such that: 10**(p-1) <= d <= 10**p, and (d-1)*10**f < exp(c*10**e) < (d+1)*10**f @@ -5018,19 +5052,18 @@ # we'll call iexp with M = 10**(p+2), giving p+3 digits of precision p += 2 - # compute log10 with extra precision = adjusted exponent of c*10**e + # compute log(10) with extra precision = adjusted exponent of c*10**e extra = max(0, e + len(str(c)) - 1) q = p + extra - log10 = _dlog(10, 0, q) # error <= 1 - # compute quotient c*10**e/(log10/10**q) = c*10**(e+q)/log10, + # compute quotient c*10**e/(log(10)) = c*10**(e+q)/(log(10)*10**q), # rounding down shift = e+q if shift >= 0: cshift = c*10**shift else: cshift = c//10**-shift - quot, rem = divmod(cshift, log10) + quot, rem = divmod(cshift, _log10_digits(q)) # reduce remainder back to original precision rem = _div_nearest(rem, 10**extra) From buildbot at python.org Tue Oct 2 20:51:33 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Oct 2007 18:51:33 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20071002185133.A21D91E401E@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/2507 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: facundo.batista BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_urllib2net make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Oct 2 20:53:39 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Oct 2007 18:53:39 +0000 Subject: [Python-checkins] buildbot failure in x86 mvlgcc trunk Message-ID: <20071002185339.83FF61E400A@bag.python.org> The Buildbot has detected a new failure of x86 mvlgcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20mvlgcc%20trunk/builds/847 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-linux Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: facundo.batista BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllib2net make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Oct 2 21:00:07 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Oct 2007 19:00:07 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 trunk Message-ID: <20071002190007.7FF861E4016@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%20trunk/builds/277 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: facundo.batista BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllib2net sincerely, -The Buildbot From python-checkins at python.org Wed Oct 3 10:53:21 2007 From: python-checkins at python.org (mark.summerfield) Date: Wed, 3 Oct 2007 10:53:21 +0200 (CEST) Subject: [Python-checkins] r58299 - python/trunk/Doc/reference/expressions.rst Message-ID: <20071003085321.6D8C81E401A@bag.python.org> Author: mark.summerfield Date: Wed Oct 3 10:53:21 2007 New Revision: 58299 Modified: python/trunk/Doc/reference/expressions.rst Log: Added note in footnote about string comparisons about unicodedata.normalize(). Modified: python/trunk/Doc/reference/expressions.rst ============================================================================== --- python/trunk/Doc/reference/expressions.rst (original) +++ python/trunk/Doc/reference/expressions.rst Wed Oct 3 10:53:21 2007 @@ -1330,9 +1330,10 @@ .. [#] While comparisons between unicode strings make sense at the byte level, they may be counter-intuitive to users. For example, the - strings ``u"\u00C7"`` and ``u"\u0327\u0043"`` compare differently, + strings ``u"\u00C7"`` and ``u"\u0043\u0327"`` compare differently, even though they both represent the same unicode character (LATIN - CAPTITAL LETTER C WITH CEDILLA). + CAPTITAL LETTER C WITH CEDILLA). To compare strings in a human + recognizable way, compare using :func:`unicodedata.normalize`. .. [#] The implementation computes this efficiently, without constructing lists or sorting. From python-checkins at python.org Wed Oct 3 13:24:10 2007 From: python-checkins at python.org (andrew.kuchling) Date: Wed, 3 Oct 2007 13:24:10 +0200 (CEST) Subject: [Python-checkins] r58300 - peps/trunk/pep-0000.txt peps/trunk/pep-3100.txt Message-ID: <20071003112410.34E061E400A@bag.python.org> Author: andrew.kuchling Date: Wed Oct 3 13:24:09 2007 New Revision: 58300 Modified: peps/trunk/pep-0000.txt peps/trunk/pep-3100.txt Log: Remove name from PEP 3100; no time to follow 3.0 Modified: peps/trunk/pep-0000.txt ============================================================================== --- peps/trunk/pep-0000.txt (original) +++ peps/trunk/pep-0000.txt Wed Oct 3 13:24:09 2007 @@ -70,7 +70,7 @@ IF 356 Python 2.5 Release Schedule Norwitz, et al I 360 Externally Maintained Packages Cannon I 361 Python 2.6 Release Schedule Norwitz, et al - I 3100 Python 3.0 Plans Kuchling, Cannon + I 3100 Python 3.0 Plans Cannon Accepted PEPs (accepted; may not be implemented yet) @@ -473,7 +473,7 @@ P 3001 Reviewing and improving stdlib modules Brandl P 3002 Procedure for Backwards-Incompatible Changes Bethard I 3099 Things that will Not Change in Python 3000 Brandl - I 3100 Python 3.0 Plans Kuchling, Cannon + I 3100 Python 3.0 Plans Cannon SA 3101 Advanced String Formatting Talin SF 3102 Keyword-Only Arguments Talin SR 3103 A Switch/Case Statement GvR Modified: peps/trunk/pep-3100.txt ============================================================================== --- peps/trunk/pep-3100.txt (original) +++ peps/trunk/pep-3100.txt Wed Oct 3 13:24:09 2007 @@ -2,8 +2,7 @@ Title: Miscellaneous Python 3.0 Plans Version: $Revision$ Last-Modified: $Date$ -Author: A.M. Kuchling , - Brett Cannon +Author: Brett Cannon Status: Draft Type: Informational Content-Type: text/x-rst From python-checkins at python.org Wed Oct 3 18:04:53 2007 From: python-checkins at python.org (guido.van.rossum) Date: Wed, 3 Oct 2007 18:04:53 +0200 (CEST) Subject: [Python-checkins] r58301 - peps/trunk/pep-0000.txt peps/trunk/pep-0358.txt peps/trunk/pep-3137.txt Message-ID: <20071003160453.8B4E31E400A@bag.python.org> Author: guido.van.rossum Date: Wed Oct 3 18:04:53 2007 New Revision: 58301 Modified: peps/trunk/pep-0000.txt peps/trunk/pep-0358.txt peps/trunk/pep-3137.txt Log: Mark PEP 3137 as accepted. Mark Summerfield sent some comments on PEP 358 (I also referenced PEP 3137). Modified: peps/trunk/pep-0000.txt ============================================================================== --- peps/trunk/pep-0000.txt (original) +++ peps/trunk/pep-0000.txt Wed Oct 3 18:04:53 2007 @@ -80,6 +80,7 @@ SA 3118 Revising the buffer protocol Oliphant, Banks SA 3119 Introducing Abstract Base Classes GvR, Talin SA 3121 Extension Module Initialization & Finalization von L?wis + SA 3137 Immutable Bytes and Mutable Buffer GvR Open PEPs (under consideration) @@ -96,7 +97,6 @@ S 3116 New I/O Stutzbach, Verdone, GvR S 3134 Exception Chaining and Embedded Tracebacks Yee S 3135 New Super Spealman, Delaney - S 3137 Immutable Bytes and Mutable Buffer GvR S 3141 A Type Hierarchy for Numbers Yasskin Finished PEPs (done, implemented in Subversion) @@ -510,7 +510,7 @@ S 3134 Exception Chaining and Embedded Tracebacks Yee S 3135 New Super Spealman, Delaney SR 3136 Labeled break and continue Chisholm - S 3137 Immutable Bytes and Mutable Buffer GvR + SA 3137 Immutable Bytes and Mutable Buffer GvR S 3141 A Type Hierarchy for Numbers Yasskin Modified: peps/trunk/pep-0358.txt ============================================================================== --- peps/trunk/pep-0358.txt (original) +++ peps/trunk/pep-0358.txt Wed Oct 3 18:04:53 2007 @@ -11,6 +11,11 @@ Post-History: +Update + + This PEP has partially been superseded by PEP 3137. + + Abstract This PEP outlines the introduction of a raw bytes sequence type. @@ -32,15 +37,15 @@ overloading of purpose leads to confusion and bugs. In future versions of Python, string objects will be used for holding character data. The bytes object will fulfil the role of a byte - container. Eventually the unicode built-in will be renamed to str - and the str object will be removed. + container. Eventually the unicode type will be renamed to str + and the old str type will be removed. Specification A bytes object stores a mutable sequence of integers that are in the range 0 to 255. Unlike string objects, indexing a bytes - object returns an integer. Assigning or comparin an object that + object returns an integer. Assigning or comparing an object that is not an integer to an element causes a TypeError exception. Assigning an element to a value outside the range 0 to 255 causes a ValueError exception. The .__len__() method of bytes returns @@ -58,10 +63,10 @@ (optimized for clear semantics, not for speed) is: def bytes(initializer=0, encoding=None): - if isinstance(initializer, int): # In 2.6, (int, long) + if isinstance(initializer, int): # In 2.6, int -> (int, long) initializer = [0]*initializer elif isinstance(initializer, basestring): - if isinstance(initializer, unicode): # In 3.0, always + if isinstance(initializer, unicode): # In 3.0, "if True" if encoding is None: # In 3.0, raise TypeError("explicit encoding required") encoding = sys.getdefaultencoding() @@ -106,7 +111,7 @@ >> bytes([92, 83, 80, 255]).hex() '5c5350ff' - The bytes object has some methods similar to list method, and + The bytes object has some methods similar to list methods, and others similar to str methods. Here is a complete list of methods, with their approximate signatures: @@ -176,8 +181,8 @@ support bytes objects. * It has been suggested that a special method named .__bytes__() - be added to language to allow objects to be converted into byte - arrays. This decision is out of scope. + be added to the language to allow objects to be converted into + byte arrays. This decision is out of scope. * A bytes literal of the form b"..." is also proposed. This is the subject of PEP 3112. @@ -236,7 +241,7 @@ A: There is no sane meaning that the encoding can have in that case. str objects *are* byte arrays and they know nothing about the encoding of character data they contain. We need to assume that - the programmer has provided str object that already uses the + the programmer has provided a str object that already uses the desired encoding. If you need something other than a pure copy of the bytes then you need to first decode the string. For example: Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Wed Oct 3 18:04:53 2007 @@ -3,7 +3,7 @@ Version: $Revision$ Last-Modified: $Date$ Author: Guido van Rossum -Status: Draft +Status: Accepted Type: Standards Track Content-Type: text/x-rst Created: 26-Sep-2007 From python-checkins at python.org Wed Oct 3 20:51:50 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 3 Oct 2007 20:51:50 +0200 (CEST) Subject: [Python-checkins] r58302 - peps/trunk/pep-3100.txt Message-ID: <20071003185150.BB9B31E4021@bag.python.org> Author: brett.cannon Date: Wed Oct 3 20:51:50 2007 New Revision: 58302 Modified: peps/trunk/pep-3100.txt Log: Remove duplicate entry for the removal of md5. Modified: peps/trunk/pep-3100.txt ============================================================================== --- peps/trunk/pep-3100.txt (original) +++ peps/trunk/pep-3100.txt Wed Oct 3 20:51:50 2007 @@ -216,7 +216,6 @@ ``multifile``, ``rfc822``, ``sha``, - ``md5``, [to do] - ``mpz``, ``posixfile``, ``regsub``, ``rgbimage``, ``statcache``, ``sv``, ``TERMIOS``, ``timing`` [done] From buildbot at python.org Wed Oct 3 21:36:12 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Oct 2007 19:36:12 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux trunk Message-ID: <20071003193612.2C64D1E4016@bag.python.org> The Buildbot has detected a new failure of ARM Linux trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20trunk/builds/3 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-arm Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: brett.cannon,facundo.batista BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Aborted sincerely, -The Buildbot From python-checkins at python.org Wed Oct 3 21:59:58 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 3 Oct 2007 21:59:58 +0200 (CEST) Subject: [Python-checkins] r58303 - peps/trunk/pep-0352.txt Message-ID: <20071003195958.09D911E400C@bag.python.org> Author: brett.cannon Date: Wed Oct 3 21:59:57 2007 New Revision: 58303 Modified: peps/trunk/pep-0352.txt Log: Fix/clarify stuff based on suggestions from Mark Summerfield. Modified: peps/trunk/pep-0352.txt ============================================================================== --- peps/trunk/pep-0352.txt (original) +++ peps/trunk/pep-0352.txt Wed Oct 3 21:59:57 2007 @@ -67,12 +67,9 @@ """ def __init__(self, *args): - """Set the 'args' attribute'""" self.args = args def __str__(self): - """Return the str of - ``args[0] if len(args) == 1 else args``.""" if len(self.args) == 1: return str(self.args[0]) else: @@ -137,7 +134,7 @@ propagate up and allow the interpreter to terminate. KeyboardInterrupt has been moved since users typically expect an -application to exit when the press the interrupt key (usually Ctrl-C). +application to exit when they press the interrupt key (usually Ctrl-C). If people have overly broad ``except`` clauses the expected behaviour does not occur. @@ -176,11 +173,9 @@ """ def __init__(self, *args): - """Set the 'args' attribute.""" self.args = args def __str__(self): - """Return the str of args[0] or args, depending on length.""" return str(self.args[0] if len(self.args) <= 1 else self.args) @@ -204,9 +199,10 @@ "since Python 2.6") return self.args[0] if len(args) == 1 else '' - message = property(_get_message) - - + message = property(_get_message, + doc="access the 'message' attribute; " + "deprecated and provided only for " + "backwards-compatibility") Deprecation of features in Python 2.9 is optional. This is because it @@ -216,7 +212,7 @@ will be used in 2.9 since there could be such a difference between 2.9 and 3.0 that it would make 2.9 too "noisy" in terms of warnings. Thus the proposed deprecation warnings for Python 2.9 will be revisited -when development of that version begins to determine if they are still +when development of that version begins, to determine if they are still desired. * Python 2.5 [done] From python-checkins at python.org Wed Oct 3 23:18:11 2007 From: python-checkins at python.org (raymond.hettinger) Date: Wed, 3 Oct 2007 23:18:11 +0200 (CEST) Subject: [Python-checkins] r58304 - in python/trunk: Misc/NEWS Objects/enumobject.c Message-ID: <20071003211811.DE0741E4020@bag.python.org> Author: raymond.hettinger Date: Wed Oct 3 23:18:11 2007 New Revision: 58304 Modified: python/trunk/Misc/NEWS python/trunk/Objects/enumobject.c Log: enumerate() is no longer bounded to using sequences shorter than LONG_MAX. The possibility of overflow was sending some newsgroup posters into a tizzy. Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Oct 3 23:18:11 2007 @@ -12,6 +12,10 @@ Core and builtins ----------------- +- The enumerate() builtin function is no longer bounded to sequences smaller + than LONG_MAX. Formerly, it raised an OverflowError. Now, automatically + shifts from ints to longs. + - Issue #1686386: Tuple's tp_repr did not take into account the possibility of having a self-referential tuple, which is possible from C code. Nor did object's tp_str consider that a type's tp_str could do something that could Modified: python/trunk/Objects/enumobject.c ============================================================================== --- python/trunk/Objects/enumobject.c (original) +++ python/trunk/Objects/enumobject.c Wed Oct 3 23:18:11 2007 @@ -7,6 +7,7 @@ long en_index; /* current index of enumeration */ PyObject* en_sit; /* secondary iterator of enumeration */ PyObject* en_result; /* result tuple */ + PyObject* en_longindex; /* index for sequences >= LONG_MAX */ } enumobject; static PyObject * @@ -25,6 +26,7 @@ return NULL; en->en_index = 0; en->en_sit = PyObject_GetIter(seq); + en->en_longindex = NULL; if (en->en_sit == NULL) { Py_DECREF(en); return NULL; @@ -43,6 +45,7 @@ PyObject_GC_UnTrack(en); Py_XDECREF(en->en_sit); Py_XDECREF(en->en_result); + Py_XDECREF(en->en_longindex); Py_Type(en)->tp_free(en); } @@ -51,10 +54,53 @@ { Py_VISIT(en->en_sit); Py_VISIT(en->en_result); + Py_VISIT(en->en_longindex); return 0; } static PyObject * +enum_next_long(enumobject *en, PyObject* next_item) +{ + static PyObject *one = NULL; + PyObject *result = en->en_result; + PyObject *next_index; + PyObject *stepped_up; + + if (en->en_longindex == NULL) { + en->en_longindex = PyInt_FromLong(LONG_MAX); + if (en->en_longindex == NULL) + return NULL; + } + if (one == NULL) { + one = PyInt_FromLong(1); + if (one == NULL) + return NULL; + } + next_index = en->en_longindex; + assert(next_index != NULL); + stepped_up = PyNumber_Add(next_index, one); + if (stepped_up == NULL) + return NULL; + en->en_longindex = stepped_up; + + if (result->ob_refcnt == 1) { + Py_INCREF(result); + Py_DECREF(PyTuple_GET_ITEM(result, 0)); + Py_DECREF(PyTuple_GET_ITEM(result, 1)); + } else { + result = PyTuple_New(2); + if (result == NULL) { + Py_DECREF(next_index); + Py_DECREF(next_item); + return NULL; + } + } + PyTuple_SET_ITEM(result, 0, next_index); + PyTuple_SET_ITEM(result, 1, next_item); + return result; +} + +static PyObject * enum_next(enumobject *en) { PyObject *next_index; @@ -62,16 +108,13 @@ PyObject *result = en->en_result; PyObject *it = en->en_sit; - if (en->en_index == LONG_MAX) { - PyErr_SetString(PyExc_OverflowError, - "enumerate() is limited to LONG_MAX items"); - return NULL; - } - next_item = (*Py_Type(it)->tp_iternext)(it); if (next_item == NULL) return NULL; + if (en->en_index == LONG_MAX) + return enum_next_long(en, next_item); + next_index = PyInt_FromLong(en->en_index); if (next_index == NULL) { Py_DECREF(next_item); From buildbot at python.org Wed Oct 3 23:47:32 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Oct 2007 21:47:32 +0000 Subject: [Python-checkins] buildbot failure in alpha Tru64 5.1 trunk Message-ID: <20071003214732.8641B1E401F@bag.python.org> The Buildbot has detected a new failure of alpha Tru64 5.1 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Tru64%205.1%20trunk/builds/1915 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-tru64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: mark.summerfield,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Thu Oct 4 00:44:26 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Oct 2007 22:44:26 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071003224427.050601E4010@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/186 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: mark.summerfield,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Oct 4 02:20:28 2007 From: python-checkins at python.org (raymond.hettinger) Date: Thu, 4 Oct 2007 02:20:28 +0200 (CEST) Subject: [Python-checkins] r58305 - in python/trunk: Doc/library/itertools.rst Lib/test/test_itertools.py Misc/NEWS Modules/itertoolsmodule.c Message-ID: <20071004002028.2F9081E401B@bag.python.org> Author: raymond.hettinger Date: Thu Oct 4 02:20:27 2007 New Revision: 58305 Modified: python/trunk/Doc/library/itertools.rst python/trunk/Lib/test/test_itertools.py python/trunk/Misc/NEWS python/trunk/Modules/itertoolsmodule.c Log: itertools.count() no longer limited to sys.maxint. Modified: python/trunk/Doc/library/itertools.rst ============================================================================== --- python/trunk/Doc/library/itertools.rst (original) +++ python/trunk/Doc/library/itertools.rst Thu Oct 4 02:20:27 2007 @@ -79,19 +79,15 @@ .. function:: count([n]) Make an iterator that returns consecutive integers starting with *n*. If not - specified *n* defaults to zero. Does not currently support python long - integers. Often used as an argument to :func:`imap` to generate consecutive - data points. Also, used with :func:`izip` to add sequence numbers. Equivalent - to:: + specified *n* defaults to zero. Often used as an argument to :func:`imap` to + generate consecutive data points. Also, used with :func:`izip` to add sequence + numbers. Equivalent to:: def count(n=0): while True: yield n n += 1 - Note, :func:`count` does not check for overflow and will return negative numbers - after exceeding ``sys.maxint``. This behavior may change in the future. - .. function:: cycle(iterable) Modified: python/trunk/Lib/test/test_itertools.py ============================================================================== --- python/trunk/Lib/test/test_itertools.py (original) +++ python/trunk/Lib/test/test_itertools.py Thu Oct 4 02:20:27 2007 @@ -52,9 +52,12 @@ self.assertEqual(zip('abc',count()), [('a', 0), ('b', 1), ('c', 2)]) self.assertEqual(zip('abc',count(3)), [('a', 3), ('b', 4), ('c', 5)]) self.assertEqual(take(2, zip('abc',count(3))), [('a', 3), ('b', 4)]) + self.assertEqual(take(2, zip('abc',count(-1))), [('a', -1), ('b', 0)]) + self.assertEqual(take(2, zip('abc',count(-3))), [('a', -3), ('b', -2)]) self.assertRaises(TypeError, count, 2, 3) self.assertRaises(TypeError, count, 'a') - self.assertRaises(OverflowError, list, islice(count(maxsize-5), 10)) + self.assertEqual(list(islice(count(maxsize-5), 10)), range(maxsize-5, maxsize+5)) + self.assertEqual(list(islice(count(-maxsize-5), 10)), range(-maxsize-5, -maxsize+5)) c = count(3) self.assertEqual(repr(c), 'count(3)') c.next() @@ -63,6 +66,8 @@ self.assertEqual(repr(c), 'count(-9)') c.next() self.assertEqual(c.next(), -8) + for i in (-sys.maxint-5, -sys.maxint+5 ,-10, -1, 0, 10, sys.maxint-5, sys.maxint+5): + self.assertEqual(repr(count(i)), 'count(%r)' % i) def test_cycle(self): self.assertEqual(take(10, cycle('abc')), list('abcabcabca')) Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Oct 4 02:20:27 2007 @@ -270,6 +270,9 @@ Library ------- +- itertools.count() is no longer bounded to LONG_MAX. Formerly, it raised + an OverflowError. Now, automatically shifts from ints to longs. + - Patch #1541463: optimize performance of cgi.FieldStorage operations. - Decimal is fully updated to the latest Decimal Specification (v1.66). Modified: python/trunk/Modules/itertoolsmodule.c ============================================================================== --- python/trunk/Modules/itertoolsmodule.c (original) +++ python/trunk/Modules/itertoolsmodule.c Thu Oct 4 02:20:27 2007 @@ -2032,6 +2032,7 @@ typedef struct { PyObject_HEAD Py_ssize_t cnt; + PyObject *long_cnt; /* Arbitrarily large count when cnt >= PY_SSIZE_T_MAX */ } countobject; static PyTypeObject count_type; @@ -2041,37 +2042,97 @@ { countobject *lz; Py_ssize_t cnt = 0; + PyObject *cnt_arg = NULL; + PyObject *long_cnt = NULL; if (type == &count_type && !_PyArg_NoKeywords("count()", kwds)) return NULL; - if (!PyArg_ParseTuple(args, "|n:count", &cnt)) + if (!PyArg_UnpackTuple(args, "count", 0, 1, &cnt_arg)) return NULL; + if (cnt_arg != NULL) { + cnt = PyInt_AsSsize_t(cnt_arg); + if (cnt == -1 && PyErr_Occurred()) { + PyErr_Clear(); + if (!PyLong_Check(cnt_arg)) { + PyErr_SetString(PyExc_TypeError, "an integer is required"); + return NULL; + } + long_cnt = cnt_arg; + Py_INCREF(long_cnt); + cnt = PY_SSIZE_T_MAX; + } + } + /* create countobject structure */ lz = (countobject *)PyObject_New(countobject, &count_type); - if (lz == NULL) + if (lz == NULL) { + Py_XDECREF(long_cnt); return NULL; + } lz->cnt = cnt; + lz->long_cnt = long_cnt; return (PyObject *)lz; } +static void +count_dealloc(countobject *lz) +{ + Py_XDECREF(lz->long_cnt); + PyObject_Del(lz); +} + +static PyObject * +count_nextlong(countobject *lz) +{ + static PyObject *one = NULL; + PyObject *cnt; + PyObject *stepped_up; + + if (lz->long_cnt == NULL) { + lz->long_cnt = PyInt_FromSsize_t(PY_SSIZE_T_MAX); + if (lz->long_cnt == NULL) + return NULL; + } + if (one == NULL) { + one = PyInt_FromLong(1); + if (one == NULL) + return NULL; + } + cnt = lz->long_cnt; + assert(cnt != NULL); + stepped_up = PyNumber_Add(cnt, one); + if (stepped_up == NULL) + return NULL; + lz->long_cnt = stepped_up; + return cnt; +} + static PyObject * count_next(countobject *lz) { - if (lz->cnt == PY_SSIZE_T_MAX) { - PyErr_SetString(PyExc_OverflowError, - "cannot count beyond PY_SSIZE_T_MAX"); - return NULL; - } + if (lz->cnt == PY_SSIZE_T_MAX) + return count_nextlong(lz); return PyInt_FromSsize_t(lz->cnt++); } static PyObject * count_repr(countobject *lz) { - return PyString_FromFormat("count(%zd)", lz->cnt); + PyObject *cnt_repr; + PyObject *result; + + if (lz->cnt != PY_SSIZE_T_MAX) + return PyString_FromFormat("count(%zd)", lz->cnt); + + cnt_repr = PyObject_Repr(lz->long_cnt); + if (cnt_repr == NULL) + return NULL; + result = PyString_FromFormat("count(%s)", PyString_AS_STRING(cnt_repr)); + Py_DECREF(cnt_repr); + return result; } PyDoc_STRVAR(count_doc, @@ -2086,7 +2147,7 @@ sizeof(countobject), /* tp_basicsize */ 0, /* tp_itemsize */ /* methods */ - (destructor)PyObject_Del, /* tp_dealloc */ + (destructor)count_dealloc, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ From python-checkins at python.org Thu Oct 4 03:49:54 2007 From: python-checkins at python.org (kurt.kaiser) Date: Thu, 4 Oct 2007 03:49:54 +0200 (CEST) Subject: [Python-checkins] r58306 - python/trunk/Lib/idlelib/AutoComplete.py python/trunk/Lib/idlelib/AutoCompleteWindow.py Message-ID: <20071004014954.BB0B31E4011@bag.python.org> Author: kurt.kaiser Date: Thu Oct 4 03:49:54 2007 New Revision: 58306 Modified: python/trunk/Lib/idlelib/AutoComplete.py python/trunk/Lib/idlelib/AutoCompleteWindow.py Log: Assume that the user knows when he wants to end the line; don't insert something he didn't select or complete. Modified: python/trunk/Lib/idlelib/AutoComplete.py ============================================================================== --- python/trunk/Lib/idlelib/AutoComplete.py (original) +++ python/trunk/Lib/idlelib/AutoComplete.py Thu Oct 4 03:49:54 2007 @@ -27,7 +27,7 @@ menudefs = [ ('edit', [ - ("Show completions", "<>"), + ("Show Completions", "<>"), ]) ] Modified: python/trunk/Lib/idlelib/AutoCompleteWindow.py ============================================================================== --- python/trunk/Lib/idlelib/AutoCompleteWindow.py (original) +++ python/trunk/Lib/idlelib/AutoCompleteWindow.py Thu Oct 4 03:49:54 2007 @@ -283,20 +283,9 @@ self._selection_changed() return "break" - elif keysym == "Return" and not state: - # If start is a prefix of the selection, or there was an indication - # that the user used the completion window, put the selected - # completion in the text, and close the list. - # Otherwise, close the window and let the event through. - cursel = int(self.listbox.curselection()[0]) - if self.completions[cursel][:len(self.start)] == self.start or \ - self.userwantswindow: - self._change_start(self.completions[cursel]) - self.hide_window() - return "break" - else: - self.hide_window() - return + elif keysym == "Return": + self.hide_window() + return elif (self.mode == AutoComplete.COMPLETE_ATTRIBUTES and keysym in ("period", "space", "parenleft", "parenright", "bracketleft", From python-checkins at python.org Thu Oct 4 04:07:51 2007 From: python-checkins at python.org (kurt.kaiser) Date: Thu, 4 Oct 2007 04:07:51 +0200 (CEST) Subject: [Python-checkins] r58307 - python/trunk/Lib/idlelib/PyShell.py Message-ID: <20071004020751.39B1A1E4011@bag.python.org> Author: kurt.kaiser Date: Thu Oct 4 04:07:50 2007 New Revision: 58307 Modified: python/trunk/Lib/idlelib/PyShell.py Log: Remove unused theme that was causing a fault in p3k. Modified: python/trunk/Lib/idlelib/PyShell.py ============================================================================== --- python/trunk/Lib/idlelib/PyShell.py (original) +++ python/trunk/Lib/idlelib/PyShell.py Thu Oct 4 04:07:50 2007 @@ -299,7 +299,6 @@ "stdout": idleConf.GetHighlight(theme, "stdout"), "stderr": idleConf.GetHighlight(theme, "stderr"), "console": idleConf.GetHighlight(theme, "console"), - None: idleConf.GetHighlight(theme, "normal"), }) class ModifiedUndoDelegator(UndoDelegator): From python-checkins at python.org Thu Oct 4 04:09:17 2007 From: python-checkins at python.org (kurt.kaiser) Date: Thu, 4 Oct 2007 04:09:17 +0200 (CEST) Subject: [Python-checkins] r58308 - python/trunk/Lib/idlelib/EditorWindow.py python/trunk/Lib/idlelib/FileList.py python/trunk/Lib/idlelib/NEWS.txt Message-ID: <20071004020917.EAAEE1E4011@bag.python.org> Author: kurt.kaiser Date: Thu Oct 4 04:09:17 2007 New Revision: 58308 Modified: python/trunk/Lib/idlelib/EditorWindow.py python/trunk/Lib/idlelib/FileList.py python/trunk/Lib/idlelib/NEWS.txt Log: Clean up EditorWindow close. Modified: python/trunk/Lib/idlelib/EditorWindow.py ============================================================================== --- python/trunk/Lib/idlelib/EditorWindow.py (original) +++ python/trunk/Lib/idlelib/EditorWindow.py Thu Oct 4 04:09:17 2007 @@ -560,7 +560,8 @@ def close_hook(self): if self.flist: - self.flist.close_edit(self) + self.flist.unregister_maybe_terminate(self) + self.flist = None def set_close_hook(self, close_hook): self.close_hook = close_hook @@ -827,22 +828,21 @@ if self.io.filename: self.update_recent_files_list(new_file=self.io.filename) WindowList.unregister_callback(self.postwindowsmenu) - if self.close_hook: - self.close_hook() - self.flist = None - colorizing = 0 self.unload_extensions() - self.io.close(); self.io = None - self.undo = None # XXX + self.io.close() + self.io = None + self.undo = None if self.color: - colorizing = self.color.colorizing - doh = colorizing and self.top - self.color.close(doh) # Cancel colorization + self.color.close(False) + self.color = None self.text = None self.tkinter_vars = None - self.per.close(); self.per = None - if not colorizing: - self.top.destroy() + self.per.close() + self.per = None + self.top.destroy() + if self.close_hook: + # unless override: unregister from flist, terminate if last window + self.close_hook() def load_extensions(self): self.extensions = {} @@ -1504,6 +1504,7 @@ filename = None edit = EditorWindow(root=root, filename=filename) edit.set_close_hook(root.quit) + edit.text.bind("<>", edit.close_event) root.mainloop() root.destroy() Modified: python/trunk/Lib/idlelib/FileList.py ============================================================================== --- python/trunk/Lib/idlelib/FileList.py (original) +++ python/trunk/Lib/idlelib/FileList.py Thu Oct 4 04:09:17 2007 @@ -50,7 +50,7 @@ break return "break" - def close_edit(self, edit): + def unregister_maybe_terminate(self, edit): try: key = self.inversedict[edit] except KeyError: Modified: python/trunk/Lib/idlelib/NEWS.txt ============================================================================== --- python/trunk/Lib/idlelib/NEWS.txt (original) +++ python/trunk/Lib/idlelib/NEWS.txt Thu Oct 4 04:09:17 2007 @@ -3,6 +3,8 @@ *Release date: XX-XXX-200X* +- Clean up EditorWindow close. + - Corrected some bugs in AutoComplete. Also, Page Up/Down in ACW implemented; mouse and cursor selection in ACWindow implemented; double Tab inserts current selection and closes ACW (similar to double-click and Return); scroll @@ -24,6 +26,8 @@ - Bug #813342: Start the IDLE subprocess with -Qnew if the parent is started with that option. +- Honor the "Cancel" action in the save dialog (Debian bug #299092) + - Some syntax errors were being caught by tokenize during the tabnanny check, resulting in obscure error messages. Do the syntax check first. Bug 1562716, 1562719 From buildbot at python.org Thu Oct 4 04:41:33 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Oct 2007 02:41:33 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20071004024134.283431E4011@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/241 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Oct 4 04:53:07 2007 From: python-checkins at python.org (kurt.kaiser) Date: Thu, 4 Oct 2007 04:53:07 +0200 (CEST) Subject: [Python-checkins] r58309 - python/trunk/Lib/idlelib/EditorWindow.py python/trunk/Lib/idlelib/NEWS.txt python/trunk/Lib/idlelib/aboutDialog.py python/trunk/Lib/idlelib/textView.py Message-ID: <20071004025307.6A8F31E4011@bag.python.org> Author: kurt.kaiser Date: Thu Oct 4 04:53:07 2007 New Revision: 58309 Modified: python/trunk/Lib/idlelib/EditorWindow.py python/trunk/Lib/idlelib/NEWS.txt python/trunk/Lib/idlelib/aboutDialog.py python/trunk/Lib/idlelib/textView.py Log: textView cleanup. Patch 1718043 Tal Einat. M idlelib/EditorWindow.py M idlelib/aboutDialog.py M idlelib/textView.py M idlelib/NEWS.txt Modified: python/trunk/Lib/idlelib/EditorWindow.py ============================================================================== --- python/trunk/Lib/idlelib/EditorWindow.py (original) +++ python/trunk/Lib/idlelib/EditorWindow.py Thu Oct 4 04:53:07 2007 @@ -392,7 +392,7 @@ def help_dialog(self, event=None): fn=os.path.join(os.path.abspath(os.path.dirname(__file__)),'help.txt') - textView.TextViewer(self.top,'Help',fn) + textView.view_file(self.top,'Help',fn) def python_docs(self, event=None): if sys.platform[:3] == 'win': Modified: python/trunk/Lib/idlelib/NEWS.txt ============================================================================== --- python/trunk/Lib/idlelib/NEWS.txt (original) +++ python/trunk/Lib/idlelib/NEWS.txt Thu Oct 4 04:53:07 2007 @@ -3,6 +3,8 @@ *Release date: XX-XXX-200X* +- textView cleanup. Patch 1718043 Tal Einat. + - Clean up EditorWindow close. - Corrected some bugs in AutoComplete. Also, Page Up/Down in ACW implemented; Modified: python/trunk/Lib/idlelib/aboutDialog.py ============================================================================== --- python/trunk/Lib/idlelib/aboutDialog.py (original) +++ python/trunk/Lib/idlelib/aboutDialog.py Thu Oct 4 04:53:07 2007 @@ -3,7 +3,8 @@ """ from Tkinter import * -import string, os +import os +import os.path import textView import idlever @@ -70,7 +71,7 @@ tkVer[len(tkVer)-1] = str('%.3g' % (float('.'+tkVer[len(tkVer)-1])))[2:] if tkVer[len(tkVer)-1] == '': tkVer[len(tkVer)-1] = '0' - tkVer = string.join(tkVer,'.') + tkVer = '.'.join(tkVer) labelTkVer = Label(frameBg, text='Tk version: '+ tkVer, fg=self.fg, bg=self.bg) labelTkVer.grid(row=9, column=1, sticky=W, padx=2, pady=0) @@ -110,45 +111,31 @@ idle_credits_b.pack(side=LEFT, padx=10, pady=10) def ShowLicense(self): - self.display_printer_text(license, 'About - License') + self.display_printer_text('About - License', license) def ShowCopyright(self): - self.display_printer_text(copyright, 'About - Copyright') + self.display_printer_text('About - Copyright', copyright) def ShowPythonCredits(self): - self.display_printer_text(credits, 'About - Python Credits') + self.display_printer_text('About - Python Credits', credits) def ShowIDLECredits(self): - self.ViewFile('About - Credits','CREDITS.txt', 'iso-8859-1') + self.display_file_text('About - Credits', 'CREDITS.txt', 'iso-8859-1') def ShowIDLEAbout(self): - self.ViewFile('About - Readme', 'README.txt') + self.display_file_text('About - Readme', 'README.txt') def ShowIDLENEWS(self): - self.ViewFile('About - NEWS', 'NEWS.txt') + self.display_file_text('About - NEWS', 'NEWS.txt') - def display_printer_text(self, printer, title): + def display_printer_text(self, title, printer): printer._Printer__setup() - data = '\n'.join(printer._Printer__lines) - textView.TextViewer(self, title, None, data) + text = '\n'.join(printer._Printer__lines) + textView.view_text(self, title, text) - def ViewFile(self, viewTitle, viewFile, encoding=None): - fn = os.path.join(os.path.abspath(os.path.dirname(__file__)), viewFile) - if encoding: - import codecs - try: - textFile = codecs.open(fn, 'r') - except IOError: - import tkMessageBox - tkMessageBox.showerror(title='File Load Error', - message='Unable to load file %r .' % (fn,), - parent=self) - return - else: - data = textFile.read() - else: - data = None - textView.TextViewer(self, viewTitle, fn, data=data) + def display_file_text(self, title, filename, encoding=None): + fn = os.path.join(os.path.abspath(os.path.dirname(__file__)), filename) + textView.view_file(self, title, fn, encoding) def Ok(self, event=None): self.destroy() Modified: python/trunk/Lib/idlelib/textView.py ============================================================================== --- python/trunk/Lib/idlelib/textView.py (original) +++ python/trunk/Lib/idlelib/textView.py Thu Oct 4 04:53:07 2007 @@ -6,13 +6,12 @@ import tkMessageBox class TextViewer(Toplevel): + """A simple text viewer dialog for IDLE + """ - simple text viewer dialog for idle - """ - def __init__(self, parent, title, fileName, data=None): - """If data exists, load it into viewer, otherwise try to load file. + def __init__(self, parent, title, text): + """Show the given text in a scrollable window with a 'close' button - fileName - string, should be an absoulute filename """ Toplevel.__init__(self, parent) self.configure(borderwidth=5) @@ -33,23 +32,10 @@ #key bindings for this dialog self.bind('',self.Ok) #dismiss dialog self.bind('',self.Ok) #dismiss dialog - if data: - self.textView.insert(0.0, data) - else: - self.LoadTextFile(fileName) + self.textView.insert(0.0, text) self.textView.config(state=DISABLED) self.wait_window() - def LoadTextFile(self, fileName): - textFile = None - try: - textFile = open(fileName, 'r') - except IOError: - tkMessageBox.showerror(title='File Load Error', - message='Unable to load file %r .' % (fileName,)) - else: - self.textView.insert(0.0,textFile.read()) - def CreateWidgets(self): frameText = Frame(self, relief=SUNKEN, height=700) frameButtons = Frame(self) @@ -70,9 +56,38 @@ def Ok(self, event=None): self.destroy() + +def view_text(parent, title, text): + TextViewer(parent, title, text) + +def view_file(parent, title, filename, encoding=None): + try: + if encoding: + import codecs + textFile = codecs.open(filename, 'r') + else: + textFile = open(filename, 'r') + except IOError: + import tkMessageBox + tkMessageBox.showerror(title='File Load Error', + message='Unable to load file %r .' % filename, + parent=parent) + else: + return view_text(parent, title, textFile.read()) + + if __name__ == '__main__': #test the dialog root=Tk() - Button(root,text='View', - command=lambda:TextViewer(root,'Text','./textView.py')).pack() + root.title('textView test') + filename = './textView.py' + text = file(filename, 'r').read() + btn1 = Button(root, text='view_text', + command=lambda:view_text(root, 'view_text', text)) + btn1.pack(side=LEFT) + btn2 = Button(root, text='view_file', + command=lambda:view_file(root, 'view_file', filename)) + btn2.pack(side=LEFT) + close = Button(root, text='Close', command=root.destroy) + close.pack(side=RIGHT) root.mainloop() From python-checkins at python.org Thu Oct 4 05:11:13 2007 From: python-checkins at python.org (kurt.kaiser) Date: Thu, 4 Oct 2007 05:11:13 +0200 (CEST) Subject: [Python-checkins] r58310 - python/trunk/Lib/idlelib/NEWS.txt python/trunk/Lib/idlelib/configDialog.py Message-ID: <20071004031113.519711E4011@bag.python.org> Author: kurt.kaiser Date: Thu Oct 4 05:11:12 2007 New Revision: 58310 Modified: python/trunk/Lib/idlelib/NEWS.txt python/trunk/Lib/idlelib/configDialog.py Log: configDialog cleanup. Patch 1730217 Tal Einat. Modified: python/trunk/Lib/idlelib/NEWS.txt ============================================================================== --- python/trunk/Lib/idlelib/NEWS.txt (original) +++ python/trunk/Lib/idlelib/NEWS.txt Thu Oct 4 05:11:12 2007 @@ -3,6 +3,8 @@ *Release date: XX-XXX-200X* +- configDialog cleanup. Patch 1730217 Tal Einat. + - textView cleanup. Patch 1718043 Tal Einat. - Clean up EditorWindow close. Modified: python/trunk/Lib/idlelib/configDialog.py ============================================================================== --- python/trunk/Lib/idlelib/configDialog.py (original) +++ python/trunk/Lib/idlelib/configDialog.py Thu Oct 4 05:11:12 2007 @@ -24,6 +24,8 @@ def __init__(self,parent,title): Toplevel.__init__(self, parent) + self.wm_withdraw() + self.configure(borderwidth=5) self.geometry("+%d+%d" % (parent.winfo_rootx()+20, parent.winfo_rooty()+30)) @@ -58,6 +60,8 @@ #self.bind('',self.Help) #context help self.LoadConfigs() self.AttachVarCallbacks() #avoid callbacks during LoadConfigs + + self.wm_deiconify() self.wait_window() def CreateWidgets(self): @@ -67,22 +71,27 @@ frameActionButtons = Frame(self) #action buttons self.buttonHelp = Button(frameActionButtons,text='Help', - command=self.Help,takefocus=FALSE) + command=self.Help,takefocus=FALSE, + padx=6,pady=3) self.buttonOk = Button(frameActionButtons,text='Ok', - command=self.Ok,takefocus=FALSE) + command=self.Ok,takefocus=FALSE, + padx=6,pady=3) self.buttonApply = Button(frameActionButtons,text='Apply', - command=self.Apply,takefocus=FALSE) + command=self.Apply,takefocus=FALSE, + padx=6,pady=3) self.buttonCancel = Button(frameActionButtons,text='Cancel', - command=self.Cancel,takefocus=FALSE) + command=self.Cancel,takefocus=FALSE, + padx=6,pady=3) self.CreatePageFontTab() self.CreatePageHighlight() self.CreatePageKeys() self.CreatePageGeneral() - self.buttonHelp.pack(side=RIGHT,padx=5,pady=5) - self.buttonOk.pack(side=LEFT,padx=5,pady=5) - self.buttonApply.pack(side=LEFT,padx=5,pady=5) - self.buttonCancel.pack(side=LEFT,padx=5,pady=5) + self.buttonHelp.pack(side=RIGHT,padx=5) + self.buttonOk.pack(side=LEFT,padx=5) + self.buttonApply.pack(side=LEFT,padx=5) + self.buttonCancel.pack(side=LEFT,padx=5) frameActionButtons.pack(side=BOTTOM) + Frame(self, border=0).pack(side=BOTTOM,pady=2) self.tabPages.pack(side=TOP,expand=TRUE,fill=BOTH) def CreatePageFontTab(self): @@ -96,14 +105,15 @@ #body frame frame=self.tabPages.pages['Fonts/Tabs']['page'] #body section frames - frameFont=Frame(frame,borderwidth=2,relief=GROOVE) - frameIndent=Frame(frame,borderwidth=2,relief=GROOVE) + frameFont=LabelFrame(frame,borderwidth=2,relief=GROOVE, + text=' Base Editor Font ') + frameIndent=LabelFrame(frame,borderwidth=2,relief=GROOVE, + text=' Indentation Width ') #frameFont - labelFontTitle=Label(frameFont,text='Set Base Editor Font') frameFontName=Frame(frameFont) frameFontParam=Frame(frameFont) labelFontNameTitle=Label(frameFontName,justify=LEFT, - text='Font :') + text='Font Face :') self.listFontName=Listbox(frameFontName,height=5,takefocus=FALSE, exportselection=FALSE) self.listFontName.bind('',self.OnListFontButtonRelease) @@ -124,14 +134,13 @@ labelSpaceNumTitle=Label(frameIndentSize, justify=LEFT, text='Python Standard: 4 Spaces!') self.scaleSpaceNum=Scale(frameIndentSize, variable=self.spaceNum, - label='Indentation Width', orient='horizontal', + orient='horizontal', tickinterval=2, from_=2, to=16) #widget packing #body - frameFont.pack(side=LEFT,padx=5,pady=10,expand=TRUE,fill=BOTH) - frameIndent.pack(side=LEFT,padx=5,pady=10,fill=Y) + frameFont.pack(side=LEFT,padx=5,pady=5,expand=TRUE,fill=BOTH) + frameIndent.pack(side=LEFT,padx=5,pady=5,fill=Y) #frameFont - labelFontTitle.pack(side=TOP,anchor=W,padx=5,pady=5) frameFontName.pack(side=TOP,padx=5,pady=5,fill=X) frameFontParam.pack(side=TOP,padx=5,pady=5,fill=X) labelFontNameTitle.pack(side=TOP,anchor=W) @@ -143,7 +152,7 @@ frameFontSample.pack(side=TOP,padx=5,pady=5,expand=TRUE,fill=BOTH) self.labelFontSample.pack(expand=TRUE,fill=BOTH) #frameIndent - frameIndentSize.pack(side=TOP,padx=5,pady=5,fill=BOTH) + frameIndentSize.pack(side=TOP,fill=X) labelSpaceNumTitle.pack(side=TOP,anchor=W,padx=5) self.scaleSpaceNum.pack(side=TOP,padx=5,fill=X) return frame @@ -160,8 +169,10 @@ #body frame frame=self.tabPages.pages['Highlighting']['page'] #body section frames - frameCustom=Frame(frame,borderwidth=2,relief=GROOVE) - frameTheme=Frame(frame,borderwidth=2,relief=GROOVE) + frameCustom=LabelFrame(frame,borderwidth=2,relief=GROOVE, + text=' Custom Highlighting ') + frameTheme=LabelFrame(frame,borderwidth=2,relief=GROOVE, + text=' Highlighting Theme ') #frameCustom self.textHighlightSample=Text(frameCustom,relief=SOLID,borderwidth=1, font=('courier',12,''),cursor='hand2',width=21,height=10, @@ -189,7 +200,6 @@ text.config(state=DISABLED) self.frameColourSet=Frame(frameCustom,relief=SOLID,borderwidth=1) frameFgBg=Frame(frameCustom) - labelCustomTitle=Label(frameCustom,text='Set Custom Highlighting') buttonSetColour=Button(self.frameColourSet,text='Choose Colour for :', command=self.GetColour,highlightthickness=0) self.optMenuHighlightTarget=DynOptionMenu(self.frameColourSet, @@ -202,7 +212,6 @@ buttonSaveCustomTheme=Button(frameCustom, text='Save as New Custom Theme',command=self.SaveAsNewTheme) #frameTheme - labelThemeTitle=Label(frameTheme,text='Select a Highlighting Theme') labelTypeTitle=Label(frameTheme,text='Select : ') self.radioThemeBuiltin=Radiobutton(frameTheme,variable=self.themeIsBuiltin, value=1,command=self.SetThemeType,text='a Built-in Theme') @@ -216,10 +225,9 @@ command=self.DeleteCustomTheme) ##widget packing #body - frameCustom.pack(side=LEFT,padx=5,pady=10,expand=TRUE,fill=BOTH) - frameTheme.pack(side=LEFT,padx=5,pady=10,fill=Y) + frameCustom.pack(side=LEFT,padx=5,pady=5,expand=TRUE,fill=BOTH) + frameTheme.pack(side=LEFT,padx=5,pady=5,fill=Y) #frameCustom - labelCustomTitle.pack(side=TOP,anchor=W,padx=5,pady=5) self.frameColourSet.pack(side=TOP,padx=5,pady=5,expand=TRUE,fill=X) frameFgBg.pack(side=TOP,padx=5,pady=0) self.textHighlightSample.pack(side=TOP,padx=5,pady=5,expand=TRUE, @@ -230,7 +238,6 @@ self.radioBg.pack(side=RIGHT,anchor=W) buttonSaveCustomTheme.pack(side=BOTTOM,fill=X,padx=5,pady=5) #frameTheme - labelThemeTitle.pack(side=TOP,anchor=W,padx=5,pady=5) labelTypeTitle.pack(side=TOP,anchor=W,padx=5,pady=5) self.radioThemeBuiltin.pack(side=TOP,anchor=W,padx=5) self.radioThemeCustom.pack(side=TOP,anchor=W,padx=5,pady=2) @@ -250,11 +257,12 @@ #body frame frame=self.tabPages.pages['Keys']['page'] #body section frames - frameCustom=Frame(frame,borderwidth=2,relief=GROOVE) - frameKeySets=Frame(frame,borderwidth=2,relief=GROOVE) + frameCustom=LabelFrame(frame,borderwidth=2,relief=GROOVE, + text=' Custom Key Bindings ') + frameKeySets=LabelFrame(frame,borderwidth=2,relief=GROOVE, + text=' Key Set ') #frameCustom frameTarget=Frame(frameCustom) - labelCustomTitle=Label(frameCustom,text='Set Custom Key Bindings') labelTargetTitle=Label(frameTarget,text='Action - Key(s)') scrollTargetY=Scrollbar(frameTarget) scrollTargetX=Scrollbar(frameTarget,orient=HORIZONTAL) @@ -270,7 +278,6 @@ buttonSaveCustomKeys=Button(frameCustom, text='Save as New Custom Key Set',command=self.SaveAsNewKeySet) #frameKeySets - labelKeysTitle=Label(frameKeySets,text='Select a Key Set') labelTypeTitle=Label(frameKeySets,text='Select : ') self.radioKeysBuiltin=Radiobutton(frameKeySets,variable=self.keysAreBuiltin, value=1,command=self.SetKeysType,text='a Built-in Key Set') @@ -287,7 +294,6 @@ frameCustom.pack(side=LEFT,padx=5,pady=5,expand=TRUE,fill=BOTH) frameKeySets.pack(side=LEFT,padx=5,pady=5,fill=Y) #frameCustom - labelCustomTitle.pack(side=TOP,anchor=W,padx=5,pady=5) buttonSaveCustomKeys.pack(side=BOTTOM,fill=X,padx=5,pady=5) self.buttonNewKeys.pack(side=BOTTOM,fill=X,padx=5,pady=5) frameTarget.pack(side=LEFT,padx=5,pady=5,expand=TRUE,fill=BOTH) @@ -299,7 +305,6 @@ scrollTargetY.grid(row=1,column=1,sticky=NS) scrollTargetX.grid(row=2,column=0,sticky=EW) #frameKeySets - labelKeysTitle.pack(side=TOP,anchor=W,padx=5,pady=5) labelTypeTitle.pack(side=TOP,anchor=W,padx=5,pady=5) self.radioKeysBuiltin.pack(side=TOP,anchor=W,padx=5) self.radioKeysCustom.pack(side=TOP,anchor=W,padx=5,pady=2) @@ -322,21 +327,22 @@ #body frame=self.tabPages.pages['General']['page'] #body section frames - frameRun=Frame(frame,borderwidth=2,relief=GROOVE) - frameSave=Frame(frame,borderwidth=2,relief=GROOVE) + frameRun=LabelFrame(frame,borderwidth=2,relief=GROOVE, + text=' Startup Preferences ') + frameSave=LabelFrame(frame,borderwidth=2,relief=GROOVE, + text=' Autosave Preferences ') frameWinSize=Frame(frame,borderwidth=2,relief=GROOVE) frameParaSize=Frame(frame,borderwidth=2,relief=GROOVE) frameEncoding=Frame(frame,borderwidth=2,relief=GROOVE) - frameHelp=Frame(frame,borderwidth=2,relief=GROOVE) + frameHelp=LabelFrame(frame,borderwidth=2,relief=GROOVE, + text=' Additional Help Sources ') #frameRun - labelRunTitle=Label(frameRun,text='Startup Preferences') labelRunChoiceTitle=Label(frameRun,text='At Startup') radioStartupEdit=Radiobutton(frameRun,variable=self.startupEdit, value=1,command=self.SetKeysType,text="Open Edit Window") radioStartupShell=Radiobutton(frameRun,variable=self.startupEdit, value=0,command=self.SetKeysType,text='Open Shell Window') #frameSave - labelSaveTitle=Label(frameSave,text='Autosave Preference') labelRunSaveTitle=Label(frameSave,text='At Start of Run (F5) ') radioSaveAsk=Radiobutton(frameSave,variable=self.autoSave, value=0,command=self.SetKeysType,text="Prompt to Save") @@ -367,7 +373,6 @@ #frameHelp frameHelpList=Frame(frameHelp) frameHelpListButtons=Frame(frameHelpList) - labelHelpListTitle=Label(frameHelpList,text='Additional Help Sources:') scrollHelpList=Scrollbar(frameHelpList) self.listHelp=Listbox(frameHelpList,height=5,takefocus=FALSE, exportselection=FALSE) @@ -389,12 +394,10 @@ frameEncoding.pack(side=TOP,padx=5,pady=5,fill=X) frameHelp.pack(side=TOP,padx=5,pady=5,expand=TRUE,fill=BOTH) #frameRun - labelRunTitle.pack(side=TOP,anchor=W,padx=5,pady=5) labelRunChoiceTitle.pack(side=LEFT,anchor=W,padx=5,pady=5) radioStartupShell.pack(side=RIGHT,anchor=W,padx=5,pady=5) radioStartupEdit.pack(side=RIGHT,anchor=W,padx=5,pady=5) #frameSave - labelSaveTitle.pack(side=TOP,anchor=W,padx=5,pady=5) labelRunSaveTitle.pack(side=LEFT,anchor=W,padx=5,pady=5) radioSaveAuto.pack(side=RIGHT,anchor=W,padx=5,pady=5) radioSaveAsk.pack(side=RIGHT,anchor=W,padx=5,pady=5) @@ -415,7 +418,6 @@ #frameHelp frameHelpListButtons.pack(side=RIGHT,padx=5,pady=5,fill=Y) frameHelpList.pack(side=TOP,padx=5,pady=5,expand=TRUE,fill=BOTH) - labelHelpListTitle.pack(side=TOP,anchor=W) scrollHelpList.pack(side=RIGHT,anchor=W,fill=Y) self.listHelp.pack(side=LEFT,anchor=E,expand=TRUE,fill=BOTH) self.buttonHelpListEdit.pack(side=TOP,anchor=W,pady=5) From buildbot at python.org Thu Oct 4 05:34:43 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Oct 2007 03:34:43 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071004033443.3E3BF1E4011@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/189 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Oct 4 06:44:10 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Oct 2007 04:44:10 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071004044410.C61D11E4011@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/82 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Thu Oct 4 07:05:19 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Oct 2007 05:05:19 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20071004050519.F21CF1E4011@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/81 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Thu Oct 4 08:00:48 2007 From: python-checkins at python.org (neal.norwitz) Date: Thu, 4 Oct 2007 08:00:48 +0200 (CEST) Subject: [Python-checkins] r58311 - python/trunk/Objects/bufferobject.c Message-ID: <20071004060048.765191E4011@bag.python.org> Author: neal.norwitz Date: Thu Oct 4 08:00:48 2007 New Revision: 58311 Modified: python/trunk/Objects/bufferobject.c Log: Coverity #151: Remove deadcode. All this code already exists above starting at line 653. Modified: python/trunk/Objects/bufferobject.c ============================================================================== --- python/trunk/Objects/bufferobject.c (original) +++ python/trunk/Objects/bufferobject.c Thu Oct 4 08:00:48 2007 @@ -682,19 +682,6 @@ &start, &stop, &step, &slicelength) < 0) return -1; - pb = value ? value->ob_type->tp_as_buffer : NULL; - if (pb == NULL || - pb->bf_getreadbuffer == NULL || - pb->bf_getsegcount == NULL) { - PyErr_BadArgument(); - return -1; - } - if ((*pb->bf_getsegcount)(value, NULL) != 1) { - /* ### use a different exception type/message? */ - PyErr_SetString(PyExc_TypeError, - "single-segment buffer object expected"); - return -1; - } if ((othersize = (*pb->bf_getreadbuffer)(value, 0, &ptr2)) < 0) return -1; From python-checkins at python.org Thu Oct 4 08:57:33 2007 From: python-checkins at python.org (georg.brandl) Date: Thu, 4 Oct 2007 08:57:33 +0200 (CEST) Subject: [Python-checkins] r58312 - peps/trunk/pep-0344.txt peps/trunk/pep-3134.txt Message-ID: <20071004065733.EECA71E4011@bag.python.org> Author: georg.brandl Date: Thu Oct 4 08:57:33 2007 New Revision: 58312 Modified: peps/trunk/pep-0344.txt peps/trunk/pep-3134.txt Log: Don't link to the Internet RFCs -- these are Perl RFCs. Modified: peps/trunk/pep-0344.txt ============================================================================== --- peps/trunk/pep-0344.txt (original) +++ peps/trunk/pep-0344.txt Thu Oct 4 08:57:33 2007 @@ -117,7 +117,7 @@ As for other languages, Java and Ruby both discard the original exception when another exception occurs in a 'catch'/'rescue' or 'finally'/'ensure' clause. Perl 5 lacks built-in structured - exception handling. For Perl 6, RFC 88 [9] proposes an exception + exception handling. For Perl 6, RFC number 88 [9] proposes an exception mechanism that implicitly retains chained exceptions in an array named @@. In that RFC, the most recently raised exception is exposed for matching, as in this PEP; also, arbitrary expressions Modified: peps/trunk/pep-3134.txt ============================================================================== --- peps/trunk/pep-3134.txt (original) +++ peps/trunk/pep-3134.txt Thu Oct 4 08:57:33 2007 @@ -117,7 +117,7 @@ As for other languages, Java and Ruby both discard the original exception when another exception occurs in a 'catch'/'rescue' or 'finally'/'ensure' clause. Perl 5 lacks built-in structured - exception handling. For Perl 6, RFC 88 [9] proposes an exception + exception handling. For Perl 6, RFC number 88 [9] proposes an exception mechanism that implicitly retains chained exceptions in an array named @@. In that RFC, the most recently raised exception is exposed for matching, as in this PEP; also, arbitrary expressions From python-checkins at python.org Fri Oct 5 04:46:13 2007 From: python-checkins at python.org (fred.drake) Date: Fri, 5 Oct 2007 04:46:13 +0200 (CEST) Subject: [Python-checkins] r58325 - python/trunk/Doc/library/asynchat.rst python/trunk/Doc/library/asyncore.rst Message-ID: <20071005024613.3542D1E4002@bag.python.org> Author: fred.drake Date: Fri Oct 5 04:46:12 2007 New Revision: 58325 Modified: python/trunk/Doc/library/asynchat.rst python/trunk/Doc/library/asyncore.rst Log: wrap lines to <80 characters before fixing errors Modified: python/trunk/Doc/library/asynchat.rst ============================================================================== --- python/trunk/Doc/library/asynchat.rst (original) +++ python/trunk/Doc/library/asynchat.rst Fri Oct 5 04:46:12 2007 @@ -9,72 +9,77 @@ This module builds on the :mod:`asyncore` infrastructure, simplifying -asynchronous clients and servers and making it easier to handle protocols whose -elements are terminated by arbitrary strings, or are of variable length. +asynchronous clients and servers and making it easier to handle protocols +whose elements are terminated by arbitrary strings, or are of variable length. :mod:`asynchat` defines the abstract class :class:`async_chat` that you subclass, providing implementations of the :meth:`collect_incoming_data` and :meth:`found_terminator` methods. It uses the same asynchronous loop as -:mod:`asyncore`, and the two types of channel, :class:`asyncore.dispatcher` and -:class:`asynchat.async_chat`, can freely be mixed in the channel map. Typically -an :class:`asyncore.dispatcher` server channel generates new -:class:`asynchat.async_chat` channel objects as it receives incoming connection -requests. +:mod:`asyncore`, and the two types of channel, :class:`asyncore.dispatcher` +and :class:`asynchat.async_chat`, can freely be mixed in the channel map. +Typically an :class:`asyncore.dispatcher` server channel generates new +:class:`asynchat.async_chat` channel objects as it receives incoming +connection requests. .. class:: async_chat() This class is an abstract subclass of :class:`asyncore.dispatcher`. To make practical use of the code you must subclass :class:`async_chat`, providing - meaningful :meth:`collect_incoming_data` and :meth:`found_terminator` methods. + meaningful :meth:`collect_incoming_data` and :meth:`found_terminator` + methods. The :class:`asyncore.dispatcher` methods can be used, although not all make sense in a message/response context. - Like :class:`asyncore.dispatcher`, :class:`async_chat` defines a set of events - that are generated by an analysis of socket conditions after a :cfunc:`select` - call. Once the polling loop has been started the :class:`async_chat` object's - methods are called by the event-processing framework with no action on the part - of the programmer. - - Unlike :class:`asyncore.dispatcher`, :class:`async_chat` allows you to define a - first-in-first-out queue (fifo) of *producers*. A producer need have only one - method, :meth:`more`, which should return data to be transmitted on the channel. + Like :class:`asyncore.dispatcher`, :class:`async_chat` defines a set of + events that are generated by an analysis of socket conditions after a + :cfunc:`select` call. Once the polling loop has been started the + :class:`async_chat` object's methods are called by the event-processing + framework with no action on the part of the programmer. + + Unlike :class:`asyncore.dispatcher`, :class:`async_chat` allows you to + define a first-in-first-out queue (fifo) of *producers*. A producer need + have only one method, :meth:`more`, which should return data to be + transmitted on the channel. The producer indicates exhaustion (*i.e.* that it contains no more data) by having its :meth:`more` method return the empty string. At this point the - :class:`async_chat` object removes the producer from the fifo and starts using - the next producer, if any. When the producer fifo is empty the + :class:`async_chat` object removes the producer from the fifo and starts + using the next producer, if any. When the producer fifo is empty the :meth:`handle_write` method does nothing. You use the channel object's - :meth:`set_terminator` method to describe how to recognize the end of, or an - important breakpoint in, an incoming transmission from the remote endpoint. + :meth:`set_terminator` method to describe how to recognize the end of, or + an important breakpoint in, an incoming transmission from the remote + endpoint. To build a functioning :class:`async_chat` subclass your input methods - :meth:`collect_incoming_data` and :meth:`found_terminator` must handle the data - that the channel receives asynchronously. The methods are described below. + :meth:`collect_incoming_data` and :meth:`found_terminator` must handle the + data that the channel receives asynchronously. The methods are described + below. .. method:: async_chat.close_when_done() - Pushes a ``None`` on to the producer fifo. When this producer is popped off the - fifo it causes the channel to be closed. + Pushes a ``None`` on to the producer fifo. When this producer is popped off + the fifo it causes the channel to be closed. .. method:: async_chat.collect_incoming_data(data) - Called with *data* holding an arbitrary amount of received data. The default - method, which must be overridden, raises a :exc:`NotImplementedError` exception. + Called with *data* holding an arbitrary amount of received data. The + default method, which must be overridden, raises a + :exc:`NotImplementedError` exception. .. method:: async_chat.discard_buffers() - In emergencies this method will discard any data held in the input and/or output - buffers and the producer fifo. + In emergencies this method will discard any data held in the input and/or + output buffers and the producer fifo. .. method:: async_chat.found_terminator() - Called when the incoming data stream matches the termination condition set by - :meth:`set_terminator`. The default method, which must be overridden, raises a - :exc:`NotImplementedError` exception. The buffered input data should be - available via an instance attribute. + Called when the incoming data stream matches the termination condition set + by :meth:`set_terminator`. The default method, which must be overridden, + raises a :exc:`NotImplementedError` exception. The buffered input data + should be available via an instance attribute. .. method:: async_chat.get_terminator() @@ -90,59 +95,59 @@ .. method:: async_chat.handle_read() - Called when a read event fires on the channel's socket in the asynchronous loop. - The default method checks for the termination condition established by - :meth:`set_terminator`, which can be either the appearance of a particular - string in the input stream or the receipt of a particular number of characters. - When the terminator is found, :meth:`handle_read` calls the - :meth:`found_terminator` method after calling :meth:`collect_incoming_data` with - any data preceding the terminating condition. + Called when a read event fires on the channel's socket in the asynchronous + loop. The default method checks for the termination condition established + by :meth:`set_terminator`, which can be either the appearance of a + particular string in the input stream or the receipt of a particular number + of characters. When the terminator is found, :meth:`handle_read` calls the + :meth:`found_terminator` method after calling :meth:`collect_incoming_data` + with any data preceding the terminating condition. .. method:: async_chat.handle_write() - Called when the application may write data to the channel. The default method - calls the :meth:`initiate_send` method, which in turn will call - :meth:`refill_buffer` to collect data from the producer fifo associated with the - channel. + Called when the application may write data to the channel. The default + method calls the :meth:`initiate_send` method, which in turn will call + :meth:`refill_buffer` to collect data from the producer fifo associated + with the channel. .. method:: async_chat.push(data) - Creates a :class:`simple_producer` object (*see below*) containing the data and - pushes it on to the channel's ``producer_fifo`` to ensure its transmission. This - is all you need to do to have the channel write the data out to the network, - although it is possible to use your own producers in more complex schemes to - implement encryption and chunking, for example. + Creates a :class:`simple_producer` object (*see below*) containing the data + and pushes it on to the channel's ``producer_fifo`` to ensure its + transmission. This is all you need to do to have the channel write the + data out to the network, although it is possible to use your own producers + in more complex schemes to implement encryption and chunking, for example. .. method:: async_chat.push_with_producer(producer) - Takes a producer object and adds it to the producer fifo associated with the - channel. When all currently-pushed producers have been exhausted the channel - will consume this producer's data by calling its :meth:`more` method and send - the data to the remote endpoint. + Takes a producer object and adds it to the producer fifo associated with + the channel. When all currently-pushed producers have been exhausted the + channel will consume this producer's data by calling its :meth:`more` + method and send the data to the remote endpoint. .. method:: async_chat.readable() - Should return ``True`` for the channel to be included in the set of channels - tested by the :cfunc:`select` loop for readability. + Should return ``True`` for the channel to be included in the set of + channels tested by the :cfunc:`select` loop for readability. .. method:: async_chat.refill_buffer() - Refills the output buffer by calling the :meth:`more` method of the producer at - the head of the fifo. If it is exhausted then the producer is popped off the - fifo and the next producer is activated. If the current producer is, or becomes, - ``None`` then the channel is closed. + Refills the output buffer by calling the :meth:`more` method of the + producer at the head of the fifo. If it is exhausted then the producer is + popped off the fifo and the next producer is activated. If the current + producer is, or becomes, ``None`` then the channel is closed. .. method:: async_chat.set_terminator(term) - Sets the terminating condition to be recognised on the channel. ``term`` may be - any of three types of value, corresponding to three different ways to handle - incoming protocol data. + Sets the terminating condition to be recognized on the channel. ``term`` + may be any of three types of value, corresponding to three different ways + to handle incoming protocol data. +-----------+---------------------------------------------+ | term | Description | @@ -158,8 +163,8 @@ | | forever | +-----------+---------------------------------------------+ - Note that any data following the terminator will be available for reading by the - channel after :meth:`found_terminator` is called. + Note that any data following the terminator will be available for reading + by the channel after :meth:`found_terminator` is called. .. method:: async_chat.writable() @@ -174,29 +179,29 @@ .. class:: simple_producer(data[, buffer_size=512]) - A :class:`simple_producer` takes a chunk of data and an optional buffer size. - Repeated calls to its :meth:`more` method yield successive chunks of the data no - larger than *buffer_size*. + A :class:`simple_producer` takes a chunk of data and an optional buffer + size. Repeated calls to its :meth:`more` method yield successive chunks of + the data no larger than *buffer_size*. .. method:: simple_producer.more() - Produces the next chunk of information from the producer, or returns the empty - string. + Produces the next chunk of information from the producer, or returns the + empty string. .. class:: fifo([list=None]) - Each channel maintains a :class:`fifo` holding data which has been pushed by the - application but not yet popped for writing to the channel. A :class:`fifo` is a - list used to hold data and/or producers until they are required. If the *list* - argument is provided then it should contain producers or data items to be - written to the channel. + Each channel maintains a :class:`fifo` holding data which has been pushed + by the application but not yet popped for writing to the channel. A + :class:`fifo` is a list used to hold data and/or producers until they are + required. If the *list* argument is provided then it should contain + producers or data items to be written to the channel. .. method:: fifo.is_empty() - Returns ``True`` iff the fifo is empty. + Returns ``True`` if and only if the fifo is empty. .. method:: fifo.first() @@ -206,14 +211,14 @@ .. method:: fifo.push(data) - Adds the given data (which may be a string or a producer object) to the producer - fifo. + Adds the given data (which may be a string or a producer object) to the + producer fifo. .. method:: fifo.pop() - If the fifo is not empty, returns ``True, first()``, deleting the popped item. - Returns ``False, None`` for an empty fifo. + If the fifo is not empty, returns ``True, first()``, deleting the popped + item. Returns ``False, None`` for an empty fifo. The :mod:`asynchat` module also defines one utility function, which may be of use in network and textual analysis operations. @@ -221,8 +226,8 @@ .. function:: find_prefix_at_end(haystack, needle) - Returns ``True`` if string *haystack* ends with any non-empty prefix of string - *needle*. + Returns ``True`` if string *haystack* ends with any non-empty prefix of + string *needle*. .. _asynchat-example: @@ -231,19 +236,20 @@ ---------------- The following partial example shows how HTTP requests can be read with -:class:`async_chat`. A web server might create an :class:`http_request_handler` -object for each incoming client connection. Notice that initially the channel -terminator is set to match the blank line at the end of the HTTP headers, and a -flag indicates that the headers are being read. - -Once the headers have been read, if the request is of type POST (indicating that -further data are present in the input stream) then the ``Content-Length:`` -header is used to set a numeric terminator to read the right amount of data from -the channel. +:class:`async_chat`. A web server might create an +:class:`http_request_handler` object for each incoming client connection. +Notice that initially the channel terminator is set to match the blank line at +the end of the HTTP headers, and a flag indicates that the headers are being +read. + +Once the headers have been read, if the request is of type POST (indicating +that further data are present in the input stream) then the +``Content-Length:`` header is used to set a numeric terminator to read the +right amount of data from the channel. The :meth:`handle_request` method is called once all relevant input has been -marshalled, after setting the channel terminator to ``None`` to ensure that any -extraneous data sent by the web client are ignored. :: +marshalled, after setting the channel terminator to ``None`` to ensure that +any extraneous data sent by the web client are ignored. :: class http_request_handler(asynchat.async_chat): @@ -281,4 +287,3 @@ self.handling = True self.ibuffer = [] self.handle_request() - Modified: python/trunk/Doc/library/asyncore.rst ============================================================================== --- python/trunk/Doc/library/asyncore.rst (original) +++ python/trunk/Doc/library/asyncore.rst Fri Oct 5 04:46:12 2007 @@ -3,7 +3,8 @@ =============================================== .. module:: asyncore - :synopsis: A base class for developing asynchronous socket handling services. + :synopsis: A base class for developing asynchronous socket handling + services. .. moduleauthor:: Sam Rushing .. sectionauthor:: Christopher Petrilli .. sectionauthor:: Steve Holden @@ -16,59 +17,62 @@ There are only two ways to have a program on a single processor do "more than one thing at a time." Multi-threaded programming is the simplest and most -popular way to do it, but there is another very different technique, that lets +popular way to do it, but there is another very different technique, that lets you have nearly all the advantages of multi-threading, without actually using multiple threads. It's really only practical if your program is largely I/O -bound. If your program is processor bound, then pre-emptive scheduled threads -are probably what you really need. Network servers are rarely processor bound, -however. +bound. If your program is processor bound, then pre-emptive scheduled threads +are probably what you really need. Network servers are rarely processor +bound, however. If your operating system supports the :cfunc:`select` system call in its I/O library (and nearly all do), then you can use it to juggle multiple -communication channels at once; doing other work while your I/O is taking place -in the "background." Although this strategy can seem strange and complex, -especially at first, it is in many ways easier to understand and control than -multi-threaded programming. The :mod:`asyncore` module solves many of the -difficult problems for you, making the task of building sophisticated -high-performance network servers and clients a snap. For "conversational" -applications and protocols the companion :mod:`asynchat` module is invaluable. - -The basic idea behind both modules is to create one or more network *channels*, -instances of class :class:`asyncore.dispatcher` and -:class:`asynchat.async_chat`. Creating the channels adds them to a global map, -used by the :func:`loop` function if you do not provide it with your own *map*. +communication channels at once; doing other work while your I/O is taking +place in the "background." Although this strategy can seem strange and +complex, especially at first, it is in many ways easier to understand and +control than multi-threaded programming. The :mod:`asyncore` module solves +many of the difficult problems for you, making the task of building +sophisticated high-performance network servers and clients a snap. For +"conversational" applications and protocols the companion :mod:`asynchat` +module is invaluable. + +The basic idea behind both modules is to create one or more network +*channels*, instances of class :class:`asyncore.dispatcher` and +:class:`asynchat.async_chat`. Creating the channels adds them to a global +map, used by the :func:`loop` function if you do not provide it with your own +*map*. Once the initial channel(s) is(are) created, calling the :func:`loop` function -activates channel service, which continues until the last channel (including any -that have been added to the map during asynchronous service) is closed. +activates channel service, which continues until the last channel (including +any that have been added to the map during asynchronous service) is closed. .. function:: loop([timeout[, use_poll[, map[,count]]]]) - Enter a polling loop that terminates after count passes or all open channels - have been closed. All arguments are optional. The *count* parameter defaults - to None, resulting in the loop terminating only when all channels have been - closed. The *timeout* argument sets the timeout parameter for the appropriate - :func:`select` or :func:`poll` call, measured in seconds; the default is 30 - seconds. The *use_poll* parameter, if true, indicates that :func:`poll` should - be used in preference to :func:`select` (the default is ``False``). - - The *map* parameter is a dictionary whose items are the channels to watch. As - channels are closed they are deleted from their map. If *map* is omitted, a - global map is used. Channels (instances of :class:`asyncore.dispatcher`, - :class:`asynchat.async_chat` and subclasses thereof) can freely be mixed in the - map. + Enter a polling loop that terminates after count passes or all open + channels have been closed. All arguments are optional. The *count* + parameter defaults to None, resulting in the loop terminating only when all + channels have been closed. The *timeout* argument sets the timeout + parameter for the appropriate :func:`select` or :func:`poll` call, measured + in seconds; the default is 30 seconds. The *use_poll* parameter, if true, + indicates that :func:`poll` should be used in preference to :func:`select` + (the default is ``False``). + + The *map* parameter is a dictionary whose items are the channels to watch. + As channels are closed they are deleted from their map. If *map* is + omitted, a global map is used. Channels (instances of + :class:`asyncore.dispatcher`, :class:`asynchat.async_chat` and subclasses + thereof) can freely be mixed in the map. .. class:: dispatcher() The :class:`dispatcher` class is a thin wrapper around a low-level socket - object. To make it more useful, it has a few methods for event-handling which - are called from the asynchronous loop. Otherwise, it can be treated as a - normal non-blocking socket object. + object. To make it more useful, it has a few methods for event-handling + which are called from the asynchronous loop. Otherwise, it can be treated + as a normal non-blocking socket object. - Two class attributes can be modified, to improve performance, or possibly even - to conserve memory. + Two class attributes can be modified, to improve performance, or possibly + even to conserve memory. .. data:: ac_in_buffer_size @@ -80,12 +84,13 @@ The asynchronous output buffer size (default ``4096``). - The firing of low-level events at certain times or in certain connection states - tells the asynchronous loop that certain higher-level events have taken place. - For example, if we have asked for a socket to connect to another host, we know - that the connection has been made when the socket becomes writable for the first - time (at this point you know that you may write to it with the expectation of - success). The implied higher-level events are: + The firing of low-level events at certain times or in certain connection + states tells the asynchronous loop that certain higher-level events have + taken place. For example, if we have asked for a socket to connect to + another host, we know that the connection has been made when the socket + becomes writable for the first time (at this point you know that you may + write to it with the expectation of success). The implied higher-level + events are: +----------------------+----------------------------------------+ | Event | Description | @@ -101,11 +106,11 @@ During asynchronous processing, each mapped channel's :meth:`readable` and :meth:`writable` methods are used to determine whether the channel's socket - should be added to the list of channels :cfunc:`select`\ ed or :cfunc:`poll`\ ed - for read and write events. + should be added to the list of channels :cfunc:`select`\ ed or + :cfunc:`poll`\ ed for read and write events. -Thus, the set of channel events is larger than the basic socket events. The full -set of methods that can be overridden in your subclass follows: +Thus, the set of channel events is larger than the basic socket events. The +full set of methods that can be overridden in your subclass follows: .. method:: dispatcher.handle_read() @@ -116,9 +121,9 @@ .. method:: dispatcher.handle_write() - Called when the asynchronous loop detects that a writable socket can be written. - Often this method will implement the necessary buffering for performance. For - example:: + Called when the asynchronous loop detects that a writable socket can be + written. Often this method will implement the necessary buffering for + performance. For example:: def handle_write(self): sent = self.send(self.buffer) @@ -127,15 +132,15 @@ .. method:: dispatcher.handle_expt() - Called when there is out of band (OOB) data for a socket connection. This will - almost never happen, as OOB is tenuously supported and rarely used. + Called when there is out of band (OOB) data for a socket connection. This + will almost never happen, as OOB is tenuously supported and rarely used. .. method:: dispatcher.handle_connect() - Called when the active opener's socket actually makes a connection. Might send a - "welcome" banner, or initiate a protocol negotiation with the remote endpoint, - for example. + Called when the active opener's socket actually makes a connection. Might + send a "welcome" banner, or initiate a protocol negotiation with the remote + endpoint, for example. .. method:: dispatcher.handle_close() @@ -152,40 +157,40 @@ .. method:: dispatcher.handle_accept() Called on listening channels (passive openers) when a connection can be - established with a new remote endpoint that has issued a :meth:`connect` call - for the local endpoint. + established with a new remote endpoint that has issued a :meth:`connect` + call for the local endpoint. .. method:: dispatcher.readable() - Called each time around the asynchronous loop to determine whether a channel's - socket should be added to the list on which read events can occur. The default - method simply returns ``True``, indicating that by default, all channels will - be interested in read events. + Called each time around the asynchronous loop to determine whether a + channel's socket should be added to the list on which read events can + occur. The default method simply returns ``True``, indicating that by + default, all channels will be interested in read events. .. method:: dispatcher.writable() - Called each time around the asynchronous loop to determine whether a channel's - socket should be added to the list on which write events can occur. The default - method simply returns ``True``, indicating that by default, all channels will - be interested in write events. + Called each time around the asynchronous loop to determine whether a + channel's socket should be added to the list on which write events can + occur. The default method simply returns ``True``, indicating that by + default, all channels will be interested in write events. -In addition, each channel delegates or extends many of the socket methods. Most -of these are nearly identical to their socket partners. +In addition, each channel delegates or extends many of the socket methods. +Most of these are nearly identical to their socket partners. .. method:: dispatcher.create_socket(family, type) - This is identical to the creation of a normal socket, and will use the same - options for creation. Refer to the :mod:`socket` documentation for information - on creating sockets. + This is identical to the creation of a normal socket, and will use the same + options for creation. Refer to the :mod:`socket` documentation for + information on creating sockets. .. method:: dispatcher.connect(address) - As with the normal socket object, *address* is a tuple with the first element - the host to connect to, and the second the port number. + As with the normal socket object, *address* is a tuple with the first + element the host to connect to, and the second the port number. .. method:: dispatcher.send(data) @@ -195,38 +200,41 @@ .. method:: dispatcher.recv(buffer_size) - Read at most *buffer_size* bytes from the socket's remote end-point. An empty - string implies that the channel has been closed from the other end. + Read at most *buffer_size* bytes from the socket's remote end-point. + An empty string implies that the channel has been closed from the other + end. .. method:: dispatcher.listen(backlog) - Listen for connections made to the socket. The *backlog* argument specifies the - maximum number of queued connections and should be at least 1; the maximum value - is system-dependent (usually 5). + Listen for connections made to the socket. The *backlog* argument + specifies the maximum number of queued connections and should be at least + 1; the maximum value is system-dependent (usually 5). .. method:: dispatcher.bind(address) Bind the socket to *address*. The socket must not already be bound. (The - format of *address* depends on the address family --- see above.) To mark the - socket as re-usable (setting the :const:`SO_REUSEADDR` option), call the - :class:`dispatcher` object's :meth:`set_reuse_addr` method. + format of *address* depends on the address family --- see above.) To mark + the socket as re-usable (setting the :const:`SO_REUSEADDR` option), call + the :class:`dispatcher` object's :meth:`set_reuse_addr` method. .. method:: dispatcher.accept() - Accept a connection. The socket must be bound to an address and listening for - connections. The return value is a pair ``(conn, address)`` where *conn* is a - *new* socket object usable to send and receive data on the connection, and - *address* is the address bound to the socket on the other end of the connection. + Accept a connection. The socket must be bound to an address and listening + for connections. The return value is a pair ``(conn, address)`` where + *conn* is a *new* socket object usable to send and receive data on the + connection, and *address* is the address bound to the socket on the other + end of the connection. .. method:: dispatcher.close() - Close the socket. All future operations on the socket object will fail. The - remote end-point will receive no more data (after queued data is flushed). - Sockets are automatically closed when they are garbage-collected. + Close the socket. All future operations on the socket object will fail. + The remote end-point will receive no more data (after queued data is + flushed). Sockets are automatically closed when they are + garbage-collected. .. _asyncore-example: @@ -266,4 +274,3 @@ c = http_client('www.python.org', '/') asyncore.loop() - From python-checkins at python.org Fri Oct 5 04:47:07 2007 From: python-checkins at python.org (raymond.hettinger) Date: Fri, 5 Oct 2007 04:47:07 +0200 (CEST) Subject: [Python-checkins] r58326 - in python/trunk: Doc/library/collections.rst Lib/collections.py Lib/test/test_collections.py Lib/test/test_deque.py Misc/NEWS Modules/_collectionsmodule.c Message-ID: <20071005024707.F07891E4002@bag.python.org> Author: raymond.hettinger Date: Fri Oct 5 04:47:07 2007 New Revision: 58326 Modified: python/trunk/Doc/library/collections.rst python/trunk/Lib/collections.py python/trunk/Lib/test/test_collections.py python/trunk/Lib/test/test_deque.py python/trunk/Misc/NEWS python/trunk/Modules/_collectionsmodule.c Log: Add __asdict__() to NamedTuple and refine the docs. Add maxlen support to deque() and fixup docs. Partially fix __reduce__(). The None as a third arg was no longer supported. Still needs work on __reduce__() to handle recursive inputs. Modified: python/trunk/Doc/library/collections.rst ============================================================================== --- python/trunk/Doc/library/collections.rst (original) +++ python/trunk/Doc/library/collections.rst Fri Oct 5 04:47:07 2007 @@ -34,7 +34,7 @@ ---------------------- -.. class:: deque([iterable]) +.. class:: deque([iterable[, maxlen]]) Returns a new deque object initialized left-to-right (using :meth:`append`) with data from *iterable*. If *iterable* is not specified, the new deque is empty. @@ -51,6 +51,17 @@ .. versionadded:: 2.4 + If *maxlen* is not specified or is *-1*, deques may grow to an + arbitrary length. Otherwise, the deque is bounded to the specified maximum + length. Once a bounded length deque is full, when new items are added, a + corresponding number of items are discarded from the opposite end. Bounded + length deques provide functionality similar to the ``tail`` filter in + Unix. They are also useful for tracking transactions and other pools of data + where only the most recent activity is of interest. + + .. versionchanged:: 2.6 + Added *maxlen* + Deque objects support the following methods: @@ -168,8 +179,8 @@ .. _deque-recipes: -Recipes -^^^^^^^ +:class:`deque` Recipes +^^^^^^^^^^^^^^^^^^^^^^ This section shows various approaches to working with deques. @@ -186,42 +197,14 @@ :meth:`rotate` to bring a target element to the left side of the deque. Remove old entries with :meth:`popleft`, add new entries with :meth:`extend`, and then reverse the rotation. - With minor variations on that approach, it is easy to implement Forth style stack manipulations such as ``dup``, ``drop``, ``swap``, ``over``, ``pick``, ``rot``, and ``roll``. -A roundrobin task server can be built from a :class:`deque` using -:meth:`popleft` to select the current task and :meth:`append` to add it back to -the tasklist if the input stream is not exhausted:: - - >>> def roundrobin(*iterables): - ... pending = deque(iter(i) for i in iterables) - ... while pending: - ... task = pending.popleft() - ... try: - ... yield task.next() - ... except StopIteration: - ... continue - ... pending.append(task) - ... - >>> for value in roundrobin('abc', 'd', 'efgh'): - ... print value - - a - d - e - b - f - c - g - h - - Multi-pass data reduction algorithms can be succinctly expressed and efficiently coded by extracting elements with multiple calls to :meth:`popleft`, applying -the reduction function, and calling :meth:`append` to add the result back to the -queue. +a reduction function, and calling :meth:`append` to add the result back to the +deque. For example, building a balanced binary tree of nested lists entails reducing two adjacent nodes into one by grouping them in a list:: @@ -236,7 +219,12 @@ >>> print maketree('abcdefgh') [[[['a', 'b'], ['c', 'd']], [['e', 'f'], ['g', 'h']]]] +Bounded length deques provide functionality similar to the ``tail`` filter +in Unix:: + def tail(filename, n=10): + 'Return the last n lines of a file' + return deque(open(filename), n) .. _defaultdict-objects: @@ -376,7 +364,8 @@ method which lists the tuple contents in a ``name=value`` format. The *fieldnames* are specified in a single string with each fieldname separated by - a space and/or comma. Any valid Python identifier may be used for a fieldname. + a space and/or comma. Any valid Python identifier may be used for a fieldname + except for names starting and ending with double underscores. If *verbose* is true, will print the class definition. @@ -387,7 +376,7 @@ Example:: - >>> Point = NamedTuple('Point', 'x y', True) + >>> Point = NamedTuple('Point', 'x y', verbose=True) class Point(tuple): 'Point(x, y)' __slots__ = () @@ -396,6 +385,9 @@ return tuple.__new__(cls, (x, y)) def __repr__(self): return 'Point(x=%r, y=%r)' % self + def __asdict__(self): + 'Return a new dict mapping field names to their values' + return dict(zip(('x', 'y'), self)) def __replace__(self, field, value): 'Return a new Point object replacing one field with a new value' return Point(**dict(zip(('x', 'y'), self) + [(field, value)])) @@ -429,10 +421,25 @@ >>> Point(*t) # the star-operator unpacks any iterable object Point(x=11, y=22) +When casting a dictionary to a *NamedTuple*, use the double-star-operator:: + + >>> d = {'x': 11, 'y': 22} + >>> Point(**d) + Point(x=11, y=22) + In addition to the methods inherited from tuples, named tuples support -an additonal method and an informational read-only attribute. +additonal methods and a read-only attribute. + +.. method:: somenamedtuple.__asdict__() + + Return a new dict which maps field names to their corresponding values: + +:: -.. method:: somenamedtuple.replace(field, value) + >>> p.__asdict__() + {'x': 11, 'y': 22} + +.. method:: somenamedtuple.__replace__(field, value) Return a new instance of the named tuple replacing the named *field* with a new *value*: @@ -447,20 +454,16 @@ .. attribute:: somenamedtuple.__fields__ - Return a tuple of strings listing the field names. This is useful for introspection, - for converting a named tuple instance to a dictionary, and for combining named tuple - types to create new named tuple types: + Return a tuple of strings listing the field names. This is useful for introspection + and for creating new named tuple types from existing named tuples. :: - >>> p.__fields__ # view the field names + >>> p.__fields__ # view the field names ('x', 'y') - >>> dict(zip(p.__fields__, p)) # convert to a dictionary - {'y': 22, 'x': 11} >>> Color = NamedTuple('Color', 'red green blue') - >>> pixel_fields = ' '.join(Point.__fields__ + Color.__fields__) # combine fields - >>> Pixel = NamedTuple('Pixel', pixel_fields) + >>> Pixel = NamedTuple('Pixel', ' '.join(Point.__fields__ + Color.__fields__)) >>> Pixel(11, 22, 128, 255, 0) Pixel(x=11, y=22, red=128, green=255, blue=0)' Modified: python/trunk/Lib/collections.py ============================================================================== --- python/trunk/Lib/collections.py (original) +++ python/trunk/Lib/collections.py Fri Oct 5 04:47:07 2007 @@ -18,19 +18,21 @@ (11, 22) >>> p.x + p.y # fields also accessable by name 33 - >>> p # readable __repr__ with name=value style + >>> d = p.__asdict__() # convert to a dictionary + >>> d['x'] + 11 + >>> Point(**d) # convert from a dictionary Point(x=11, y=22) >>> p.__replace__('x', 100) # __replace__() is like str.replace() but targets a named field Point(x=100, y=22) - >>> d = dict(zip(p.__fields__, p)) # use __fields__ to make a dictionary - >>> d['x'] - 11 """ field_names = tuple(s.replace(',', ' ').split()) # names separated by spaces and/or commas if not ''.join((typename,) + field_names).replace('_', '').isalnum(): raise ValueError('Type names and field names can only contain alphanumeric characters and underscores') + if any(name.startswith('__') and name.endswith('__') for name in field_names): + raise ValueError('Field names cannot start and end with double underscores') argtxt = repr(field_names).replace("'", "")[1:-1] # tuple repr without parens or quotes reprtxt = ', '.join('%s=%%r' % name for name in field_names) template = '''class %(typename)s(tuple): @@ -41,7 +43,10 @@ return tuple.__new__(cls, (%(argtxt)s)) def __repr__(self): return '%(typename)s(%(reprtxt)s)' %% self - def __replace__(self, field, value): + def __asdict__(self, dict=dict, zip=zip): + 'Return a new dict mapping field names to their values' + return dict(zip(%(field_names)r, self)) + def __replace__(self, field, value, dict=dict, zip=zip): 'Return a new %(typename)s object replacing one field with a new value' return %(typename)s(**dict(zip(%(field_names)r, self) + [(field, value)])) \n''' % locals() for i, name in enumerate(field_names): Modified: python/trunk/Lib/test/test_collections.py ============================================================================== --- python/trunk/Lib/test/test_collections.py (original) +++ python/trunk/Lib/test/test_collections.py Fri Oct 5 04:47:07 2007 @@ -13,6 +13,7 @@ self.assertEqual(Point.__getitem__, tuple.__getitem__) self.assertRaises(ValueError, NamedTuple, 'abc%', 'def ghi') self.assertRaises(ValueError, NamedTuple, 'abc', 'def g%hi') + self.assertRaises(ValueError, NamedTuple, 'abc', '__def__ ghi') NamedTuple('Point0', 'x1 y2') # Verify that numbers are allowed in names def test_instance(self): @@ -32,6 +33,7 @@ self.assert_('__weakref__' not in dir(p)) self.assertEqual(p.__fields__, ('x', 'y')) # test __fields__ attribute self.assertEqual(p.__replace__('x', 1), (1, 22)) # test __replace__ method + self.assertEqual(p.__asdict__(), dict(x=11, y=22)) # test __dict__ method # verify that field string can have commas Point = NamedTuple('Point', 'x, y') Modified: python/trunk/Lib/test/test_deque.py ============================================================================== --- python/trunk/Lib/test/test_deque.py (original) +++ python/trunk/Lib/test/test_deque.py Fri Oct 5 04:47:07 2007 @@ -47,6 +47,44 @@ self.assertEqual(right, range(150, 400)) self.assertEqual(list(d), range(50, 150)) + def test_maxlen(self): + self.assertRaises(ValueError, deque, 'abc', -2) + d = deque(range(10), maxlen=3) + self.assertEqual(repr(d), 'deque([7, 8, 9], maxlen=3)') + self.assertEqual(list(d), range(7, 10)) + self.assertEqual(d, deque(range(10), 3)) + d.append(10) + self.assertEqual(list(d), range(8, 11)) + d.appendleft(7) + self.assertEqual(list(d), range(7, 10)) + d.extend([10, 11]) + self.assertEqual(list(d), range(9, 12)) + d.extendleft([8, 7]) + self.assertEqual(list(d), range(7, 10)) + d = deque(xrange(200), maxlen=10) + d.append(d) + try: + fo = open(test_support.TESTFN, "wb") + print >> fo, d, + fo.close() + fo = open(test_support.TESTFN, "rb") + self.assertEqual(fo.read(), repr(d)) + finally: + fo.close() + os.remove(test_support.TESTFN) + + d = deque(range(10), maxlen=-1) + self.assertEqual(repr(d), 'deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])') + try: + fo = open(test_support.TESTFN, "wb") + print >> fo, d, + fo.close() + fo = open(test_support.TESTFN, "rb") + self.assertEqual(fo.read(), repr(d)) + finally: + fo.close() + os.remove(test_support.TESTFN) + def test_comparisons(self): d = deque('xabc'); d.popleft() for e in [d, deque('abc'), deque('ab'), deque(), list(d)]: @@ -254,7 +292,7 @@ os.remove(test_support.TESTFN) def test_init(self): - self.assertRaises(TypeError, deque, 'abc', 2); + self.assertRaises(TypeError, deque, 'abc', 2, 3); self.assertRaises(TypeError, deque, 1); def test_hash(self): @@ -339,13 +377,13 @@ self.assertNotEqual(id(d), id(e)) self.assertEqual(list(d), list(e)) - def test_pickle_recursive(self): - d = deque('abc') - d.append(d) - for i in (0, 1, 2): - e = pickle.loads(pickle.dumps(d, i)) - self.assertNotEqual(id(d), id(e)) - self.assertEqual(id(e), id(e[-1])) +## def test_pickle_recursive(self): +## d = deque('abc') +## d.append(d) +## for i in (0, 1, 2): +## e = pickle.loads(pickle.dumps(d, i)) +## self.assertNotEqual(id(d), id(e)) +## self.assertEqual(id(e), id(e[-1])) def test_deepcopy(self): mut = [10] @@ -451,24 +489,24 @@ self.assertEqual(type(d), type(e)) self.assertEqual(list(d), list(e)) - def test_pickle(self): - d = Deque('abc') - d.append(d) - - e = pickle.loads(pickle.dumps(d)) - self.assertNotEqual(id(d), id(e)) - self.assertEqual(type(d), type(e)) - dd = d.pop() - ee = e.pop() - self.assertEqual(id(e), id(ee)) - self.assertEqual(d, e) - - d.x = d - e = pickle.loads(pickle.dumps(d)) - self.assertEqual(id(e), id(e.x)) - - d = DequeWithBadIter('abc') - self.assertRaises(TypeError, pickle.dumps, d) +## def test_pickle(self): +## d = Deque('abc') +## d.append(d) +## +## e = pickle.loads(pickle.dumps(d)) +## self.assertNotEqual(id(d), id(e)) +## self.assertEqual(type(d), type(e)) +## dd = d.pop() +## ee = e.pop() +## self.assertEqual(id(e), id(ee)) +## self.assertEqual(d, e) +## +## d.x = d +## e = pickle.loads(pickle.dumps(d)) +## self.assertEqual(id(e), id(e.x)) +## +## d = DequeWithBadIter('abc') +## self.assertRaises(TypeError, pickle.dumps, d) def test_weakref(self): d = deque('gallahad') Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Fri Oct 5 04:47:07 2007 @@ -270,6 +270,8 @@ Library ------- +- collections.deque() now supports a "maxlen" argument. + - itertools.count() is no longer bounded to LONG_MAX. Formerly, it raised an OverflowError. Now, automatically shifts from ints to longs. Modified: python/trunk/Modules/_collectionsmodule.c ============================================================================== --- python/trunk/Modules/_collectionsmodule.c (original) +++ python/trunk/Modules/_collectionsmodule.c Fri Oct 5 04:47:07 2007 @@ -83,10 +83,27 @@ int leftindex; /* in range(BLOCKLEN) */ int rightindex; /* in range(BLOCKLEN) */ int len; + int maxlen; long state; /* incremented whenever the indices move */ PyObject *weakreflist; /* List of weak references */ } dequeobject; +/* The deque's size limit is d.maxlen. The limit can be zero or positive. + * If there is no limit, then d.maxlen == -1. + * + * After an item is added to a deque, we check to see if the size has grown past + * the limit. If it has, we get the size back down to the limit by popping an + * item off of the opposite end. The methods that can trigger this are append(), + * appendleft(), extend(), and extendleft(). + */ + +#define TRIM(d, popfunction) \ + if (d->maxlen != -1 && d->len > d->maxlen) { \ + PyObject *rv = popfunction(d, NULL); \ + assert(rv != NULL && d->len <= d->maxlen); \ + Py_DECREF(rv); \ + } + static PyTypeObject deque_type; static PyObject * @@ -95,9 +112,6 @@ dequeobject *deque; block *b; - if (type == &deque_type && !_PyArg_NoKeywords("deque()", kwds)) - return NULL; - /* create dequeobject structure */ deque = (dequeobject *)type->tp_alloc(type, 0); if (deque == NULL) @@ -117,55 +131,12 @@ deque->len = 0; deque->state = 0; deque->weakreflist = NULL; + deque->maxlen = -1; return (PyObject *)deque; } static PyObject * -deque_append(dequeobject *deque, PyObject *item) -{ - deque->state++; - if (deque->rightindex == BLOCKLEN-1) { - block *b = newblock(deque->rightblock, NULL, deque->len); - if (b == NULL) - return NULL; - assert(deque->rightblock->rightlink == NULL); - deque->rightblock->rightlink = b; - deque->rightblock = b; - deque->rightindex = -1; - } - Py_INCREF(item); - deque->len++; - deque->rightindex++; - deque->rightblock->data[deque->rightindex] = item; - Py_RETURN_NONE; -} - -PyDoc_STRVAR(append_doc, "Add an element to the right side of the deque."); - -static PyObject * -deque_appendleft(dequeobject *deque, PyObject *item) -{ - deque->state++; - if (deque->leftindex == 0) { - block *b = newblock(NULL, deque->leftblock, deque->len); - if (b == NULL) - return NULL; - assert(deque->leftblock->leftlink == NULL); - deque->leftblock->leftlink = b; - deque->leftblock = b; - deque->leftindex = BLOCKLEN; - } - Py_INCREF(item); - deque->len++; - deque->leftindex--; - deque->leftblock->data[deque->leftindex] = item; - Py_RETURN_NONE; -} - -PyDoc_STRVAR(appendleft_doc, "Add an element to the left side of the deque."); - -static PyObject * deque_pop(dequeobject *deque, PyObject *unused) { PyObject *item; @@ -240,6 +211,52 @@ PyDoc_STRVAR(popleft_doc, "Remove and return the leftmost element."); static PyObject * +deque_append(dequeobject *deque, PyObject *item) +{ + deque->state++; + if (deque->rightindex == BLOCKLEN-1) { + block *b = newblock(deque->rightblock, NULL, deque->len); + if (b == NULL) + return NULL; + assert(deque->rightblock->rightlink == NULL); + deque->rightblock->rightlink = b; + deque->rightblock = b; + deque->rightindex = -1; + } + Py_INCREF(item); + deque->len++; + deque->rightindex++; + deque->rightblock->data[deque->rightindex] = item; + TRIM(deque, deque_popleft); + Py_RETURN_NONE; +} + +PyDoc_STRVAR(append_doc, "Add an element to the right side of the deque."); + +static PyObject * +deque_appendleft(dequeobject *deque, PyObject *item) +{ + deque->state++; + if (deque->leftindex == 0) { + block *b = newblock(NULL, deque->leftblock, deque->len); + if (b == NULL) + return NULL; + assert(deque->leftblock->leftlink == NULL); + deque->leftblock->leftlink = b; + deque->leftblock = b; + deque->leftindex = BLOCKLEN; + } + Py_INCREF(item); + deque->len++; + deque->leftindex--; + deque->leftblock->data[deque->leftindex] = item; + TRIM(deque, deque_pop); + Py_RETURN_NONE; +} + +PyDoc_STRVAR(appendleft_doc, "Add an element to the left side of the deque."); + +static PyObject * deque_extend(dequeobject *deque, PyObject *iterable) { PyObject *it, *item; @@ -266,6 +283,7 @@ deque->len++; deque->rightindex++; deque->rightblock->data[deque->rightindex] = item; + TRIM(deque, deque_popleft); } Py_DECREF(it); if (PyErr_Occurred()) @@ -303,6 +321,7 @@ deque->len++; deque->leftindex--; deque->leftblock->data[deque->leftindex] = item; + TRIM(deque, deque_pop); } Py_DECREF(it); if (PyErr_Occurred()) @@ -579,8 +598,8 @@ static PyObject * deque_copy(PyObject *deque) { - return PyObject_CallFunctionObjArgs((PyObject *)(Py_Type(deque)), - deque, NULL); + return PyObject_CallFunction((PyObject *)(Py_Type(deque)), "Oi", + deque, ((dequeobject *)deque)->maxlen, NULL); } PyDoc_STRVAR(copy_doc, "Return a shallow copy of a deque."); @@ -588,21 +607,22 @@ static PyObject * deque_reduce(dequeobject *deque) { - PyObject *dict, *result, *it; + PyObject *dict, *result, *aslist; dict = PyObject_GetAttrString((PyObject *)deque, "__dict__"); - if (dict == NULL) { + if (dict == NULL) PyErr_Clear(); - dict = Py_None; - Py_INCREF(dict); - } - it = PyObject_GetIter((PyObject *)deque); - if (it == NULL) { + aslist = PySequence_List((PyObject *)deque); + if (aslist == NULL) { Py_DECREF(dict); return NULL; } - result = Py_BuildValue("O()ON", Py_Type(deque), dict, it); - Py_DECREF(dict); + if (dict == NULL) + result = Py_BuildValue("O(Oi)", Py_Type(deque), aslist, deque->maxlen); + else + result = Py_BuildValue("O(Oi)O", Py_Type(deque), aslist, deque->maxlen, dict); + Py_XDECREF(dict); + Py_DECREF(aslist); return result; } @@ -611,7 +631,7 @@ static PyObject * deque_repr(PyObject *deque) { - PyObject *aslist, *result, *fmt; + PyObject *aslist, *result, *fmt; /*, *limit; */ int i; i = Py_ReprEnter(deque); @@ -626,14 +646,17 @@ Py_ReprLeave(deque); return NULL; } - - fmt = PyString_FromString("deque(%r)"); + if (((dequeobject *)deque)->maxlen != -1) + fmt = PyString_FromFormat("deque(%%r, maxlen=%i)", + ((dequeobject *)deque)->maxlen); + else + fmt = PyString_FromString("deque(%r)"); if (fmt == NULL) { Py_DECREF(aslist); Py_ReprLeave(deque); return NULL; } - result = PyString_Format(fmt, aslist); + result = PyString_Format(fmt, aslist); Py_DECREF(fmt); Py_DECREF(aslist); Py_ReprLeave(deque); @@ -652,9 +675,7 @@ if (i != 0) { if (i < 0) return i; - Py_BEGIN_ALLOW_THREADS fputs("[...]", fp); - Py_END_ALLOW_THREADS return 0; } @@ -662,13 +683,9 @@ if (it == NULL) return -1; - Py_BEGIN_ALLOW_THREADS fputs("deque([", fp); - Py_END_ALLOW_THREADS while ((item = PyIter_Next(it)) != NULL) { - Py_BEGIN_ALLOW_THREADS fputs(emit, fp); - Py_END_ALLOW_THREADS emit = separator; if (PyObject_Print(item, fp, 0) != 0) { Py_DECREF(item); @@ -682,9 +699,11 @@ Py_DECREF(it); if (PyErr_Occurred()) return -1; - Py_BEGIN_ALLOW_THREADS - fputs("])", fp); - Py_END_ALLOW_THREADS + + if (((dequeobject *)deque)->maxlen == -1) + fputs("])", fp); + else + fprintf(fp, "], maxlen=%d)", ((dequeobject *)deque)->maxlen); return 0; } @@ -767,13 +786,19 @@ } static int -deque_init(dequeobject *deque, PyObject *args, PyObject *kwds) +deque_init(dequeobject *deque, PyObject *args, PyObject *kwdargs) { PyObject *iterable = NULL; + int maxlen = -1; + char *kwlist[] = {"iterable", "maxlen", 0}; - if (!PyArg_UnpackTuple(args, "deque", 0, 1, &iterable)) + if (!PyArg_ParseTupleAndKeywords(args, kwdargs, "|Oi:deque", kwlist, &iterable, &maxlen)) return -1; - + if (maxlen < -1) { + PyErr_SetString(PyExc_ValueError, "maxlen must be -1 or greater"); + return -1; + } + deque->maxlen = maxlen; if (iterable != NULL) { PyObject *rv = deque_extend(deque, iterable); if (rv == NULL) @@ -828,7 +853,7 @@ }; PyDoc_STRVAR(deque_doc, -"deque(iterable) --> deque object\n\ +"deque(iterable[, maxlen]) --> deque object\n\ \n\ Build an ordered collection accessible from endpoints only."); @@ -1198,24 +1223,15 @@ defdict_print(defdictobject *dd, FILE *fp, int flags) { int sts; - Py_BEGIN_ALLOW_THREADS fprintf(fp, "defaultdict("); - Py_END_ALLOW_THREADS - if (dd->default_factory == NULL) { - Py_BEGIN_ALLOW_THREADS + if (dd->default_factory == NULL) fprintf(fp, "None"); - Py_END_ALLOW_THREADS - } else { PyObject_Print(dd->default_factory, fp, 0); } - Py_BEGIN_ALLOW_THREADS fprintf(fp, ", "); - Py_END_ALLOW_THREADS sts = PyDict_Type.tp_print((PyObject *)dd, fp, 0); - Py_BEGIN_ALLOW_THREADS fprintf(fp, ")"); - Py_END_ALLOW_THREADS return sts; } From python-checkins at python.org Fri Oct 5 04:48:32 2007 From: python-checkins at python.org (fred.drake) Date: Fri, 5 Oct 2007 04:48:32 +0200 (CEST) Subject: [Python-checkins] r58327 - python/trunk/Doc/library/asynchat.rst python/trunk/Doc/library/asyncore.rst Message-ID: <20071005024832.69CE61E4002@bag.python.org> Author: fred.drake Date: Fri Oct 5 04:48:32 2007 New Revision: 58327 Modified: python/trunk/Doc/library/asynchat.rst python/trunk/Doc/library/asyncore.rst Log: move descriptions of ac_(in|out)_buffer_size to the right place http://bugs.python.org/issue1053 Modified: python/trunk/Doc/library/asynchat.rst ============================================================================== --- python/trunk/Doc/library/asynchat.rst (original) +++ python/trunk/Doc/library/asynchat.rst Fri Oct 5 04:48:32 2007 @@ -36,6 +36,19 @@ :class:`async_chat` object's methods are called by the event-processing framework with no action on the part of the programmer. + Two class attributes can be modified, to improve performance, or possibly + even to conserve memory. + + + .. data:: ac_in_buffer_size + + The asynchronous input buffer size (default ``4096``). + + + .. data:: ac_out_buffer_size + + The asynchronous output buffer size (default ``4096``). + Unlike :class:`asyncore.dispatcher`, :class:`async_chat` allows you to define a first-in-first-out queue (fifo) of *producers*. A producer need have only one method, :meth:`more`, which should return data to be Modified: python/trunk/Doc/library/asyncore.rst ============================================================================== --- python/trunk/Doc/library/asyncore.rst (original) +++ python/trunk/Doc/library/asyncore.rst Fri Oct 5 04:48:32 2007 @@ -71,19 +71,6 @@ which are called from the asynchronous loop. Otherwise, it can be treated as a normal non-blocking socket object. - Two class attributes can be modified, to improve performance, or possibly - even to conserve memory. - - - .. data:: ac_in_buffer_size - - The asynchronous input buffer size (default ``4096``). - - - .. data:: ac_out_buffer_size - - The asynchronous output buffer size (default ``4096``). - The firing of low-level events at certain times or in certain connection states tells the asynchronous loop that certain higher-level events have taken place. For example, if we have asked for a socket to connect to From python-checkins at python.org Fri Oct 5 05:12:01 2007 From: python-checkins at python.org (fred.drake) Date: Fri, 5 Oct 2007 05:12:01 +0200 (CEST) Subject: [Python-checkins] r58328 - python/branches/release25-maint/Doc/lib/libasynchat.tex python/branches/release25-maint/Doc/lib/libasyncore.tex Message-ID: <20071005031201.4F1751E401E@bag.python.org> Author: fred.drake Date: Fri Oct 5 05:12:00 2007 New Revision: 58328 Modified: python/branches/release25-maint/Doc/lib/libasynchat.tex python/branches/release25-maint/Doc/lib/libasyncore.tex Log: move descriptions of ac_(in|out)_buffer_size to the right place http://bugs.python.org/issue1053 Modified: python/branches/release25-maint/Doc/lib/libasynchat.tex ============================================================================== --- python/branches/release25-maint/Doc/lib/libasynchat.tex (original) +++ python/branches/release25-maint/Doc/lib/libasynchat.tex Fri Oct 5 05:12:00 2007 @@ -32,6 +32,17 @@ \class{async_chat} object's methods are called by the event-processing framework with no action on the part of the programmer. + Two class attributes can be modified, to improve performance, + or possibly even to conserve memory. + + \begin{datadesc}{ac_in_buffer_size} + The asynchronous input buffer size (default \code{4096}). + \end{datadesc} + + \begin{datadesc}{ac_out_buffer_size} + The asynchronous output buffer size (default \code{4096}). + \end{datadesc} + Unlike \class{asyncore.dispatcher}, \class{async_chat} allows you to define a first-in-first-out queue (fifo) of \emph{producers}. A producer need have only one method, \method{more()}, which should return data to be transmitted Modified: python/branches/release25-maint/Doc/lib/libasyncore.tex ============================================================================== --- python/branches/release25-maint/Doc/lib/libasyncore.tex (original) +++ python/branches/release25-maint/Doc/lib/libasyncore.tex Fri Oct 5 05:12:00 2007 @@ -68,17 +68,6 @@ from the asynchronous loop. Otherwise, it can be treated as a normal non-blocking socket object. - Two class attributes can be modified, to improve performance, - or possibly even to conserve memory. - - \begin{datadesc}{ac_in_buffer_size} - The asynchronous input buffer size (default \code{4096}). - \end{datadesc} - - \begin{datadesc}{ac_out_buffer_size} - The asynchronous output buffer size (default \code{4096}). - \end{datadesc} - The firing of low-level events at certain times or in certain connection states tells the asynchronous loop that certain higher-level events have taken place. For example, if we have asked for a socket to connect to From python-checkins at python.org Fri Oct 5 05:39:18 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 5 Oct 2007 05:39:18 +0200 (CEST) Subject: [Python-checkins] r58329 - python/trunk/Modules/_collectionsmodule.c Message-ID: <20071005033918.272021E4002@bag.python.org> Author: neal.norwitz Date: Fri Oct 5 05:39:17 2007 New Revision: 58329 Modified: python/trunk/Modules/_collectionsmodule.c Log: dict could be NULL, so we need to XDECREF. Fix a compiler warning about passing a PyTypeObject* instead of PyObject*. Modified: python/trunk/Modules/_collectionsmodule.c ============================================================================== --- python/trunk/Modules/_collectionsmodule.c (original) +++ python/trunk/Modules/_collectionsmodule.c Fri Oct 5 05:39:17 2007 @@ -614,7 +614,7 @@ PyErr_Clear(); aslist = PySequence_List((PyObject *)deque); if (aslist == NULL) { - Py_DECREF(dict); + Py_XDECREF(dict); return NULL; } if (dict == NULL) @@ -1143,7 +1143,7 @@ whose class constructor has the same signature. Subclasses that define a different constructor signature must override copy(). */ - return PyObject_CallFunctionObjArgs(Py_Type(dd), + return PyObject_CallFunctionObjArgs((PyObject*)Py_Type(dd), dd->default_factory, dd, NULL); } From python-checkins at python.org Fri Oct 5 05:41:20 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 5 Oct 2007 05:41:20 +0200 (CEST) Subject: [Python-checkins] r58330 - python/trunk/Python/ast.c Message-ID: <20071005034120.22A331E4002@bag.python.org> Author: neal.norwitz Date: Fri Oct 5 05:41:19 2007 New Revision: 58330 Modified: python/trunk/Python/ast.c Log: Fix Coverity #158: Check the correct variable. Modified: python/trunk/Python/ast.c ============================================================================== --- python/trunk/Python/ast.c (original) +++ python/trunk/Python/ast.c Fri Oct 5 05:41:19 2007 @@ -1468,7 +1468,7 @@ tmp_result = BinOp(result, newoperator, tmp, LINENO(next_oper), next_oper->n_col_offset, c->c_arena); - if (!tmp) + if (!tmp_result) return NULL; result = tmp_result; } From python-checkins at python.org Fri Oct 5 05:45:43 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 5 Oct 2007 05:45:43 +0200 (CEST) Subject: [Python-checkins] r58331 - python/branches/release25-maint/Python/ast.c Message-ID: <20071005034543.387541E4003@bag.python.org> Author: neal.norwitz Date: Fri Oct 5 05:45:42 2007 New Revision: 58331 Modified: python/branches/release25-maint/Python/ast.c Log: Backport 58330: Fix Coverity #158: Check the correct variable. Modified: python/branches/release25-maint/Python/ast.c ============================================================================== --- python/branches/release25-maint/Python/ast.c (original) +++ python/branches/release25-maint/Python/ast.c Fri Oct 5 05:45:42 2007 @@ -1445,7 +1445,7 @@ tmp_result = BinOp(result, newoperator, tmp, LINENO(next_oper), next_oper->n_col_offset, c->c_arena); - if (!tmp) + if (!tmp_result) return NULL; result = tmp_result; } From buildbot at python.org Fri Oct 5 06:02:21 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Oct 2007 04:02:21 +0000 Subject: [Python-checkins] buildbot failure in x86 mvlgcc trunk Message-ID: <20071005040221.8D25E1E4002@bag.python.org> The Buildbot has detected a new failure of x86 mvlgcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20mvlgcc%20trunk/builds/855 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-linux Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: fred.drake,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Fri Oct 5 06:27:50 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Oct 2007 04:27:50 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian 2.5 Message-ID: <20071005042750.F10F81E401B@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%202.5/builds/60 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: fred.drake,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From python-checkins at python.org Fri Oct 5 07:01:38 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 5 Oct 2007 07:01:38 +0200 (CEST) Subject: [Python-checkins] r58332 - python/trunk/Modules/cPickle.c Message-ID: <20071005050138.8710A1E4002@bag.python.org> Author: neal.norwitz Date: Fri Oct 5 07:01:38 2007 New Revision: 58332 Modified: python/trunk/Modules/cPickle.c Log: Fix Coverity #159. This code was broken if save() returned a negative number since i contained a boolean value and then we compared i < 0 which should never be true. Will backport (assuming it's necessary) Modified: python/trunk/Modules/cPickle.c ============================================================================== --- python/trunk/Modules/cPickle.c (original) +++ python/trunk/Modules/cPickle.c Fri Oct 5 07:01:38 2007 @@ -2249,7 +2249,7 @@ Py_INCREF(temp); PyTuple_SET_ITEM(newargtup, i-1, temp); } - i = save(self, newargtup, 0) < 0; + i = save(self, newargtup, 0); Py_DECREF(newargtup); if (i < 0) return -1; From python-checkins at python.org Fri Oct 5 07:05:24 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 5 Oct 2007 07:05:24 +0200 (CEST) Subject: [Python-checkins] r58333 - python/branches/release25-maint/Modules/cPickle.c Message-ID: <20071005050524.98DAB1E4016@bag.python.org> Author: neal.norwitz Date: Fri Oct 5 07:05:24 2007 New Revision: 58333 Modified: python/branches/release25-maint/Modules/cPickle.c Log: Backport 58332: Fix Coverity #159. This code was broken if save() returned a negative number since i contained a boolean value and then we compared i < 0 which should never be true. Modified: python/branches/release25-maint/Modules/cPickle.c ============================================================================== --- python/branches/release25-maint/Modules/cPickle.c (original) +++ python/branches/release25-maint/Modules/cPickle.c Fri Oct 5 07:05:24 2007 @@ -2249,7 +2249,7 @@ Py_INCREF(temp); PyTuple_SET_ITEM(newargtup, i-1, temp); } - i = save(self, newargtup, 0) < 0; + i = save(self, newargtup, 0); Py_DECREF(newargtup); if (i < 0) return -1; From python-checkins at python.org Fri Oct 5 07:29:17 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 5 Oct 2007 07:29:17 +0200 (CEST) Subject: [Python-checkins] r58334 - python/trunk/Misc/NEWS Message-ID: <20071005052917.8454C1E4002@bag.python.org> Author: neal.norwitz Date: Fri Oct 5 07:29:17 2007 New Revision: 58334 Modified: python/trunk/Misc/NEWS Log: Add a note about fixing some more warnings found by Coverity. Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Fri Oct 5 07:29:17 2007 @@ -12,6 +12,8 @@ Core and builtins ----------------- +- Fix warnings found by the new version of the Coverity checker. + - The enumerate() builtin function is no longer bounded to sequences smaller than LONG_MAX. Formerly, it raised an OverflowError. Now, automatically shifts from ints to longs. From buildbot at python.org Fri Oct 5 07:36:43 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Oct 2007 05:36:43 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20071005053643.BD2301E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/85 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: collin.winter,georg.brandl,guido.van.rossum,martin.v.loewis,neil.schemenauer,sean.reifschneider,skip.montanaro,thomas.heller,thomas.wouters,travis.oliphant BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_urllib2net test_xmlrpc ====================================================================== ERROR: test_ftp (test.test_urllib2net.OtherNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_urllib2net.py", line 173, in test_ftp self._test_urls(urls, self._extra_handlers()) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_urllib2net.py", line 242, in _test_urls f = urllib2.urlopen(url, req) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/urllib2.py", line 122, in urlopen return _opener.open(url, data, timeout) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/urllib2.py", line 378, in open response = self._open(req, data) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/urllib2.py", line 396, in _open '_open', req) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/urllib2.py", line 356, in _call_chain result = func(*args) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/urllib2.py", line 1271, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/urllib2.py", line 1316, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/urllib.py", line 785, in __init__ self.init() File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/urllib.py", line 792, in init self.ftp.login(self.user, self.passwd) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/ftplib.py", line 372, in login if resp[0] == '3': resp = self.sendcmd('PASS ' + passwd) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/ftplib.py", line 242, in sendcmd return self.getresp() File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/ftplib.py", line 208, in getresp resp = self.getmultiline() File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/ftplib.py", line 198, in getmultiline nextline = self.getline() File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/ftplib.py", line 181, in getline line = self.file.readline() File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/io.py", line 1319, in readline readahead, pending = self._read_chunk() File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/io.py", line 1123, in _read_chunk pending = self._decoder.decode(readahead, not readahead) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 47: ordinal not in range(128) ====================================================================== FAIL: test_introspection1 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 354, in test_introspection1 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_introspection2 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 365, in test_introspection2 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_introspection3 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 378, in test_introspection3 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_multicall (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 395, in test_multicall self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_simple1 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 341, in test_simple1 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_basic (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 447, in test_basic self.fail("%s\n%s" % (e, e.headers)) AssertionError: make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Fri Oct 5 07:39:45 2007 From: python-checkins at python.org (brett.cannon) Date: Fri, 5 Oct 2007 07:39:45 +0200 (CEST) Subject: [Python-checkins] r58335 - peps/trunk/pep-3100.txt peps/trunk/pep-3108.txt Message-ID: <20071005053945.C35AC1E4002@bag.python.org> Author: brett.cannon Date: Fri Oct 5 07:39:45 2007 New Revision: 58335 Modified: peps/trunk/pep-3100.txt peps/trunk/pep-3108.txt Log: Update PEPs on modules that have been removed in Py3K but not noted. Modified: peps/trunk/pep-3100.txt ============================================================================== --- peps/trunk/pep-3100.txt (original) +++ peps/trunk/pep-3100.txt Fri Oct 5 07:39:45 2007 @@ -215,9 +215,10 @@ ``mimetools``, ``multifile``, ``rfc822``, - ``sha``, [to do] - - ``mpz``, ``posixfile``, ``regsub``, ``rgbimage``, ``statcache``, + - ``mpz``, ``posixfile``, ``regsub``, ``rgbimage``, + ``sha``, + ``statcache``, ``sv``, ``TERMIOS``, ``timing`` [done] - ``cfmfile``, ``gopherlib``, ``md5``, ``MimeWriter``, ``mimify`` [done] - ``cl``, ``sets``, ``xreadlines``, ``rotor``, ``whrandom`` [done] Modified: peps/trunk/pep-3108.txt ============================================================================== --- peps/trunk/pep-3108.txt (original) +++ peps/trunk/pep-3108.txt Fri Oct 5 07:39:45 2007 @@ -325,7 +325,7 @@ - rgbimg was removed in Python 2.6. - imgfile slated for removal in this PEP. [done] -* linuxaudiodev +* linuxaudiodev [done] + Replaced by ossaudiodev. From buildbot at python.org Fri Oct 5 07:47:42 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Oct 2007 05:47:42 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20071005054743.377181E4003@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/88 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: collin.winter,georg.brandl,guido.van.rossum,martin.v.loewis,neil.schemenauer,sean.reifschneider,skip.montanaro,thomas.heller,thomas.wouters,travis.oliphant BUILD FAILED: failed test Excerpt from the test logfile: 7 tests failed: test_codecmaps_cn test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_email test_normalization test_urllib2net ====================================================================== ERROR: test_mapping_file (test.test_codecmaps_cn.TestGBKMap) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 278, in test_mapping_file self._test_mapping_file_plain() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 291, in _test_mapping_file_plain csetval = eval(data[0]) File "", line 1

Not ^ SyntaxError: invalid syntax ====================================================================== ERROR: test_mapping_file (test.test_codecmaps_jp.TestCP932Map) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 278, in test_mapping_file self._test_mapping_file_plain() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 291, in _test_mapping_file_plain csetval = eval(data[0]) File "", line 1

Not ^ SyntaxError: invalid syntax ====================================================================== ERROR: test_mapping_file (test.test_codecmaps_jp.TestSJISCOMPATMap) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 278, in test_mapping_file self._test_mapping_file_plain() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 291, in _test_mapping_file_plain csetval = eval(data[0]) File "", line 1

Not ^ SyntaxError: invalid syntax ====================================================================== ERROR: test_mapping_file (test.test_codecmaps_kr.TestCP949Map) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 278, in test_mapping_file self._test_mapping_file_plain() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 291, in _test_mapping_file_plain csetval = eval(data[0]) File "", line 1

Not ^ SyntaxError: invalid syntax ====================================================================== ERROR: test_mapping_file (test.test_codecmaps_kr.TestJOHABMap) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 278, in test_mapping_file self._test_mapping_file_plain() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 291, in _test_mapping_file_plain csetval = eval(data[0]) File "", line 1

Not ^ SyntaxError: invalid syntax ====================================================================== ERROR: test_mapping_file (test.test_codecmaps_tw.TestBIG5Map) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 278, in test_mapping_file self._test_mapping_file_plain() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 291, in _test_mapping_file_plain csetval = eval(data[0]) File "", line 1

Not ^ SyntaxError: invalid syntax ====================================================================== ERROR: test_mapping_file (test.test_codecmaps_tw.TestCP950Map) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 278, in test_mapping_file self._test_mapping_file_plain() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_multibytecodec_support.py", line 291, in _test_mapping_file_plain csetval = eval(data[0]) File "", line 1

Not ^ SyntaxError: invalid syntax ====================================================================== ERROR: test_same_boundary_inner_outer (email.test.test_email.TestNonConformant) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/email/test/test_email.py", line 1445, in test_same_boundary_inner_outer msg = self._msgobj('msg_15.txt') File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/email/test/test_email.py", line 67, in _msgobj return email.message_from_file(fp) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/email/__init__.py", line 46, in message_from_file return Parser(*args, **kws).parse(fp) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/email/parser.py", line 68, in parse data = fp.read(8192) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/io.py", line 1231, in read readahead, pending = self._read_chunk() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/io.py", line 1127, in _read_chunk pending = self._decoder.decode(readahead, not readahead) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/codecs.py", line 291, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf8' codec can't decode byte 0xbe in position 86: unexpected code byte ====================================================================== ERROR: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_normalization.py", line 45, in test_main if part == "@Part3": UnboundLocalError: local variable 'part' referenced before assignment ====================================================================== ERROR: test_ftp (test.test_urllib2net.OtherNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_urllib2net.py", line 173, in test_ftp self._test_urls(urls, self._extra_handlers()) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_urllib2net.py", line 242, in _test_urls f = urllib2.urlopen(url, req) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/urllib2.py", line 122, in urlopen return _opener.open(url, data, timeout) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/urllib2.py", line 378, in open response = self._open(req, data) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/urllib2.py", line 396, in _open '_open', req) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/urllib2.py", line 356, in _call_chain result = func(*args) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/urllib2.py", line 1271, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/urllib2.py", line 1316, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/urllib.py", line 785, in __init__ self.init() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/urllib.py", line 792, in init self.ftp.login(self.user, self.passwd) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/ftplib.py", line 372, in login if resp[0] == '3': resp = self.sendcmd('PASS ' + passwd) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/ftplib.py", line 242, in sendcmd return self.getresp() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/ftplib.py", line 208, in getresp resp = self.getmultiline() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/ftplib.py", line 198, in getmultiline nextline = self.getline() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/ftplib.py", line 181, in getline line = self.file.readline() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/io.py", line 1319, in readline readahead, pending = self._read_chunk() File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/io.py", line 1123, in _read_chunk pending = self._decoder.decode(readahead, not readahead) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 47: ordinal not in range(128) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Oct 5 07:49:13 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Oct 2007 05:49:13 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 trunk Message-ID: <20071005054914.206171E4002@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%20trunk/builds/287 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bufio sincerely, -The Buildbot From buildbot at python.org Fri Oct 5 17:12:49 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Oct 2007 15:12:49 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux 2.5 Message-ID: <20071005151249.AB6301E4011@bag.python.org> The Buildbot has detected a new failure of ARM Linux 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%202.5/builds/0 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-arm Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: fred.drake,neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea-arm/2.5.klose-linux-arm/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-arm/2.5.klose-linux-arm/build/Lib/test/test_socketserver.py", line 81, in run svr = svrcls(self.__addr, self.__hdlrcls) File "/home/pybot/buildarea-arm/2.5.klose-linux-arm/build/Lib/SocketServer.py", line 330, in __init__ self.server_bind() File "/home/pybot/buildarea-arm/2.5.klose-linux-arm/build/Lib/test/test_socketserver.py", line 159, in server_bind TCPServer.server_bind(self) File "/home/pybot/buildarea-arm/2.5.klose-linux-arm/build/Lib/SocketServer.py", line 341, in server_bind self.socket.bind(self.server_address) File "", line 1, in bind gaierror: (-2, 'Name or service not known') Traceback (most recent call last): File "/home/pybot/buildarea-arm/2.5.klose-linux-arm/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-arm/2.5.klose-linux-arm/build/Lib/threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-arm/2.5.klose-linux-arm/build/Lib/test/test_socket_ssl.py", line 104, in listener s.accept() File "/home/pybot/buildarea-arm/2.5.klose-linux-arm/build/Lib/socket.py", line 167, in accept sock, addr = self._sock.accept() error: (4, 'Interrupted system call') make: *** [buildbottest] Aborted sincerely, -The Buildbot From jimjjewett at gmail.com Fri Oct 5 19:33:46 2007 From: jimjjewett at gmail.com (Jim Jewett) Date: Fri, 5 Oct 2007 13:33:46 -0400 Subject: [Python-checkins] r58326 - in python/trunk: Doc/library/collections.rst Lib/collections.py Lib/test/test_collections.py Lib/test/test_deque.py Misc/NEWS Modules/_collectionsmodule.c In-Reply-To: <20071005024707.F07891E4002@bag.python.org> References: <20071005024707.F07891E4002@bag.python.org> Message-ID: On 10/4/07, raymond.hettinger wrote: > Author: raymond.hettinger > Date: Fri Oct 5 04:47:07 2007 > New Revision: 58326 > Add maxlen support to deque() and fixup docs. > + If *maxlen* is not specified or is *-1*, deques may grow to an > + arbitrary length. Why -1, rather than None, or even 0? (Is there a sane use case for a /dev/null version of deque?) -jJ From jimjjewett at gmail.com Fri Oct 5 19:56:50 2007 From: jimjjewett at gmail.com (Jim Jewett) Date: Fri, 5 Oct 2007 13:56:50 -0400 Subject: [Python-checkins] (threads) Re: r58326 - in python/trunk: Doc/library/collections.rst Lib/collections.py Lib/test/test_collections.py Lib/test/test_deque.py Misc/NEWS Modules/_collectionsmodule.c Message-ID: Why did you remove all the Py_BEGIN_ALLOW_THREADS macros? They seem to be around small constants, but are you sure the fp won't be a blocked socket or something? Or is this a safety issue, to prevent mutation? -jJ On 10/4/07, raymond.hettinger wrote: > @@ -652,9 +675,7 @@ > if (i != 0) { > if (i < 0) > return i; > - Py_BEGIN_ALLOW_THREADS > fputs("[...]", fp); > - Py_END_ALLOW_THREADS > return 0; > } > > @@ -662,13 +683,9 @@ > if (it == NULL) > return -1; > > - Py_BEGIN_ALLOW_THREADS > fputs("deque([", fp); > - Py_END_ALLOW_THREADS > while ((item = PyIter_Next(it)) != NULL) { > - Py_BEGIN_ALLOW_THREADS > fputs(emit, fp); > - Py_END_ALLOW_THREADS > emit = separator; > if (PyObject_Print(item, fp, 0) != 0) { > Py_DECREF(item); > @@ -682,9 +699,11 @@ > Py_DECREF(it); > if (PyErr_Occurred()) > return -1; > - Py_BEGIN_ALLOW_THREADS > - fputs("])", fp); > - Py_END_ALLOW_THREADS > > @@ -1198,24 +1223,15 @@ > defdict_print(defdictobject *dd, FILE *fp, int flags) > { > int sts; > - Py_BEGIN_ALLOW_THREADS > fprintf(fp, "defaultdict("); > - Py_END_ALLOW_THREADS > - if (dd->default_factory == NULL) { > - Py_BEGIN_ALLOW_THREADS > + if (dd->default_factory == NULL) > fprintf(fp, "None"); > - Py_END_ALLOW_THREADS > - } > else { > PyObject_Print(dd->default_factory, fp, 0); > } > - Py_BEGIN_ALLOW_THREADS > fprintf(fp, ", "); > - Py_END_ALLOW_THREADS > sts = PyDict_Type.tp_print((PyObject *)dd, fp, 0); > - Py_BEGIN_ALLOW_THREADS > fprintf(fp, ")"); > - Py_END_ALLOW_THREADS > return sts; > } > From guido at python.org Fri Oct 5 20:12:46 2007 From: guido at python.org (Guido van Rossum) Date: Fri, 5 Oct 2007 11:12:46 -0700 Subject: [Python-checkins] (threads) Re: r58326 - in python/trunk: Doc/library/collections.rst Lib/collections.py Lib/test/test_collections.py Lib/test/test_deque.py Misc/NEWS Modules/_collectionsmodule.c In-Reply-To: References: Message-ID: They were added by Brett on Sept 17 in response to bug #1164. Perhaps Raymond checked in a version he had prepared earlier? On 10/5/07, Jim Jewett wrote: > Why did you remove all the Py_BEGIN_ALLOW_THREADS macros? > > They seem to be around small constants, but are you sure the fp won't > be a blocked socket or something? Or is this a safety issue, to > prevent mutation? > > -jJ > > On 10/4/07, raymond.hettinger wrote: > > @@ -652,9 +675,7 @@ > > if (i != 0) { > > if (i < 0) > > return i; > > - Py_BEGIN_ALLOW_THREADS > > fputs("[...]", fp); > > - Py_END_ALLOW_THREADS > > return 0; > > } > > > > @@ -662,13 +683,9 @@ > > if (it == NULL) > > return -1; > > > > - Py_BEGIN_ALLOW_THREADS > > fputs("deque([", fp); > > - Py_END_ALLOW_THREADS > > while ((item = PyIter_Next(it)) != NULL) { > > - Py_BEGIN_ALLOW_THREADS > > fputs(emit, fp); > > - Py_END_ALLOW_THREADS > > emit = separator; > > if (PyObject_Print(item, fp, 0) != 0) { > > Py_DECREF(item); > > @@ -682,9 +699,11 @@ > > Py_DECREF(it); > > if (PyErr_Occurred()) > > return -1; > > - Py_BEGIN_ALLOW_THREADS > > - fputs("])", fp); > > - Py_END_ALLOW_THREADS > > > > > @@ -1198,24 +1223,15 @@ > > defdict_print(defdictobject *dd, FILE *fp, int flags) > > { > > int sts; > > - Py_BEGIN_ALLOW_THREADS > > fprintf(fp, "defaultdict("); > > - Py_END_ALLOW_THREADS > > - if (dd->default_factory == NULL) { > > - Py_BEGIN_ALLOW_THREADS > > + if (dd->default_factory == NULL) > > fprintf(fp, "None"); > > - Py_END_ALLOW_THREADS > > - } > > else { > > PyObject_Print(dd->default_factory, fp, 0); > > } > > - Py_BEGIN_ALLOW_THREADS > > fprintf(fp, ", "); > > - Py_END_ALLOW_THREADS > > sts = PyDict_Type.tp_print((PyObject *)dd, fp, 0); > > - Py_BEGIN_ALLOW_THREADS > > fprintf(fp, ")"); > > - Py_END_ALLOW_THREADS > > return sts; > > } > > > _______________________________________________ > Python-checkins mailing list > Python-checkins at python.org > http://mail.python.org/mailman/listinfo/python-checkins > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From python at rcn.com Fri Oct 5 20:32:31 2007 From: python at rcn.com (Raymond Hettinger) Date: Fri, 5 Oct 2007 11:32:31 -0700 Subject: [Python-checkins] (threads) Re: r58326 - in python/trunk: Doc/library/collections.rst Lib/collections.py Lib/test/test_collections.py Lib/test/test_deque.py Misc/NEWS Modules/_collectionsmodule.c References: Message-ID: <011501c8077e$17e5f7c0$69196b0a@RaymondLaptop1> > They were added by Brett on Sept 17 in response to bug #1164. Perhaps > Raymond checked in a version he had prepared earlier? > > On 10/5/07, Jim Jewett wrote: >> Why did you remove all the Py_BEGIN_ALLOW_THREADS macros? Will restore them. They weren't in the version I had worked on a few weeks ago (the checkin got delayed because of the ReST doc conversion). Raymond From guido at python.org Fri Oct 5 20:32:55 2007 From: guido at python.org (Guido van Rossum) Date: Fri, 5 Oct 2007 11:32:55 -0700 Subject: [Python-checkins] (threads) Re: r58326 - in python/trunk: Doc/library/collections.rst Lib/collections.py Lib/test/test_collections.py Lib/test/test_deque.py Misc/NEWS Modules/_collectionsmodule.c In-Reply-To: <011501c8077e$17e5f7c0$69196b0a@RaymondLaptop1> References: <011501c8077e$17e5f7c0$69196b0a@RaymondLaptop1> Message-ID: Oh boy do we ever need merge tracking in svn. :-( On 10/5/07, Raymond Hettinger wrote: > > They were added by Brett on Sept 17 in response to bug #1164. Perhaps > > Raymond checked in a version he had prepared earlier? > > > > On 10/5/07, Jim Jewett wrote: > >> Why did you remove all the Py_BEGIN_ALLOW_THREADS macros? > > Will restore them. They weren't in the version I had worked on a few weeks ago (the checkin got delayed because of the ReST doc > conversion). > > > Raymond > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From brett at python.org Fri Oct 5 20:44:35 2007 From: brett at python.org (Brett Cannon) Date: Fri, 5 Oct 2007 11:44:35 -0700 Subject: [Python-checkins] (threads) Re: r58326 - in python/trunk: Doc/library/collections.rst Lib/collections.py Lib/test/test_collections.py Lib/test/test_deque.py Misc/NEWS Modules/_collectionsmodule.c In-Reply-To: References: <011501c8077e$17e5f7c0$69196b0a@RaymondLaptop1> Message-ID: On 10/5/07, Guido van Rossum wrote: > Oh boy do we ever need merge tracking in svn. :-( > Or something. As soon as Bazaar or Mercurial hits version 1.0 (or both) I plan to evaluate them to see if they can help us in some way that svn can't (e.g., better merge tracking). -Brett > On 10/5/07, Raymond Hettinger wrote: > > > They were added by Brett on Sept 17 in response to bug #1164. Perhaps > > > Raymond checked in a version he had prepared earlier? > > > > > > On 10/5/07, Jim Jewett wrote: > > >> Why did you remove all the Py_BEGIN_ALLOW_THREADS macros? > > > > Will restore them. They weren't in the version I had worked on a few weeks ago (the checkin got delayed because of the ReST doc > > conversion). > > > > > > Raymond > > > > > -- > --Guido van Rossum (home page: http://www.python.org/~guido/) > From python-checkins at python.org Fri Oct 5 21:07:31 2007 From: python-checkins at python.org (raymond.hettinger) Date: Fri, 5 Oct 2007 21:07:31 +0200 (CEST) Subject: [Python-checkins] r58338 - python/trunk/Modules/_collectionsmodule.c Message-ID: <20071005190731.5ACCD1E4004@bag.python.org> Author: raymond.hettinger Date: Fri Oct 5 21:07:31 2007 New Revision: 58338 Modified: python/trunk/Modules/_collectionsmodule.c Log: Restore BEGIN/END THREADS macros which were squashed in the previous checkin Modified: python/trunk/Modules/_collectionsmodule.c ============================================================================== --- python/trunk/Modules/_collectionsmodule.c (original) +++ python/trunk/Modules/_collectionsmodule.c Fri Oct 5 21:07:31 2007 @@ -631,7 +631,7 @@ static PyObject * deque_repr(PyObject *deque) { - PyObject *aslist, *result, *fmt; /*, *limit; */ + PyObject *aslist, *result, *fmt; int i; i = Py_ReprEnter(deque); @@ -656,7 +656,7 @@ Py_ReprLeave(deque); return NULL; } - result = PyString_Format(fmt, aslist); + result = PyString_Format(fmt, aslist); Py_DECREF(fmt); Py_DECREF(aslist); Py_ReprLeave(deque); @@ -675,7 +675,9 @@ if (i != 0) { if (i < 0) return i; + Py_BEGIN_ALLOW_THREADS fputs("[...]", fp); + Py_END_ALLOW_THREADS return 0; } @@ -683,9 +685,13 @@ if (it == NULL) return -1; + Py_BEGIN_ALLOW_THREADS fputs("deque([", fp); + Py_END_ALLOW_THREADS while ((item = PyIter_Next(it)) != NULL) { + Py_BEGIN_ALLOW_THREADS fputs(emit, fp); + Py_END_ALLOW_THREADS emit = separator; if (PyObject_Print(item, fp, 0) != 0) { Py_DECREF(item); @@ -700,10 +706,12 @@ if (PyErr_Occurred()) return -1; + Py_BEGIN_ALLOW_THREADS if (((dequeobject *)deque)->maxlen == -1) fputs("])", fp); else - fprintf(fp, "], maxlen=%d)", ((dequeobject *)deque)->maxlen); + fprintf(fp, "], maxlen=%d)", ((dequeobject *)deque)->maxlen); + Py_END_ALLOW_THREADS return 0; } @@ -1223,15 +1231,23 @@ defdict_print(defdictobject *dd, FILE *fp, int flags) { int sts; + Py_BEGIN_ALLOW_THREADS fprintf(fp, "defaultdict("); - if (dd->default_factory == NULL) + Py_END_ALLOW_THREADS + if (dd->default_factory == NULL) { + Py_BEGIN_ALLOW_THREADS fprintf(fp, "None"); - else { + Py_END_ALLOW_THREADS + } else { PyObject_Print(dd->default_factory, fp, 0); } + Py_BEGIN_ALLOW_THREADS fprintf(fp, ", "); + Py_END_ALLOW_THREADS sts = PyDict_Type.tp_print((PyObject *)dd, fp, 0); + Py_BEGIN_ALLOW_THREADS fprintf(fp, ")"); + Py_END_ALLOW_THREADS return sts; } From buildbot at python.org Sat Oct 6 01:07:31 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Oct 2007 23:07:31 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 2.5 Message-ID: <20071005230731.311A51E4004@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%202.5/builds/0 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: fred.drake,neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 81, in run svr = svrcls(self.__addr, self.__hdlrcls) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/SocketServer.py", line 330, in __init__ self.server_bind() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 159, in server_bind TCPServer.server_bind(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/SocketServer.py", line 341, in server_bind self.socket.bind(self.server_address) File "", line 1, in bind gaierror: (-2, 'Name or service not known') 6 tests failed: test_bsddb3 test_resource test_socket test_socket_ssl test_socketserver test_urllib2 ====================================================================== FAIL: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/bsddb/test/test_sequence.py", line 67, in test_get_key self.assertEquals(key, self.seq.get_key()) AssertionError: 'foo' != '' Traceback (most recent call last): File "./Lib/test/regrtest.py", line 549, in runtest_inner the_package = __import__(abstest, globals(), locals(), []) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_resource.py", line 42, in f.close() IOError: [Errno 27] File too large ====================================================================== ERROR: testGetServBy (test.test_socket.GeneralModuleTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 332, in testGetServBy raise socket.error error ====================================================================== ERROR: testFromFd (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testOverFlowRecv (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testOverFlowRecvFrom (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecv (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecvFrom (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSendAll (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testClose (test.test_socket.TCPCloserTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testInterruptedTimeout (test.test_socket.TCPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testTCPTimeout (test.test_socket.TCPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testTimeoutZero (test.test_socket.TCPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecvFromInto (test.test_socket.BufferIOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecvInto (test.test_socket.BufferIOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecvFrom (test.test_socket.BasicUDPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 39, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecvFromNegative (test.test_socket.BasicUDPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 39, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSendtoAndRecv (test.test_socket.BasicUDPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 39, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testTimeoutZero (test.test_socket.UDPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUDPTimeout (test.test_socket.UDPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testAccept (test.test_socket.NonBlockingTCPTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testConnect (test.test_socket.NonBlockingTCPTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecv (test.test_socket.NonBlockingTCPTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSetBlocking (test.test_socket.NonBlockingTCPTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testClosedAttr (test.test_socket.FileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testFullRead (test.test_socket.FileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testReadline (test.test_socket.FileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSmallRead (test.test_socket.FileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUnbufferedRead (test.test_socket.FileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testClosedAttr (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testFullRead (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testReadline (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSmallRead (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUnbufferedRead (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUnbufferedReadline (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testClosedAttr (test.test_socket.LineBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testFullRead (test.test_socket.LineBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testReadline (test.test_socket.LineBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSmallRead (test.test_socket.LineBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUnbufferedRead (test.test_socket.LineBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testClosedAttr (test.test_socket.SmallBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testFullRead (test.test_socket.SmallBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testReadline (test.test_socket.SmallBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSmallRead (test.test_socket.SmallBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUnbufferedRead (test.test_socket.SmallBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') Traceback (most recent call last): File "./Lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket_ssl.py", line 129, in test_main test_rude_shutdown() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket_ssl.py", line 123, in test_rude_shutdown connector() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket_ssl.py", line 111, in connector s.connect(('localhost', PORT[0])) File "", line 1, in connect gaierror: (-2, 'Name or service not known') Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 81, in run svr = svrcls(self.__addr, self.__hdlrcls) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/SocketServer.py", line 330, in __init__ self.server_bind() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 159, in server_bind TCPServer.server_bind(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/SocketServer.py", line 341, in server_bind self.socket.bind(self.server_address) File "", line 1, in bind gaierror: (-2, 'Name or service not known') Traceback (most recent call last): File "./Lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 212, in test_main testall() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 195, in testall testloop(socket.AF_INET, tcpservers, MyStreamHandler, teststream) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 144, in testloop testfunc(proto, addr) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 62, in teststream s.connect(addr) File "", line 1, in connect gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: test_file (test.test_urllib2.HandlerTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_urllib2.py", line 600, in test_file "file://%s%s" % (socket.gethostbyname('localhost'), urlpath), gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: test_ftp (test.test_urllib2.HandlerTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_urllib2.py", line 577, in test_ftp r = h.ftp_open(Request(url)) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/urllib2.py", line 1264, in ftp_open raise URLError(msg) URLError: make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sat Oct 6 09:48:10 2007 From: python-checkins at python.org (gregory.p.smith) Date: Sat, 6 Oct 2007 09:48:10 +0200 (CEST) Subject: [Python-checkins] r58343 - python/trunk/Modules/_bsddb.c Message-ID: <20071006074810.6D5E81E4004@bag.python.org> Author: gregory.p.smith Date: Sat Oct 6 09:48:10 2007 New Revision: 58343 Modified: python/trunk/Modules/_bsddb.c Log: Stab in the dark attempt to fix the test_bsddb3 failure on sparc and S-390 ubuntu buildbots. Modified: python/trunk/Modules/_bsddb.c ============================================================================== --- python/trunk/Modules/_bsddb.c (original) +++ python/trunk/Modules/_bsddb.c Sat Oct 6 09:48:10 2007 @@ -4903,14 +4903,20 @@ { int err; DBT key; + PyObject *retval; + key.flags = DB_DBT_MALLOC; CHECK_SEQUENCE_NOT_CLOSED(self) MYDB_BEGIN_ALLOW_THREADS err = self->sequence->get_key(self->sequence, &key); MYDB_END_ALLOW_THREADS + if (!err) + retval = PyString_FromStringAndSize(key.data, key.size); + + FREE_DBT(key); RETURN_IF_ERR(); - return PyString_FromStringAndSize(key.data, key.size); + return retval; } static PyObject* From python-checkins at python.org Sat Oct 6 09:51:59 2007 From: python-checkins at python.org (gregory.p.smith) Date: Sat, 6 Oct 2007 09:51:59 +0200 (CEST) Subject: [Python-checkins] r58344 - python/trunk/setup.py Message-ID: <20071006075159.922641E401A@bag.python.org> Author: gregory.p.smith Date: Sat Oct 6 09:51:59 2007 New Revision: 58344 Modified: python/trunk/setup.py Log: Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module. Modified: python/trunk/setup.py ============================================================================== --- python/trunk/setup.py (original) +++ python/trunk/setup.py Sat Oct 6 09:51:59 2007 @@ -656,16 +656,15 @@ # implementation independent wrapper for these; dumbdbm.py provides # similar functionality (but slower of course) implemented in Python. - # Sleepycat^WOracle Berkeley DB interface. http://www.sleepycat.com + # Sleepycat^WOracle Berkeley DB interface. + # http://www.oracle.com/database/berkeley-db/db/index.html # # This requires the Sleepycat^WOracle DB code. The supported versions # are set below. Visit http://www.sleepycat.com/ to download # a release. Most open source OSes come with one or more # versions of BerkeleyDB already installed. - # XXX(gps) - Do not allow BerkeleyDB 4.6.x until Oracle fixes - # the DB_HASH lockup bug that is present in 4.6.19. - max_db_ver = (4, 5) + max_db_ver = (4, 6) min_db_ver = (3, 3) db_setup_debug = False # verbose debug prints from this script? @@ -736,6 +735,15 @@ db_minor = int(m.group(1)) db_ver = (db_major, db_minor) + # Avoid 4.6 prior to 4.6.21 due to a BerkeleyDB bug + if db_ver == (4, 6): + m = re.search(r"#define\WDB_VERSION_PATCH\W(\d+)", f) + db_patch = int(m.group(1)) + if db_patch < 21: + print "db.h:", db_ver, "patch", db_patch, + print "being ignored (4.6.x must be >= 4.6.21)" + continue + if ( (not db_ver_inc_map.has_key(db_ver)) and (db_ver <= max_db_ver and db_ver >= min_db_ver) ): # save the include directory with the db.h version From python-checkins at python.org Sat Oct 6 10:11:30 2007 From: python-checkins at python.org (gregory.p.smith) Date: Sat, 6 Oct 2007 10:11:30 +0200 (CEST) Subject: [Python-checkins] r58345 - python/branches/release25-maint/setup.py Message-ID: <20071006081130.37C211E4004@bag.python.org> Author: gregory.p.smith Date: Sat Oct 6 10:11:29 2007 New Revision: 58345 Modified: python/branches/release25-maint/setup.py Log: Backport 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module Modified: python/branches/release25-maint/setup.py ============================================================================== --- python/branches/release25-maint/setup.py (original) +++ python/branches/release25-maint/setup.py Sat Oct 6 10:11:29 2007 @@ -600,10 +600,11 @@ # implementation independent wrapper for these; dumbdbm.py provides # similar functionality (but slower of course) implemented in Python. - # Sleepycat Berkeley DB interface. http://www.sleepycat.com + # Sleepycat^WOracle Berkeley DB interface. + # http://www.oracle.com/database/berkeley-db/db/index.html # - # This requires the Sleepycat DB code. The supported versions - # are set below. Visit http://www.sleepycat.com/ to download + # This requires the Sleepycat^WOracle DB code. The supported versions + # are set below. Visit the URL above to download # a release. Most open source OSes come with one or more # versions of BerkeleyDB already installed. @@ -675,6 +676,15 @@ db_minor = int(m.group(1)) db_ver = (db_major, db_minor) + # Avoid 4.6 prior to 4.6.21 due to a BerkeleyDB bug + if db_ver == (4, 6): + m = re.search(r"#define\WDB_VERSION_PATCH\W(\d+)", f) + db_patch = int(m.group(1)) + if db_patch < 21: + print "db.h:", db_ver, "patch", db_patch, + print "being ignored (4.6.x must be >= 4.6.21)" + continue + if ( (not db_ver_inc_map.has_key(db_ver)) and (db_ver <= max_db_ver and db_ver >= min_db_ver) ): # save the include directory with the db.h version From nnorwitz at gmail.com Sat Oct 6 10:20:56 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 6 Oct 2007 04:20:56 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20071006082056.GA26961@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_cn skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_hk test_codecmaps_hk skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_jp test_codecmaps_jp skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_kr test_codecmaps_kr skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_tw test_codecmaps_tw skipped -- Use of the `urlfetch' resource not enabled test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [9105 refs] test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_normalization skipped -- Use of the `urlfetch' resource not enabled test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:97: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test test_telnetlib failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_telnetlib.py", line 41, in testTimeoutDefault telnet = telnetlib.Telnet("localhost", 9091) File "/tmp/python-test/local/lib/python2.6/telnetlib.py", line 209, in __init__ self.open(host, port, timeout) File "/tmp/python-test/local/lib/python2.6/telnetlib.py", line 227, in open self.sock = socket.create_connection((host, port), self.timeout) File "/tmp/python-test/local/lib/python2.6/socket.py", line 462, in create_connection raise error, msg error: [Errno 111] Connection refused test_tempfile [7362 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 296 tests OK. 1 test failed: test_telnetlib 35 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses test_gl test_imageop test_imgfile test_ioctl test_linuxaudiodev test_macostools test_normalization test_ossaudiodev test_pep277 test_plistlib test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [506352 refs] From buildbot at python.org Sat Oct 6 10:57:00 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Oct 2007 08:57:00 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo 2.5 Message-ID: <20071006085701.0A6E61E4004@bag.python.org> The Buildbot has detected a new failure of x86 gentoo 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%202.5/builds/429 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildslave/python-trunk/2.5.norwitz-x86/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/buildslave/python-trunk/2.5.norwitz-x86/build/Lib/test/test_asynchat.py", line 17, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/2.5.norwitz-x86/build/Lib/test/test_support.py", line 108, in bind_port raise TestFailed, 'unable to find port to listen on' TestFailed: unable to find port to listen on sincerely, -The Buildbot From python-checkins at python.org Sat Oct 6 17:47:37 2007 From: python-checkins at python.org (gregory.p.smith) Date: Sat, 6 Oct 2007 17:47:37 +0200 (CEST) Subject: [Python-checkins] r58348 - python/trunk/Lib/test/test_socket_ssl.py Message-ID: <20071006154737.D12CD1E4005@bag.python.org> Author: gregory.p.smith Date: Sat Oct 6 17:47:37 2007 New Revision: 58348 Modified: python/trunk/Lib/test/test_socket_ssl.py Log: Use the host the author likely meant in the first place. pop.gmail.com is reliable. gmail.org is someones personal domain. Modified: python/trunk/Lib/test/test_socket_ssl.py ============================================================================== --- python/trunk/Lib/test/test_socket_ssl.py (original) +++ python/trunk/Lib/test/test_socket_ssl.py Sat Oct 6 17:47:37 2007 @@ -41,10 +41,7 @@ # A service which issues a welcome banner (without need to write # anything). - # XXX ("gmail.org", 995) has been unreliable so far, from time to - # XXX time non-responsive for hours on end (& across all buildbot - # XXX slaves, so that's not just a local thing). - ADDR = "gmail.org", 995 + ADDR = "pop.gmail.com", 995 s = socket.socket() s.settimeout(30.0) From python-checkins at python.org Sat Oct 6 17:55:25 2007 From: python-checkins at python.org (gregory.p.smith) Date: Sat, 6 Oct 2007 17:55:25 +0200 (CEST) Subject: [Python-checkins] r58349 - python/branches/release25-maint/Lib/test/test_socket_ssl.py Message-ID: <20071006155525.E1FFF1E4005@bag.python.org> Author: gregory.p.smith Date: Sat Oct 6 17:55:25 2007 New Revision: 58349 Modified: python/branches/release25-maint/Lib/test/test_socket_ssl.py Log: Backport 58348: use a reliable host in the test. Modified: python/branches/release25-maint/Lib/test/test_socket_ssl.py ============================================================================== --- python/branches/release25-maint/Lib/test/test_socket_ssl.py (original) +++ python/branches/release25-maint/Lib/test/test_socket_ssl.py Sat Oct 6 17:55:25 2007 @@ -52,10 +52,7 @@ # A service which issues a welcome banner (without need to write # anything). - # XXX ("gmail.org", 995) has been unreliable so far, from time to time - # XXX non-responsive for hours on end (& across all buildbot slaves, - # XXX so that's not just a local thing). - ADDR = "gmail.org", 995 + ADDR = "pop.gmail.com", 995 s = socket.socket() s.settimeout(30.0) From buildbot at python.org Sat Oct 6 17:56:09 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Oct 2007 15:56:09 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20071006155609.8DE141E4005@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/249 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Sat Oct 6 18:05:18 2007 From: python-checkins at python.org (gregory.p.smith) Date: Sat, 6 Oct 2007 18:05:18 +0200 (CEST) Subject: [Python-checkins] r58350 - python/branches/release25-maint/Modules/_bsddb.c Message-ID: <20071006160518.A43941E4006@bag.python.org> Author: gregory.p.smith Date: Sat Oct 6 18:05:18 2007 New Revision: 58350 Modified: python/branches/release25-maint/Modules/_bsddb.c Log: Backport rev 58343: fix DBSequence.get_key() to not crash/fail/etc. Modified: python/branches/release25-maint/Modules/_bsddb.c ============================================================================== --- python/branches/release25-maint/Modules/_bsddb.c (original) +++ python/branches/release25-maint/Modules/_bsddb.c Sat Oct 6 18:05:18 2007 @@ -4883,14 +4883,20 @@ { int err; DBT key; + PyObject *retval; + key.flags = DB_DBT_MALLOC; CHECK_SEQUENCE_NOT_CLOSED(self) MYDB_BEGIN_ALLOW_THREADS err = self->sequence->get_key(self->sequence, &key); MYDB_END_ALLOW_THREADS + if (!err) + retval = PyString_FromStringAndSize(key.data, key.size); + + FREE_DBT(key); RETURN_IF_ERR(); - return PyString_FromStringAndSize(key.data, key.size); + return retval; } static PyObject* From buildbot at python.org Sat Oct 6 18:23:29 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Oct 2007 16:23:29 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 trunk Message-ID: <20071006162329.3CE761E4005@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%20trunk/builds/290 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bufio sincerely, -The Buildbot From buildbot at python.org Sat Oct 6 18:44:51 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Oct 2007 16:44:51 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20071006164451.F10B81E4005@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/2520 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on 1 test failed: test_asynchat sincerely, -The Buildbot From buildbot at python.org Sat Oct 6 18:59:51 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Oct 2007 16:59:51 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian trunk Message-ID: <20071006165951.C9F591E4005@bag.python.org> The Buildbot has detected a new failure of S-390 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%20trunk/builds/1246 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ctypes ====================================================================== FAIL: test_longdouble (ctypes.test.test_callbacks.Callbacks) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-s390/build/Lib/ctypes/test/test_callbacks.py", line 81, in test_longdouble self.check_type(c_longdouble, 3.14) File "/home/pybot/buildarea/trunk.klose-debian-s390/build/Lib/ctypes/test/test_callbacks.py", line 22, in check_type self.failUnlessEqual(self.got_args, (arg,)) AssertionError: (-inf,) != (3.1400000000000001,) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Oct 6 19:08:34 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Oct 2007 17:08:34 +0000 Subject: [Python-checkins] buildbot failure in alpha Tru64 5.1 2.5 Message-ID: <20071006170835.0DA3D1E4005@bag.python.org> The Buildbot has detected a new failure of alpha Tru64 5.1 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Tru64%205.1%202.5/builds/325 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-tru64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_signal test_socket Traceback (most recent call last): File "./Lib/test/regrtest.py", line 549, in runtest_inner the_package = __import__(abstest, globals(), locals(), []) File "/net/taipan/scratch1/nnorwitz/python/2.5.norwitz-tru64/build/Lib/test/test_signal.py", line 143, in print "KeyboardInterrupt (the alarm() went off)" File "/net/taipan/scratch1/nnorwitz/python/2.5.norwitz-tru64/build/Lib/test/test_signal.py", line 49, in handlerB raise HandlerBCalled, args HandlerBCalled: (30, ) sincerely, -The Buildbot From buildbot at python.org Sat Oct 6 19:39:24 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Oct 2007 17:39:24 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 2.5 Message-ID: <20071006173924.8F1181E4005@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%202.5/builds/2 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 81, in run svr = svrcls(self.__addr, self.__hdlrcls) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/SocketServer.py", line 330, in __init__ self.server_bind() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 159, in server_bind TCPServer.server_bind(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/SocketServer.py", line 341, in server_bind self.socket.bind(self.server_address) File "", line 1, in bind gaierror: (-2, 'Name or service not known') 6 tests failed: test_bsddb3 test_resource test_socket test_socket_ssl test_socketserver test_urllib2 ====================================================================== FAIL: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/bsddb/test/test_sequence.py", line 67, in test_get_key self.assertEquals(key, self.seq.get_key()) AssertionError: 'foo' != '' Traceback (most recent call last): File "./Lib/test/regrtest.py", line 549, in runtest_inner the_package = __import__(abstest, globals(), locals(), []) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_resource.py", line 42, in f.close() IOError: [Errno 27] File too large ====================================================================== ERROR: testGetServBy (test.test_socket.GeneralModuleTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 332, in testGetServBy raise socket.error error ====================================================================== ERROR: testFromFd (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testOverFlowRecv (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testOverFlowRecvFrom (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecv (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecvFrom (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSendAll (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testClose (test.test_socket.TCPCloserTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testInterruptedTimeout (test.test_socket.TCPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testTCPTimeout (test.test_socket.TCPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testTimeoutZero (test.test_socket.TCPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecvFromInto (test.test_socket.BufferIOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecvInto (test.test_socket.BufferIOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecvFrom (test.test_socket.BasicUDPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 39, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecvFromNegative (test.test_socket.BasicUDPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 39, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSendtoAndRecv (test.test_socket.BasicUDPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 39, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testTimeoutZero (test.test_socket.UDPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUDPTimeout (test.test_socket.UDPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testAccept (test.test_socket.NonBlockingTCPTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testConnect (test.test_socket.NonBlockingTCPTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testRecv (test.test_socket.NonBlockingTCPTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSetBlocking (test.test_socket.NonBlockingTCPTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testClosedAttr (test.test_socket.FileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testFullRead (test.test_socket.FileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testReadline (test.test_socket.FileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSmallRead (test.test_socket.FileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUnbufferedRead (test.test_socket.FileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testClosedAttr (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testFullRead (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testReadline (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSmallRead (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUnbufferedRead (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUnbufferedReadline (test.test_socket.UnbufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testClosedAttr (test.test_socket.LineBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testFullRead (test.test_socket.LineBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testReadline (test.test_socket.LineBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSmallRead (test.test_socket.LineBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUnbufferedRead (test.test_socket.LineBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testClosedAttr (test.test_socket.SmallBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testFullRead (test.test_socket.SmallBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testReadline (test.test_socket.SmallBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testSmallRead (test.test_socket.SmallBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: testUnbufferedRead (test.test_socket.SmallBufferedFileObjectClassTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 111, in _setUp self.__setUp() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 703, in setUp SocketConnectedTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 172, in setUp ThreadedTCPSocketTest.setUp(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket.py", line 26, in setUp PORT = test_support.bind_port(self.serv, HOST, PORT) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_support.py", line 101, in bind_port sock.bind((host, port)) File "", line 1, in bind gaierror: (-2, 'Name or service not known') Traceback (most recent call last): File "./Lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket_ssl.py", line 129, in test_main test_rude_shutdown() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket_ssl.py", line 123, in test_rude_shutdown connector() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socket_ssl.py", line 111, in connector s.connect(('localhost', PORT[0])) File "", line 1, in connect gaierror: (-2, 'Name or service not known') Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 81, in run svr = svrcls(self.__addr, self.__hdlrcls) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/SocketServer.py", line 330, in __init__ self.server_bind() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 159, in server_bind TCPServer.server_bind(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/SocketServer.py", line 341, in server_bind self.socket.bind(self.server_address) File "", line 1, in bind gaierror: (-2, 'Name or service not known') Traceback (most recent call last): File "./Lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 212, in test_main testall() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 195, in testall testloop(socket.AF_INET, tcpservers, MyStreamHandler, teststream) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 144, in testloop testfunc(proto, addr) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 62, in teststream s.connect(addr) File "", line 1, in connect gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: test_file (test.test_urllib2.HandlerTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_urllib2.py", line 600, in test_file "file://%s%s" % (socket.gethostbyname('localhost'), urlpath), gaierror: (-2, 'Name or service not known') ====================================================================== ERROR: test_ftp (test.test_urllib2.HandlerTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_urllib2.py", line 577, in test_ftp r = h.ftp_open(Request(url)) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/urllib2.py", line 1264, in ftp_open raise URLError(msg) URLError: make: *** [buildbottest] Error 1 sincerely, -The Buildbot From brett at python.org Sat Oct 6 21:08:19 2007 From: brett at python.org (Brett Cannon) Date: Sat, 6 Oct 2007 12:08:19 -0700 Subject: [Python-checkins] Python Regression Test Failures opt (1) In-Reply-To: <20071006082056.GA26961@python.psfb.org> References: <20071006082056.GA26961@python.psfb.org> Message-ID: On 10/6/07, Neal Norwitz wrote: > test_telnetlib > test test_telnetlib failed -- Traceback (most recent call last): > File "/tmp/python-test/local/lib/python2.6/test/test_telnetlib.py", line 41, in testTimeoutDefault > telnet = telnetlib.Telnet("localhost", 9091) > File "/tmp/python-test/local/lib/python2.6/telnetlib.py", line 209, in __init__ > self.open(host, port, timeout) > File "/tmp/python-test/local/lib/python2.6/telnetlib.py", line 227, in open > self.sock = socket.create_connection((host, port), self.timeout) > File "/tmp/python-test/local/lib/python2.6/socket.py", line 462, in create_connection > raise error, msg > error: [Errno 111] Connection refused Connection refusals keep happening. Should we add refused connections to the list of exceptions that test.test._support.transient_internet() covers and use it on this test? -Brett From python-checkins at python.org Sat Oct 6 21:16:29 2007 From: python-checkins at python.org (neal.norwitz) Date: Sat, 6 Oct 2007 21:16:29 +0200 (CEST) Subject: [Python-checkins] r58351 - python/trunk/Lib/test/test_bufio.py Message-ID: <20071006191629.1BBE11E4012@bag.python.org> Author: neal.norwitz Date: Sat Oct 6 21:16:28 2007 New Revision: 58351 Modified: python/trunk/Lib/test/test_bufio.py Log: Ensure that this test will pass even if another test left an unwritable TESTFN. Also use the safe unlink in test_support instead of rolling our own here. Modified: python/trunk/Lib/test/test_bufio.py ============================================================================== --- python/trunk/Lib/test/test_bufio.py (original) +++ python/trunk/Lib/test/test_bufio.py Sat Oct 6 21:16:28 2007 @@ -13,6 +13,9 @@ # Write s + "\n" + s to file, then open it and ensure that successive # .readline()s deliver what we wrote. + # Ensure we can open TESTFN for writing. + test_support.unlink(test_support.TESTFN) + # Since C doesn't guarantee we can write/read arbitrary bytes in text # files, use binary mode. f = open(test_support.TESTFN, "wb") @@ -31,11 +34,7 @@ self.assert_(not line) # Must be at EOF f.close() finally: - try: - import os - os.unlink(test_support.TESTFN) - except: - pass + test_support.unlink(test_support.TESTFN) def drive_one(self, pattern): for length in lengths: From nnorwitz at gmail.com Sat Oct 6 21:59:53 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 6 Oct 2007 15:59:53 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20071006195953.GA14667@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-8: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-10: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-12: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-14: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-16: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-18: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-20: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-22: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-24: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on test test_asynchat failed -- errors occurred; run in verbose mode for details test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 /tmp/python-test/local/lib/python2.6/bsddb/test/test_1413192.py:32: RuntimeWarning: DBTxn aborted in destructor. No prior commit() or abort(). del self.the_txn Exception in thread reader 1: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Exception in thread reader 4: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Exception in thread reader 2: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Exception in thread reader 3: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:97: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:63: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ss = socket.ssl(s) test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7359 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 307 tests OK. 1 test failed: test_asynchat 21 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_gl test_imageop test_imgfile test_ioctl test_macostools test_pep277 test_plistlib test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [516557 refs] From buildbot at python.org Sat Oct 6 22:08:43 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Oct 2007 20:08:43 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071006200843.84C5C1E4006@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/91 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 523, in __init__ self.handle() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 299, in handle_one_request self.raw_requestline = self.rfile.readline() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/socket.py", line 366, in readline data = self._sock.recv(self._rbufsize) error: [Errno 35] Resource temporarily unavailable Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 523, in __init__ self.handle() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 299, in handle_one_request self.raw_requestline = self.rfile.readline() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/socket.py", line 366, in readline data = self._sock.recv(self._rbufsize) error: [Errno 35] Resource temporarily unavailable Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 523, in __init__ self.handle() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 299, in handle_one_request self.raw_requestline = self.rfile.readline() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/socket.py", line 366, in readline data = self._sock.recv(self._rbufsize) error: [Errno 35] Resource temporarily unavailable 2 tests failed: test_queue test_xmlrpc sincerely, -The Buildbot From nnorwitz at gmail.com Sun Oct 7 10:00:06 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sun, 7 Oct 2007 04:00:06 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071007080006.GA3823@python.psfb.org> svn update tools/sphinx svn: PROPFIND request failed on '/projects/doctools/trunk/sphinx' svn: PROPFIND of '/projects/doctools/trunk/sphinx': could not connect to server (http://svn.python.org) make: *** [update] Error 1 From buildbot at python.org Sun Oct 7 13:01:44 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 07 Oct 2007 11:01:44 +0000 Subject: [Python-checkins] buildbot failure in 2.5.msi Message-ID: <20071007110144.B06E91E400E@bag.python.org> The Buildbot has detected a new failure of 2.5.msi. Full details are available at: http://www.python.org/dev/buildbot/all/2.5.msi/builds/30 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: The Nightly scheduler named '2.5.msi' triggered this build Build Source Stamp: HEAD Blamelist: BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Sun Oct 7 14:01:36 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 07 Oct 2007 12:01:36 +0000 Subject: [Python-checkins] buildbot failure in 2.6.msi Message-ID: <20071007120136.D892D1E4007@bag.python.org> The Buildbot has detected a new failure of 2.6.msi. Full details are available at: http://www.python.org/dev/buildbot/all/2.6.msi/builds/33 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: The Nightly scheduler named '2.6.msi' triggered this build Build Source Stamp: HEAD Blamelist: BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Sun Oct 7 15:01:29 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 07 Oct 2007 13:01:29 +0000 Subject: [Python-checkins] buildbot failure in 3.0.msi Message-ID: <20071007130130.339DE1E4006@bag.python.org> The Buildbot has detected a new failure of 3.0.msi. Full details are available at: http://www.python.org/dev/buildbot/all/3.0.msi/builds/37 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: The Nightly scheduler named '3.0.msi' triggered this build Build Source Stamp: HEAD Blamelist: BUILD FAILED: failed svn sincerely, -The Buildbot From nnorwitz at gmail.com Sun Oct 7 22:00:04 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sun, 7 Oct 2007 16:00:04 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071007200004.GA6562@python.psfb.org> svn update tools/sphinx svn: PROPFIND request failed on '/projects/doctools/trunk/sphinx' svn: PROPFIND of '/projects/doctools/trunk/sphinx': could not connect to server (http://svn.python.org) make: *** [update] Error 1 From python-checkins at python.org Mon Oct 8 01:47:50 2007 From: python-checkins at python.org (brett.cannon) Date: Mon, 8 Oct 2007 01:47:50 +0200 (CEST) Subject: [Python-checkins] r58354 - python/branches/pep302_phase2 Message-ID: <20071007234750.66AD51E4006@bag.python.org> Author: brett.cannon Date: Mon Oct 8 01:47:50 2007 New Revision: 58354 Removed: python/branches/pep302_phase2/ Log: Never went anywhere with this work, thus this branch was never really touched. Besides, attempts to integrate importlib are happening for Py3K in py3k-importlib. From python-checkins at python.org Mon Oct 8 03:24:46 2007 From: python-checkins at python.org (alexandre.vassalotti) Date: Mon, 8 Oct 2007 03:24:46 +0200 (CEST) Subject: [Python-checkins] r58356 - python/branches/alex-py3k/Modules/_picklemodule.c Message-ID: <20071008012446.4620F1E4006@bag.python.org> Author: alexandre.vassalotti Date: Mon Oct 8 03:24:45 2007 New Revision: 58356 Modified: python/branches/alex-py3k/Modules/_picklemodule.c Log: Load string, from pickle streams produced by older Python versions, as Unicode instead of str8. Clean up variable names and useless goto-statements in load_binstring(), load_short_binstring(), and load_unicode(). Remove #ifdef Py_USING_UNICODE. Modified: python/branches/alex-py3k/Modules/_picklemodule.c ============================================================================== --- python/branches/alex-py3k/Modules/_picklemodule.c (original) +++ python/branches/alex-py3k/Modules/_picklemodule.c Mon Oct 8 03:24:45 2007 @@ -1060,7 +1060,6 @@ return -1; } -#ifdef Py_USING_UNICODE /* A copy of PyUnicode_EncodeRawUnicodeEscape() that also translates backslash and newline characters to \uXXXX escapes. */ static PyObject * @@ -1168,7 +1167,6 @@ Py_XDECREF(repr); return -1; } -#endif /* A helper for save_tuple. Push the len elements in tuple t on the stack. */ static int @@ -1925,7 +1923,6 @@ return -1; } - if (listitems && batch_list(self, listitems) < 0) return -1; @@ -2763,8 +2760,8 @@ static int load_string(UnpicklerObject *self) { - PyObject *str = 0; - int len, res = -1; + PyObject *str = NULL, *ustr = NULL; + int len; char *s, *p; if ((len = self->readline_func(self, &s)) < 0) @@ -2774,7 +2771,6 @@ if (!(s = pystrndup(s, len))) return -1; - /* Strip outermost quotes */ while (s[len - 1] <= ' ') len--; @@ -2788,27 +2784,32 @@ p = s + 1; len -= 2; } - else - goto insecure; + else { + free(s); + PyErr_SetString(PyExc_ValueError, "insecure string pickle"); + return -1; + } + /* Use the PyString API to decode the string, since that is what is used + to encode, and then coerce the result to Unicode. */ str = PyString_DecodeEscape(p, len, NULL, 0, NULL); free(s); - if (str) { - PDATA_PUSH(self->stack, str, -1); - res = 0; - } - return res; + if (str == NULL) + return -1; - insecure: - free(s); - PyErr_SetString(PyExc_ValueError, "insecure string pickle"); - return -1; + ustr = PyObject_Unicode(str); + Py_DECREF(str); + if (ustr == NULL) + return -1; + + PDATA_PUSH(self->stack, ustr, -1); + return 0; } static int load_binstring(UnpicklerObject *self) { - PyObject *py_string = 0; + PyObject *str; long l; char *s; @@ -2820,41 +2821,42 @@ if (self->read_func(self, &s, l) < 0) return -1; - if (!(py_string = PyString_FromStringAndSize(s, l))) + str = PyUnicode_FromStringAndSize(s, l); + if (str == NULL) return -1; - PDATA_PUSH(self->stack, py_string, -1); + PDATA_PUSH(self->stack, str, -1); return 0; } static int load_short_binstring(UnpicklerObject *self) { - PyObject *py_string = 0; + PyObject *str; unsigned char l; char *s; if (self->read_func(self, &s, 1) < 0) return -1; - l = (unsigned char) s[0]; + l = (unsigned char)s[0]; if (self->read_func(self, &s, l) < 0) return -1; - if (!(py_string = PyString_FromStringAndSize(s, l))) + str = PyUnicode_FromStringAndSize(s, l); + if (str == NULL) return -1; - PDATA_PUSH(self->stack, py_string, -1); + PDATA_PUSH(self->stack, str, -1); return 0; } -#ifdef Py_USING_UNICODE static int load_unicode(UnpicklerObject *self) { - PyObject *str = 0; - int len, res = -1; + PyObject *str; + int len; char *s; if ((len = self->readline_func(self, &s)) < 0) @@ -2862,19 +2864,14 @@ if (len < 1) return bad_readline(); - if (!(str = PyUnicode_DecodeRawUnicodeEscape(s, len - 1, NULL))) - goto finally; + str = PyUnicode_DecodeRawUnicodeEscape(s, len - 1, NULL); + if (str == NULL) + return -1; PDATA_PUSH(self->stack, str, -1); return 0; - - finally: - return res; } -#endif - -#ifdef Py_USING_UNICODE static int load_binunicode(UnpicklerObject *self) { @@ -2896,8 +2893,6 @@ PDATA_PUSH(self->stack, unicode, -1); return 0; } -#endif - static int load_tuple(UnpicklerObject *self) From python-checkins at python.org Mon Oct 8 03:28:05 2007 From: python-checkins at python.org (alexandre.vassalotti) Date: Mon, 8 Oct 2007 03:28:05 +0200 (CEST) Subject: [Python-checkins] r58357 - python/branches/alex-py3k/Modules/_picklemodule.c Message-ID: <20071008012805.6FCCB1E4007@bag.python.org> Author: alexandre.vassalotti Date: Mon Oct 8 03:28:05 2007 New Revision: 58357 Modified: python/branches/alex-py3k/Modules/_picklemodule.c Log: Always use save_long() for pickling integers. Delete save_int(). Modified: python/branches/alex-py3k/Modules/_picklemodule.c ============================================================================== --- python/branches/alex-py3k/Modules/_picklemodule.c (original) +++ python/branches/alex-py3k/Modules/_picklemodule.c Mon Oct 8 03:28:05 2007 @@ -787,69 +787,13 @@ } static int -save_int(PicklerObject *self, long l) -{ - char c_str[32]; - int len = 0; - - if (!self->bin -#if SIZEOF_LONG > 4 - || l > 0x7fffffffL || l < -0x80000000L -#endif - ) { - /* Text-mode pickle, or long too big to fit in the 4-byte - * signed BININT format: store as a string. - */ - c_str[0] = INT; - PyOS_snprintf(c_str + 1, sizeof(c_str) - 1, "%ld\n", l); - if (self->write_func(self, c_str, strlen(c_str)) < 0) - return -1; - } - else { - /* Binary pickle and l fits in a signed 4-byte int. */ - c_str[1] = (int)(l & 0xff); - c_str[2] = (int)((l >> 8) & 0xff); - c_str[3] = (int)((l >> 16) & 0xff); - c_str[4] = (int)((l >> 24) & 0xff); - - if ((c_str[4] == 0) && (c_str[3] == 0)) { - if (c_str[2] == 0) { - c_str[0] = BININT1; - len = 2; - } - else { - c_str[0] = BININT2; - len = 3; - } - } - else { - c_str[0] = BININT; - len = 5; - } - - if (self->write_func(self, c_str, len) < 0) - return -1; - } - - return 0; -} - -static int save_long(PicklerObject *self, PyObject *args) { Py_ssize_t size; int res = -1; PyObject *repr = NULL; - long val = PyInt_AsLong(args); static char l = LONG; - if (val == -1 && PyErr_Occurred()) { - /* out of range for int pickling */ - PyErr_Clear(); - } - else - return save_int(self, val); - if (self->proto >= 2) { /* Linear-time pickling. */ size_t nbits; From python-checkins at python.org Mon Oct 8 03:58:06 2007 From: python-checkins at python.org (alexandre.vassalotti) Date: Mon, 8 Oct 2007 03:58:06 +0200 (CEST) Subject: [Python-checkins] r58358 - python/branches/alex-py3k/Modules/_picklemodule.c Message-ID: <20071008015806.D17E61E4006@bag.python.org> Author: alexandre.vassalotti Date: Mon Oct 8 03:58:06 2007 New Revision: 58358 Modified: python/branches/alex-py3k/Modules/_picklemodule.c Log: In save_string(), use PyUnicode API for handling object's repr. Modified: python/branches/alex-py3k/Modules/_picklemodule.c ============================================================================== --- python/branches/alex-py3k/Modules/_picklemodule.c (original) +++ python/branches/alex-py3k/Modules/_picklemodule.c Mon Oct 8 03:58:06 2007 @@ -948,9 +948,9 @@ if (!(repr = PyObject_Repr(args))) return -1; - if ((len = PyString_Size(repr)) < 0) + if ((len = PyUnicode_GetSize(repr)) < 0) goto error; - repr_str = PyString_AS_STRING((PyStringObject *)repr); + repr_str = PyUnicode_AsString(repr); if (self->write_func(self, &string, 1) < 0) goto error; @@ -988,7 +988,7 @@ return -1; if (self->write_func(self, - PyString_AS_STRING((PyStringObject *)args), + PyString_AS_STRING(args), size) < 0) return -1; } From python-checkins at python.org Mon Oct 8 04:25:35 2007 From: python-checkins at python.org (alexandre.vassalotti) Date: Mon, 8 Oct 2007 04:25:35 +0200 (CEST) Subject: [Python-checkins] r58359 - python/branches/alex-py3k/Modules/_picklemodule.c Message-ID: <20071008022535.96B2D1E4006@bag.python.org> Author: alexandre.vassalotti Date: Mon Oct 8 04:25:35 2007 New Revision: 58359 Modified: python/branches/alex-py3k/Modules/_picklemodule.c Log: Revert r58357. Change INT to LONG for consistence with pickle.py Modified: python/branches/alex-py3k/Modules/_picklemodule.c ============================================================================== --- python/branches/alex-py3k/Modules/_picklemodule.c (original) +++ python/branches/alex-py3k/Modules/_picklemodule.c Mon Oct 8 04:25:35 2007 @@ -787,13 +787,69 @@ } static int +save_int(PicklerObject *self, long l) +{ + char c_str[32]; + int len = 0; + + if (!self->bin +#if SIZEOF_LONG > 4 + || l > 0x7fffffffL || l < -0x80000000L +#endif + ) { + /* Text-mode pickle, or long too big to fit in the 4-byte + * signed BININT format: store as a string. + */ + c_str[0] = LONG; /* use LONG for consistence with pickle.py */ + PyOS_snprintf(c_str + 1, sizeof(c_str) - 1, "%ld\n", l); + if (self->write_func(self, c_str, strlen(c_str)) < 0) + return -1; + } + else { + /* Binary pickle and l fits in a signed 4-byte int. */ + c_str[1] = (int)(l & 0xff); + c_str[2] = (int)((l >> 8) & 0xff); + c_str[3] = (int)((l >> 16) & 0xff); + c_str[4] = (int)((l >> 24) & 0xff); + + if ((c_str[4] == 0) && (c_str[3] == 0)) { + if (c_str[2] == 0) { + c_str[0] = BININT1; + len = 2; + } + else { + c_str[0] = BININT2; + len = 3; + } + } + else { + c_str[0] = BININT; + len = 5; + } + + if (self->write_func(self, c_str, len) < 0) + return -1; + } + + return 0; +} + +static int save_long(PicklerObject *self, PyObject *args) { Py_ssize_t size; int res = -1; PyObject *repr = NULL; + long val = PyInt_AsLong(args); static char l = LONG; + if (val == -1 && PyErr_Occurred()) { + /* out of range for int pickling */ + PyErr_Clear(); + } + else + return save_int(self, val); + if (self->proto >= 2) { /* Linear-time pickling. */ size_t nbits; From python-checkins at python.org Mon Oct 8 05:15:35 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 8 Oct 2007 05:15:35 +0200 (CEST) Subject: [Python-checkins] r58361 - peps/trunk/pep-3106.txt peps/trunk/pep-3119.txt Message-ID: <20071008031535.C0DE01E4006@bag.python.org> Author: guido.van.rossum Date: Mon Oct 8 05:15:35 2007 New Revision: 58361 Modified: peps/trunk/pep-3106.txt peps/trunk/pep-3119.txt Log: Typos and clarifications detected by Mark Summerfield. Modified: peps/trunk/pep-3106.txt ============================================================================== --- peps/trunk/pep-3106.txt (original) +++ peps/trunk/pep-3106.txt Mon Oct 8 05:15:35 2007 @@ -15,7 +15,7 @@ This PEP proposes to change the .keys(), .values() and .items() methods of the built-in dict type to return a set-like or unordered -container object whose contents are derived of the underlying +container object whose contents are derived from the underlying dictionary rather than a list which is a copy of the keys, etc.; and to remove the .iterkeys(), .itervalues() and .iteritems() methods. @@ -64,6 +64,7 @@ a = d.items() for k, v in a: ... + # And later, again: for k, v in a: ... Effectively, iter(d.keys()) (etc.) in Python 3.0 will do what @@ -72,8 +73,8 @@ The objects returned by the .keys() and .items() methods behave like sets. The object returned by the values() method behaves like a much -simpler unordered collection; anything more would require too much -implementation effort for the rare use case. +simpler unordered collection -- it cannot be a set because duplicate +values are possible. Because of the set behavior, it will be possible to check whether two dicts have the same keys by simply testing:: @@ -268,7 +269,7 @@ __hash__(); their value can change if the underlying dict is mutated. The only requirements on the underlying dict are that it implements -__getitem__(), __contains__(), __iter__(), and __len__(0. +__getitem__(), __contains__(), __iter__(), and __len__(). We don't implement .copy() -- the presence of a .copy() method suggests that the copy has the same type as the original, but Modified: peps/trunk/pep-3119.txt ============================================================================== --- peps/trunk/pep-3119.txt (original) +++ peps/trunk/pep-3119.txt Mon Oct 8 05:15:35 2007 @@ -244,7 +244,7 @@ ``__subclasscheck__`` and defines a ``register`` method. The ``register`` method takes one argument, which much be a class; after the call ``B.register(C)``, the call ``issubclass(C, B)`` will return -True, by virtue of of ``B.__subclasscheck__(C)`` returning True. +True, by virtue of ``B.__subclasscheck__(C)`` returning True. Also, ``isinstance(x, B)`` is equivalent to ``issubclass(x.__class__, B) or issubclass(type(x), B)``. (It is possible ``type(x)`` and ``x.__class__`` are not the same object, e.g. when x is a proxy @@ -355,11 +355,12 @@ (If this were implemented in CPython, an internal flag ``Py_TPFLAGS_ABSTRACT`` could be used to speed up this check [6]_.) -**Discussion:** Unlike C++ or Java, abstract methods as defined here -may have an implementation. This implementation can be called via the -``super`` mechanism from the class that overrides it. This could be -useful as an end-point for a super-call in framework using a -cooperative multiple-inheritance [7]_, [8]_. +**Discussion:** Unlike Java's abstract methods or C++'s pure abstract +methods, abstract methods as defined here may have an implementation. +This implementation can be called via the ``super`` mechanism from the +class that overrides it. This could be useful as an end-point for a +super-call in framework using cooperative multiple-inheritance [7]_, +[8]_. A second decorator, ``@abstractproperty``, is defined in order to define abstract data attributes. Its implementation is a subclass of @@ -387,9 +388,10 @@ self.__x = value x = abstractproperty(getx, setx) -A subclass inheriting an abstract property (declared using either the -decorator syntax or the longer form) cannot be instantiated unless it -overrides that abstract property with a concrete property. +Similar to abstract methods, a subclass inheriting an abstract +property (declared using either the decorator syntax or the longer +form) cannot be instantiated unless it overrides that abstract +property with a concrete property. ABCs for Containers and Iterators @@ -447,8 +449,9 @@ inefficient) implementation. **Invariant:** If classes ``C1`` and ``C2`` both derive from ``Hashable``, the condition ``o1 == o2`` must imply ``hash(o1) == hash(o2)`` for all instances ``o1`` of - ``C1`` and all instances ``o2`` of ``C2``. IOW, two objects - should never compare equal but have different hash values. + ``C1`` and all instances ``o2`` of ``C2``. In other words, two + objects should never compare equal if they have different hash + values. Another constraint is that hashable objects, once created, should never change their value (as compared by ``==``) or their hash @@ -484,16 +487,16 @@ method should return an ``Integer`` (see "Numbers" below) >= 0. The abstract ``__len__`` method returns 0. **Invariant:** If a class ``C`` derives from ``Sized`` as well as from ``Iterable``, - the invariant ``sum(1 for x in o) == len(o)`` should hold for any - instance ``o`` of ``C``. + the invariant ``sum(1 for x in c) == len(c)`` should hold for any + instance ``c`` of ``C``. ``Container`` The base class for classes defining ``__contains__``. The ``__contains__`` method should return a ``bool``. The abstract ``__contains__`` method returns ``False``. **Invariant:** If a class ``C`` derives from ``Container`` as well as from - ``Iterable``, then ``(x in o for x in o)`` should be a generator - yielding only True values for any instance ``o`` of ``C``. + ``Iterable``, then ``(x in c for x in c)`` should be a generator + yielding only True values for any instance ``c`` of ``C``. **Open issues:** Conceivably, instead of using the ABCMeta metaclass, these classes could override ``__instancecheck__`` and @@ -526,7 +529,7 @@ These abstract classes represent read-only sets and mutable sets. The most fundamental set operation is the membership test, written as ``x in s`` and implemented by ``s.__contains__(x)``. This operation is -already defined by the `Container`` class defined above. Therefore, +already defined by the ``Container`` class defined above. Therefore, we define a set as a sized, iterable container for which certain invariants from mathematical set theory hold. @@ -549,7 +552,7 @@ The ordering operations have concrete implementations; subclasses may override these for speed but should maintain the semantics. Because ``Set`` derives from ``Sized``, ``__eq__`` may take a - shortcut and returns ``False`` immediately if two sets of unequal + shortcut and return ``False`` immediately if two sets of unequal length are compared. Similarly, ``__le__`` may return ``False`` immediately if the first set has more members than the second set. Note that set inclusion implements only a partial ordering; @@ -622,7 +625,7 @@ This also supports the in-place mutating operations ``|=``, ``&=``, ``^=``, ``-=``. These are concrete methods whose right operand can be an arbitrary ``Iterable``, except for ``&=``, whose - right operand must be a ``Container``. This ABC does not support + right operand must be a ``Container``. This ABC does not provide the named methods present on the built-in concrete ``set`` type that perform (almost) the same operations. From python-checkins at python.org Mon Oct 8 07:21:12 2007 From: python-checkins at python.org (alexandre.vassalotti) Date: Mon, 8 Oct 2007 07:21:12 +0200 (CEST) Subject: [Python-checkins] r58364 - python/branches/alex-py3k/Modules/_picklemodule.c Message-ID: <20071008052112.79B341E4006@bag.python.org> Author: alexandre.vassalotti Date: Mon Oct 8 07:21:11 2007 New Revision: 58364 Modified: python/branches/alex-py3k/Modules/_picklemodule.c Log: In whichmodule(), handle the case where __module__ is None. Modified: python/branches/alex-py3k/Modules/_picklemodule.c ============================================================================== --- python/branches/alex-py3k/Modules/_picklemodule.c (original) +++ python/branches/alex-py3k/Modules/_picklemodule.c Mon Oct 8 07:21:11 2007 @@ -658,21 +658,25 @@ PyObject *module = 0, *modules_dict = 0, *global_name_attr = 0, *name = 0; module = PyObject_GetAttrString(global, "__module__"); + + /* In some cases (e.g., C functions), __module__ can be None. If it is so, + then search sys.modules for the module of global. */ + if (module == Py_None) + goto search; + if (module) return module; if (PyErr_ExceptionMatches(PyExc_AttributeError)) PyErr_Clear(); else return NULL; - - /* XXX: This seems only necessary for older Python versions without - the __module__ attribute. */ + + search: if (!(modules_dict = PySys_GetObject("modules"))) return NULL; i = 0; while ((j = PyDict_Next(modules_dict, &i, &name, &module))) { - if (PyObject_Compare(name, __main__) == 0) continue; @@ -691,14 +695,10 @@ } Py_DECREF(global_name_attr); - break; } - /* The following implements the rule in pickle.py added in 1.5 - * that used __main__ if no module is found. I don't actually - * like this rule. jlf - */ + /* If no module is found, use __main__. */ if (!j) { j = 1; name = __main__; From python-checkins at python.org Mon Oct 8 07:22:37 2007 From: python-checkins at python.org (alexandre.vassalotti) Date: Mon, 8 Oct 2007 07:22:37 +0200 (CEST) Subject: [Python-checkins] r58365 - python/branches/alex-py3k/Modules/_picklemodule.c Message-ID: <20071008052238.0F6C21E4006@bag.python.org> Author: alexandre.vassalotti Date: Mon Oct 8 07:22:37 2007 New Revision: 58365 Modified: python/branches/alex-py3k/Modules/_picklemodule.c Log: Be slightly more specific about the rare case where __module__ is None. Modified: python/branches/alex-py3k/Modules/_picklemodule.c ============================================================================== --- python/branches/alex-py3k/Modules/_picklemodule.c (original) +++ python/branches/alex-py3k/Modules/_picklemodule.c Mon Oct 8 07:22:37 2007 @@ -659,8 +659,9 @@ module = PyObject_GetAttrString(global, "__module__"); - /* In some cases (e.g., C functions), __module__ can be None. If it is so, - then search sys.modules for the module of global. */ + /* In some rare cases (e.g., random.getrandbits), __module__ can be + None. If it is so, then search sys.modules for the module of + global. */ if (module == Py_None) goto search; From python-checkins at python.org Mon Oct 8 09:50:24 2007 From: python-checkins at python.org (georg.brandl) Date: Mon, 8 Oct 2007 09:50:24 +0200 (CEST) Subject: [Python-checkins] r58368 - python/trunk/Doc/library/stdtypes.rst Message-ID: <20071008075024.DF8001E4006@bag.python.org> Author: georg.brandl Date: Mon Oct 8 09:50:24 2007 New Revision: 58368 Modified: python/trunk/Doc/library/stdtypes.rst Log: #1123: fix the docs for the str.split(None, sep) case. Also expand a few other methods' docs, which had more info in the deprecated string module docs. Modified: python/trunk/Doc/library/stdtypes.rst ============================================================================== --- python/trunk/Doc/library/stdtypes.rst (original) +++ python/trunk/Doc/library/stdtypes.rst Mon Oct 8 09:50:24 2007 @@ -686,9 +686,9 @@ .. method:: str.count(sub[, start[, end]]) - Return the number of occurrences of substring *sub* in string S\ - ``[start:end]``. Optional arguments *start* and *end* are interpreted as in - slice notation. + Return the number of occurrences of substring *sub* in the range [*start*, + *end*]. Optional arguments *start* and *end* are interpreted as in slice + notation. .. method:: str.decode([encoding[, errors]]) @@ -737,8 +737,11 @@ .. method:: str.expandtabs([tabsize]) - Return a copy of the string where all tab characters are expanded using spaces. - If *tabsize* is not given, a tab size of ``8`` characters is assumed. + Return a copy of the string where all tab characters are replaced by one or + more spaces, depending on the current column and the given tab size. The + column number is reset to zero after each newline occurring in the string. + If *tabsize* is not given, a tab size of ``8`` characters is assumed. This + doesn't understand other non-printing characters or escape sequences. .. method:: str.find(sub[, start[, end]]) @@ -927,25 +930,29 @@ Support for the *chars* argument. -.. method:: str.split([sep [,maxsplit]]) +.. method:: str.split([sep[, maxsplit]]) - Return a list of the words in the string, using *sep* as the delimiter string. - If *maxsplit* is given, at most *maxsplit* splits are done. (thus, the list will - have at most ``maxsplit+1`` elements). If *maxsplit* is not specified, then - there is no limit on the number of splits (all possible splits are made). - Consecutive delimiters are not grouped together and are deemed to delimit empty - strings (for example, ``'1,,2'.split(',')`` returns ``['1', '', '2']``). The - *sep* argument may consist of multiple characters (for example, ``'1, 2, - 3'.split(', ')`` returns ``['1', '2', '3']``). Splitting an empty string with a - specified separator returns ``['']``. + Return a list of the words in the string, using *sep* as the delimiter + string. If *maxsplit* is given, at most *maxsplit* splits are done (thus, + the list will have at most ``maxsplit+1`` elements). If *maxsplit* is not + specified, then there is no limit on the number of splits (all possible + splits are made). + + If *sep is given, consecutive delimiters are not grouped together and are + deemed to delimit empty strings (for example, ``'1,,2'.split(',')`` returns + ``['1', '', '2']``). The *sep* argument may consist of multiple characters + (for example, ``'1<>2<>3'.split('<>')`` returns ``['1', '2', '3']``). + Splitting an empty string with a specified separator returns ``['']``. If *sep* is not specified or is ``None``, a different splitting algorithm is - applied. First, whitespace characters (spaces, tabs, newlines, returns, and - formfeeds) are stripped from both ends. Then, words are separated by arbitrary - length strings of whitespace characters. Consecutive whitespace delimiters are - treated as a single delimiter (``'1 2 3'.split()`` returns ``['1', '2', - '3']``). Splitting an empty string or a string consisting of just whitespace - returns an empty list. + applied: runs of consecutive whitespace are regarded as a single separator, + and the result will contain no empty strings at the start or end if the + string has leading or trailing whitespace. Consequently, splitting an empty + string or a string consisting of just whitespace with a ``None`` separator + returns ``[]``. + + For example, ``' 1 2 3 '.split()`` returns ``['1', '2', '3']``, and + ``' 1 2 3 '.split(None, 1)`` returns ``['1', '2 3 ']``. .. method:: str.splitlines([keepends]) @@ -1035,8 +1042,10 @@ .. method:: str.zfill(width) - Return the numeric string left filled with zeros in a string of length *width*. - The original string is returned if *width* is less than ``len(s)``. + Return the numeric string left filled with zeros in a string of length + *width*. A sign prefix is handled correctly. The original string is + returned if *width* is less than ``len(s)``. + .. versionadded:: 2.2.2 From nnorwitz at gmail.com Mon Oct 8 10:00:06 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Mon, 8 Oct 2007 04:00:06 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071008080006.GA10480@python.psfb.org> svn update tools/sphinx svn: PROPFIND request failed on '/projects/doctools/trunk/sphinx' svn: PROPFIND of '/projects/doctools/trunk/sphinx': could not connect to server (http://svn.python.org) make: *** [update] Error 1 From python-checkins at python.org Mon Oct 8 10:06:05 2007 From: python-checkins at python.org (georg.brandl) Date: Mon, 8 Oct 2007 10:06:05 +0200 (CEST) Subject: [Python-checkins] r58369 - python/trunk/Lib/sched.py Message-ID: <20071008080605.8F4191E4006@bag.python.org> Author: georg.brandl Date: Mon Oct 8 10:06:05 2007 New Revision: 58369 Modified: python/trunk/Lib/sched.py Log: Update docstring of sched, also remove an unused assignment. Modified: python/trunk/Lib/sched.py ============================================================================== --- python/trunk/Lib/sched.py (original) +++ python/trunk/Lib/sched.py Mon Oct 8 10:06:05 2007 @@ -16,11 +16,11 @@ Events are specified by tuples (time, priority, action, argument). As in UNIX, lower priority numbers mean higher priority; in this way the queue can be maintained as a priority queue. Execution of the -event means calling the action function, passing it the argument. -Remember that in Python, multiple function arguments can be packed -in a tuple. The action function may be an instance method so it +event means calling the action function, passing it the argument +sequence in "argument" (remember that in Python, multiple function +arguments are be packed in a sequence). +The action function may be an instance method so it has another way to reference private data (besides global variables). -Parameterless functions or methods cannot be used, however. """ # XXX The timefunc and delayfunc should have been defined as methods @@ -89,7 +89,7 @@ exceptions are not caught but the scheduler's state remains well-defined so run() may be called again. - A questionably hack is added to allow other threads to run: + A questionable hack is added to allow other threads to run: just after an event is executed, a delay of 0 is executed, to avoid monopolizing the CPU when other threads are also runnable. @@ -111,7 +111,7 @@ # Verify that the event was not removed or altered # by another thread after we last looked at q[0]. if event is checked_event: - void = action(*argument) + action(*argument) delayfunc(0) # Let other threads run else: heapq.heappush(event) From buildbot at python.org Mon Oct 8 10:11:19 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 08 Oct 2007 08:11:19 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20071008081120.431591E4020@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/252 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Mon Oct 8 10:11:31 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 08 Oct 2007 08:11:31 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20071008081131.9187A1E4007@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/2278 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Mon Oct 8 10:11:33 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 08 Oct 2007 08:11:33 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux trunk Message-ID: <20071008081133.A07EA1E4007@bag.python.org> The Buildbot has detected a new failure of ARM Linux trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20trunk/builds/13 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-arm Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Mon Oct 8 10:11:36 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 08 Oct 2007 08:11:36 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc trunk Message-ID: <20071008081136.9BAA51E4008@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%20trunk/builds/2333 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Mon Oct 8 10:11:42 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 08 Oct 2007 08:11:42 +0000 Subject: [Python-checkins] buildbot failure in x86 mvlgcc trunk Message-ID: <20071008081142.853361E4006@bag.python.org> The Buildbot has detected a new failure of x86 mvlgcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20mvlgcc%20trunk/builds/862 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-linux Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Mon Oct 8 10:11:51 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 08 Oct 2007 08:11:51 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20071008081151.C3F3D1E4006@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/2231 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Mon Oct 8 10:14:29 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 08 Oct 2007 08:14:29 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 trunk Message-ID: <20071008081429.632BE1E4006@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%20trunk/builds/292 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed svn sincerely, -The Buildbot From python-checkins at python.org Mon Oct 8 11:14:28 2007 From: python-checkins at python.org (raymond.hettinger) Date: Mon, 8 Oct 2007 11:14:28 +0200 (CEST) Subject: [Python-checkins] r58370 - in python/trunk: Doc/library/collections.rst Lib/collections.py Lib/test/test_collections.py Message-ID: <20071008091428.BB99A1E4006@bag.python.org> Author: raymond.hettinger Date: Mon Oct 8 11:14:28 2007 New Revision: 58370 Modified: python/trunk/Doc/library/collections.rst python/trunk/Lib/collections.py python/trunk/Lib/test/test_collections.py Log: Add comments to NamedTuple code. Let the field spec be either a string or a non-string sequence (suggested by Martin Blais with use cases). Improve the error message in the case of a SyntaxError (caused by a duplicate field name). Modified: python/trunk/Doc/library/collections.rst ============================================================================== --- python/trunk/Doc/library/collections.rst (original) +++ python/trunk/Doc/library/collections.rst Mon Oct 8 11:14:28 2007 @@ -363,9 +363,11 @@ helpful docstring (with typename and fieldnames) and a helpful :meth:`__repr__` method which lists the tuple contents in a ``name=value`` format. - The *fieldnames* are specified in a single string with each fieldname separated by - a space and/or comma. Any valid Python identifier may be used for a fieldname - except for names starting and ending with double underscores. + The *fieldnames* are a single string with each fieldname separated by a space + and/or comma (for example "x y" or "x, y"). Alternately, the *fieldnames* + can be specified as list or tuple of strings. Any valid Python identifier + may be used for a fieldname except for names starting and ending with double + underscores. If *verbose* is true, will print the class definition. Modified: python/trunk/Lib/collections.py ============================================================================== --- python/trunk/Lib/collections.py (original) +++ python/trunk/Lib/collections.py Mon Oct 8 11:14:28 2007 @@ -4,7 +4,7 @@ from operator import itemgetter as _itemgetter import sys as _sys -def NamedTuple(typename, s, verbose=False): +def NamedTuple(typename, field_names, verbose=False): """Returns a new subclass of tuple with named fields. >>> Point = NamedTuple('Point', 'x y') @@ -28,11 +28,16 @@ """ - field_names = tuple(s.replace(',', ' ').split()) # names separated by spaces and/or commas + # Parse and validate the field names + if isinstance(field_names, basestring): + field_names = s.replace(',', ' ').split() # names separated by spaces and/or commas + field_names = tuple(field_names) if not ''.join((typename,) + field_names).replace('_', '').isalnum(): raise ValueError('Type names and field names can only contain alphanumeric characters and underscores') if any(name.startswith('__') and name.endswith('__') for name in field_names): raise ValueError('Field names cannot start and end with double underscores') + + # Create and fill-in the class template argtxt = repr(field_names).replace("'", "")[1:-1] # tuple repr without parens or quotes reprtxt = ', '.join('%s=%%r' % name for name in field_names) template = '''class %(typename)s(tuple): @@ -53,11 +58,21 @@ template += ' %s = property(itemgetter(%d))\n' % (name, i) if verbose: print template + + # Execute the template string in a temporary namespace m = dict(itemgetter=_itemgetter) - exec template in m + try: + exec template in m + except SyntaxError, e: + raise SyntaxError(e.message + ':\n' + template) result = m[typename] + + # For pickling to work, the __module__ variable needs to be set to the frame + # where the named tuple is created. Bypass this step in enviroments where + # sys._getframe is not defined (Jython for example). if hasattr(_sys, '_getframe'): result.__module__ = _sys._getframe(1).f_globals['__name__'] + return result Modified: python/trunk/Lib/test/test_collections.py ============================================================================== --- python/trunk/Lib/test/test_collections.py (original) +++ python/trunk/Lib/test/test_collections.py Mon Oct 8 11:14:28 2007 @@ -40,6 +40,11 @@ p = Point(x=11, y=22) self.assertEqual(repr(p), 'Point(x=11, y=22)') + # verify that fieldspec can be a non-string sequence + Point = NamedTuple('Point', ('x', 'y')) + p = Point(x=11, y=22) + self.assertEqual(repr(p), 'Point(x=11, y=22)') + def test_tupleness(self): Point = NamedTuple('Point', 'x y') p = Point(11, 22) From python-checkins at python.org Mon Oct 8 11:56:29 2007 From: python-checkins at python.org (raymond.hettinger) Date: Mon, 8 Oct 2007 11:56:29 +0200 (CEST) Subject: [Python-checkins] r58371 - python/trunk/Doc/library/collections.rst Message-ID: <20071008095629.E7F961E4006@bag.python.org> Author: raymond.hettinger Date: Mon Oct 8 11:56:29 2007 New Revision: 58371 Modified: python/trunk/Doc/library/collections.rst Log: Missed a line in the docs Modified: python/trunk/Doc/library/collections.rst ============================================================================== --- python/trunk/Doc/library/collections.rst (original) +++ python/trunk/Doc/library/collections.rst Mon Oct 8 11:56:29 2007 @@ -465,7 +465,7 @@ ('x', 'y') >>> Color = NamedTuple('Color', 'red green blue') - >>> Pixel = NamedTuple('Pixel', ' '.join(Point.__fields__ + Color.__fields__)) + >>> Pixel = NamedTuple('Pixel', Point.__fields__ + Color.__fields__) >>> Pixel(11, 22, 128, 255, 0) Pixel(x=11, y=22, red=128, green=255, blue=0)' From python-checkins at python.org Mon Oct 8 12:11:51 2007 From: python-checkins at python.org (raymond.hettinger) Date: Mon, 8 Oct 2007 12:11:51 +0200 (CEST) Subject: [Python-checkins] r58372 - python/trunk/Lib/collections.py Message-ID: <20071008101151.CA3F01E4018@bag.python.org> Author: raymond.hettinger Date: Mon Oct 8 12:11:51 2007 New Revision: 58372 Modified: python/trunk/Lib/collections.py Log: Better variable names Modified: python/trunk/Lib/collections.py ============================================================================== --- python/trunk/Lib/collections.py (original) +++ python/trunk/Lib/collections.py Mon Oct 8 12:11:51 2007 @@ -30,7 +30,7 @@ # Parse and validate the field names if isinstance(field_names, basestring): - field_names = s.replace(',', ' ').split() # names separated by spaces and/or commas + field_names = field_names.replace(',', ' ').split() # names separated by whitespace and/or commas field_names = tuple(field_names) if not ''.join((typename,) + field_names).replace('_', '').isalnum(): raise ValueError('Type names and field names can only contain alphanumeric characters and underscores') @@ -60,12 +60,12 @@ print template # Execute the template string in a temporary namespace - m = dict(itemgetter=_itemgetter) + namespace = dict(itemgetter=_itemgetter) try: - exec template in m + exec template in namespace except SyntaxError, e: raise SyntaxError(e.message + ':\n' + template) - result = m[typename] + result = namespace[typename] # For pickling to work, the __module__ variable needs to be set to the frame # where the named tuple is created. Bypass this step in enviroments where From python-checkins at python.org Mon Oct 8 13:48:07 2007 From: python-checkins at python.org (phillip.eby) Date: Mon, 8 Oct 2007 13:48:07 +0200 (CEST) Subject: [Python-checkins] r58373 - sandbox/trunk/setuptools/setuptools/command/easy_install.py Message-ID: <20071008114807.5436A1E4006@bag.python.org> Author: phillip.eby Date: Mon Oct 8 13:48:07 2007 New Revision: 58373 Modified: sandbox/trunk/setuptools/setuptools/command/easy_install.py Log: Prevent --help-commands and other junk from showing under Python 2.5 when running "easy_install" directly. Modified: sandbox/trunk/setuptools/setuptools/command/easy_install.py ============================================================================== --- sandbox/trunk/setuptools/setuptools/command/easy_install.py (original) +++ sandbox/trunk/setuptools/setuptools/command/easy_install.py Mon Oct 8 13:48:07 2007 @@ -1661,6 +1661,7 @@ distutils.core.gen_usage = old_gen_usage class DistributionWithoutHelpCommands(Distribution): + common_usage = "" def _show_help(self,*args,**kw): with_ei_usage(lambda: Distribution._show_help(self,*args,**kw)) @@ -1678,4 +1679,3 @@ - From python-checkins at python.org Mon Oct 8 13:49:52 2007 From: python-checkins at python.org (phillip.eby) Date: Mon, 8 Oct 2007 13:49:52 +0200 (CEST) Subject: [Python-checkins] r58374 - in sandbox/branches/setuptools-0.6: EasyInstall.txt setuptools/command/easy_install.py Message-ID: <20071008114952.63D341E4006@bag.python.org> Author: phillip.eby Date: Mon Oct 8 13:49:52 2007 New Revision: 58374 Modified: sandbox/branches/setuptools-0.6/EasyInstall.txt sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py Log: Prevent ``--help-commands`` and other junk from showing under Python 2.5 when running ``easy_install --help``. (backport from trunk) Modified: sandbox/branches/setuptools-0.6/EasyInstall.txt ============================================================================== --- sandbox/branches/setuptools-0.6/EasyInstall.txt (original) +++ sandbox/branches/setuptools-0.6/EasyInstall.txt Mon Oct 8 13:49:52 2007 @@ -1233,6 +1233,10 @@ Release Notes/Change History ============================ +0.6final + * Prevent ``--help-commands`` and other junk from showing under Python 2.5 + when running ``easy_install --help``. + 0.6c7 * ``ftp:`` download URLs now work correctly. Modified: sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py ============================================================================== --- sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py (original) +++ sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py Mon Oct 8 13:49:52 2007 @@ -1661,6 +1661,7 @@ distutils.core.gen_usage = old_gen_usage class DistributionWithoutHelpCommands(Distribution): + common_usage = "" def _show_help(self,*args,**kw): with_ei_usage(lambda: Distribution._show_help(self,*args,**kw)) @@ -1678,4 +1679,3 @@ - From python-checkins at python.org Mon Oct 8 16:12:47 2007 From: python-checkins at python.org (georg.brandl) Date: Mon, 8 Oct 2007 16:12:47 +0200 (CEST) Subject: [Python-checkins] r58376 - python/trunk/Doc/c-api/abstract.rst python/trunk/Doc/c-api/newtypes.rst Message-ID: <20071008141247.A10071E401B@bag.python.org> Author: georg.brandl Date: Mon Oct 8 16:12:47 2007 New Revision: 58376 Modified: python/trunk/Doc/c-api/abstract.rst python/trunk/Doc/c-api/newtypes.rst Log: #1199: docs for tp_as_{number,sequence,mapping}, by Amaury Forgeot d'Arc. No need to merge this to py3k! Modified: python/trunk/Doc/c-api/abstract.rst ============================================================================== --- python/trunk/Doc/c-api/abstract.rst (original) +++ python/trunk/Doc/c-api/abstract.rst Mon Oct 8 16:12:47 2007 @@ -624,6 +624,13 @@ &o2)`` is equivalent to the Python statement ``o1, o2 = coerce(o1, o2)``. +.. cfunction:: int PyNumber_CoerceEx(PyObject **p1, PyObject **p2) + + This function is similar to :cfunc:`PyNumber_Coerce`, except that it returns + ``1`` when the conversion is not possible and when no error is raised. + Reference counts are still not increased in this case. + + .. cfunction:: PyObject* PyNumber_Int(PyObject *o) .. index:: builtin: int Modified: python/trunk/Doc/c-api/newtypes.rst ============================================================================== --- python/trunk/Doc/c-api/newtypes.rst (original) +++ python/trunk/Doc/c-api/newtypes.rst Mon Oct 8 16:12:47 2007 @@ -609,17 +609,34 @@ This field is inherited by subtypes. -.. cmember:: PyNumberMethods *tp_as_number; +.. cmember:: PyNumberMethods* tp_as_number - XXX + Pointer to an additional structure that contains fields relevant only to + objects which implement the number protocol. These fields are documented in + :ref:`number-structs`. + + The :attr:`tp_as_number` field is not inherited, but the contained fields are + inherited individually. + + +.. cmember:: PySequenceMethods* tp_as_sequence + + Pointer to an additional structure that contains fields relevant only to + objects which implement the sequence protocol. These fields are documented + in :ref:`sequence-structs`. + + The :attr:`tp_as_sequence` field is not inherited, but the contained fields + are inherited individually. -.. cmember:: PySequenceMethods *tp_as_sequence; - XXX +.. cmember:: PyMappingMethods* tp_as_mapping -.. cmember:: PyMappingMethods *tp_as_mapping; + Pointer to an additional structure that contains fields relevant only to + objects which implement the mapping protocol. These fields are documented in + :ref:`mapping-structs`. - XXX + The :attr:`tp_as_mapping` field is not inherited, but the contained fields + are inherited individually. .. cmember:: hashfunc PyTypeObject.tp_hash @@ -1431,28 +1448,127 @@ of the library. +.. _number-structs: + +Number Object Structures +======================== + +.. sectionauthor:: Amaury Forgeot d'Arc + + +.. ctype:: PyNumberMethods + + This structure holds pointers to the functions which an object uses to + implement the number protocol. Almost every function below is used by the + function of similar name documented in the :ref:`number` section. + + Here is the structure definition:: + + typedef struct { + binaryfunc nb_add; + binaryfunc nb_subtract; + binaryfunc nb_multiply; + binaryfunc nb_remainder; + binaryfunc nb_divmod; + ternaryfunc nb_power; + unaryfunc nb_negative; + unaryfunc nb_positive; + unaryfunc nb_absolute; + inquiry nb_nonzero; /* Used by PyObject_IsTrue */ + unaryfunc nb_invert; + binaryfunc nb_lshift; + binaryfunc nb_rshift; + binaryfunc nb_and; + binaryfunc nb_xor; + binaryfunc nb_or; + coercion nb_coerce; /* Used by the coerce() funtion */ + unaryfunc nb_int; + unaryfunc nb_long; + unaryfunc nb_float; + unaryfunc nb_oct; + unaryfunc nb_hex; + + /* Added in release 2.0 */ + binaryfunc nb_inplace_add; + binaryfunc nb_inplace_subtract; + binaryfunc nb_inplace_multiply; + binaryfunc nb_inplace_remainder; + ternaryfunc nb_inplace_power; + binaryfunc nb_inplace_lshift; + binaryfunc nb_inplace_rshift; + binaryfunc nb_inplace_and; + binaryfunc nb_inplace_xor; + binaryfunc nb_inplace_or; + + /* Added in release 2.2 */ + binaryfunc nb_floor_divide; + binaryfunc nb_true_divide; + binaryfunc nb_inplace_floor_divide; + binaryfunc nb_inplace_true_divide; + + /* Added in release 2.5 */ + unaryfunc nb_index; + } PyNumberMethods; + + +Binary and ternary functions may receive different kinds of arguments, depending +on the flag bit :const:`Py_TPFLAGS_CHECKTYPES`: + +- If :const:`Py_TPFLAGS_CHECKTYPES` is not set, the function arguments are + guaranteed to be of the object's type; the caller is responsible for calling + the coercion method specified by the :attr:`nb_coerce` member to convert the + arguments: + + .. cmember:: coercion PyNumberMethods.nb_coerce + + This function is used by :cfunc:`PyNumber_CoerceEx` and has the same + signature. The first argument is always a pointer to an object of the + defined type. If the conversion to a common "larger" type is possible, the + function replaces the pointers with new references to the converted objects + and returns ``0``. If the conversion is not possible, the function returns + ``1``. If an error condition is set, it will return ``-1``. + +- If the :const:`Py_TPFLAGS_CHECKTYPES` flag is set, binary and ternary + functions must check the type of all their operands, and implement the + necessary conversions (at least one of the operands is an instance of the + defined type). This is the recommended way; with Python 3.0 coercion will + disappear completely. + +If the operation is not defined for the given operands, binary and ternary +functions must return ``Py_NotImplemented``, if another error occurred they must +return ``NULL`` and set an exception. + + .. _mapping-structs: Mapping Object Structures ========================= +.. sectionauthor:: Amaury Forgeot d'Arc + .. ctype:: PyMappingMethods - Structure used to hold pointers to the functions used to implement the mapping - protocol for an extension type. + This structure holds pointers to the functions which an object uses to + implement the mapping protocol. It has three members: +.. cmember:: lenfunc PyMappingMethods.mp_length -.. _number-structs: + This function is used by :cfunc:`PyMapping_Length` and + :cfunc:`PyObject_Size`, and has the same signature. This slot may be set to + *NULL* if the object has no defined length. -Number Object Structures -======================== +.. cmember:: binaryfunc PyMappingMethods.mp_subscript + This function is used by :cfunc:`PyObject_GetItem` and has the same + signature. This slot must be filled for the :cfunc:`PyMapping_Check` + function to return ``1``, it can be *NULL* otherwise. -.. ctype:: PyNumberMethods +.. cmember:: objobjargproc PyMappingMethods.mp_ass_subscript - Structure used to hold pointers to the functions an extension type uses to - implement the number protocol. + This function is used by :cfunc:`PyObject_SetItem` and has the same + signature. If this slot is *NULL*, the object does not support item + assignment. .. _sequence-structs: @@ -1460,12 +1576,68 @@ Sequence Object Structures ========================== +.. sectionauthor:: Amaury Forgeot d'Arc + .. ctype:: PySequenceMethods - Structure used to hold pointers to the functions which an object uses to + This structure holds pointers to the functions which an object uses to implement the sequence protocol. +.. cmember:: lenfunc PySequenceMethods.sq_length + + This function is used by :cfunc:`PySequence_Size` and :cfunc:`PyObject_Size`, + and has the same signature. + +.. cmember:: binaryfunc PySequenceMethods.sq_concat + + This function is used by :cfunc:`PySequence_Concat` and has the same + signature. It is also used by the `+` operator, after trying the numeric + addition via the :attr:`tp_as_number.nb_add` slot. + +.. cmember:: ssizeargfunc PySequenceMethods.sq_repeat + + This function is used by :cfunc:`PySequence_Repeat` and has the same + signature. It is also used by the `*` operator, after trying numeric + multiplication via the :attr:`tp_as_number.nb_mul` slot. + +.. cmember:: ssizeargfunc PySequenceMethods.sq_item + + This function is used by :cfunc:`PySequence_GetItem` and has the same + signature. This slot must be filled for the :cfunc:`PySequence_Check` + function to return ``1``, it can be *NULL* otherwise. + + Negative indexes are handled as follows: if the :attr:`sq_length` slot is + filled, it is called and the sequence length is used to compute a positive + index which is passed to :attr:`sq_item`. If :attr:`sq_length` is *NULL*, + the index is passed as is to the function. + +.. cmember:: ssizeobjargproc PySequenceMethods.sq_ass_item + + This function is used by :cfunc:`PySequence_SetItem` and has the same + signature. This slot may be left to *NULL* if the object does not support + item assignment. + +.. cmember:: objobjproc PySequenceMethods.sq_contains + + This function may be used by :cfunc:`PySequence_Contains` and has the same + signature. This slot may be left to *NULL*, in this case + :cfunc:`PySequence_Contains` simply traverses the sequence until it finds a + match. + +.. cmember:: binaryfunc PySequenceMethods.sq_inplace_concat + + This function is used by :cfunc:`PySequence_InPlaceConcat` and has the same + signature. It should modify its first operand, and return it. + +.. cmember:: ssizeargfunc PySequenceMethods.sq_inplace_repeat + + This function is used by :cfunc:`PySequence_InPlaceRepeat` and has the same + signature. It should modify its first operand, and return it. + +.. XXX need to explain precedence between mapping and sequence +.. XXX explains when to implement the sq_inplace_* slots + .. _buffer-structs: From python-checkins at python.org Mon Oct 8 21:39:46 2007 From: python-checkins at python.org (alexandre.vassalotti) Date: Mon, 8 Oct 2007 21:39:46 +0200 (CEST) Subject: [Python-checkins] r58377 - python/branches/alex-py3k/Modules/_picklemodule.c Message-ID: <20071008193947.0C6981E4007@bag.python.org> Author: alexandre.vassalotti Date: Mon Oct 8 21:39:46 2007 New Revision: 58377 Modified: python/branches/alex-py3k/Modules/_picklemodule.c Log: Skip the s-prefix of str8 objects before writing the quoted string. Modified: python/branches/alex-py3k/Modules/_picklemodule.c ============================================================================== --- python/branches/alex-py3k/Modules/_picklemodule.c (original) +++ python/branches/alex-py3k/Modules/_picklemodule.c Mon Oct 8 21:39:46 2007 @@ -992,14 +992,13 @@ save_string(PicklerObject *self, PyObject *args, int doput) { int size, len; - PyObject *repr = 0; + PyObject *repr = NULL; if ((size = PyString_Size(args)) < 0) return -1; if (!self->bin) { char *repr_str; - static char string = STRING; if (!(repr = PyObject_Repr(args))) @@ -1012,7 +1011,10 @@ if (self->write_func(self, &string, 1) < 0) goto error; - if (self->write_func(self, repr_str, len) < 0) + /* +1 to skip the repr string prefix. + XXX Perhaps adding the quotes around the string manually would be + XXX better, and less likely to break? */ + if (self->write_func(self, repr_str + 1, len - 1) < 0) goto error; if (self->write_func(self, "\n", 1) < 0) From python-checkins at python.org Mon Oct 8 22:13:35 2007 From: python-checkins at python.org (alexandre.vassalotti) Date: Mon, 8 Oct 2007 22:13:35 +0200 (CEST) Subject: [Python-checkins] r58379 - python/branches/alex-py3k/Modules/_picklemodule.c Message-ID: <20071008201335.6AFC31E4011@bag.python.org> Author: alexandre.vassalotti Date: Mon Oct 8 22:13:35 2007 New Revision: 58379 Modified: python/branches/alex-py3k/Modules/_picklemodule.c Log: Remove obsolete comment. Remove custom __str__ implementation from PickleError. Modified: python/branches/alex-py3k/Modules/_picklemodule.c ============================================================================== --- python/branches/alex-py3k/Modules/_picklemodule.c (original) +++ python/branches/alex-py3k/Modules/_picklemodule.c Mon Oct 8 22:13:35 2007 @@ -4402,7 +4402,7 @@ static int init_stuff(PyObject *module_dict) { - PyObject *copy_reg, *t, *r; + PyObject *copy_reg; INIT_STR(__class__); INIT_STR(__dict__); @@ -4416,8 +4416,6 @@ if (!copy_reg) return -1; - /* This is special because we want to use a different - * one in restricted mode. */ dispatch_table = PyObject_GetAttrString(copy_reg, "dispatch_table"); if (!dispatch_table) return -1; @@ -4449,21 +4447,10 @@ */ PyObject_GC_UnTrack(two_tuple); - if (!(t = PyDict_New())) - return -1; - if (!(r = PyRun_String( - "def __str__(self):\n" - " return self.args and ('%s' % self.args[0]) or ''\n", - Py_file_input, module_dict, t))) - return -1; - Py_DECREF(r); - - PickleError = PyErr_NewException("pickle.PickleError", NULL, t); + PickleError = PyErr_NewException("pickle.PickleError", NULL, NULL); if (!PickleError) return -1; - Py_DECREF(t); - PicklingError = PyErr_NewException("pickle.PicklingError", PickleError, NULL); if (!PicklingError) From python-checkins at python.org Mon Oct 8 23:26:58 2007 From: python-checkins at python.org (raymond.hettinger) Date: Mon, 8 Oct 2007 23:26:58 +0200 (CEST) Subject: [Python-checkins] r58380 - in python/trunk: Doc/library/collections.rst Lib/collections.py Lib/test/test_collections.py Misc/NEWS Message-ID: <20071008212658.C046C1E400B@bag.python.org> Author: raymond.hettinger Date: Mon Oct 8 23:26:58 2007 New Revision: 58380 Modified: python/trunk/Doc/library/collections.rst python/trunk/Lib/collections.py python/trunk/Lib/test/test_collections.py python/trunk/Misc/NEWS Log: Eliminate camelcase function name Modified: python/trunk/Doc/library/collections.rst ============================================================================== --- python/trunk/Doc/library/collections.rst (original) +++ python/trunk/Doc/library/collections.rst Mon Oct 8 23:26:58 2007 @@ -12,7 +12,7 @@ This module implements high-performance container datatypes. Currently, there are two datatypes, :class:`deque` and :class:`defaultdict`, and -one datatype factory function, :func:`NamedTuple`. Python already +one datatype factory function, :func:`named_tuple`. Python already includes built-in containers, :class:`dict`, :class:`list`, :class:`set`, and :class:`tuple`. In addition, the optional :mod:`bsddb` module has a :meth:`bsddb.btopen` method that can be used to create in-memory @@ -25,7 +25,7 @@ Added :class:`defaultdict`. .. versionchanged:: 2.6 - Added :class:`NamedTuple`. + Added :func:`named_tuple`. .. _deque-objects: @@ -348,14 +348,14 @@ .. _named-tuple-factory: -:func:`NamedTuple` Factory Function for Tuples with Named Fields ----------------------------------------------------------------- +:func:`named_tuple` Factory Function for Tuples with Named Fields +----------------------------------------------------------------- Named tuples assign meaning to each position in a tuple and allow for more readable, self-documenting code. They can be used wherever regular tuples are used, and they add the ability to access fields by name instead of position index. -.. function:: NamedTuple(typename, fieldnames, [verbose]) +.. function:: named_tuple(typename, fieldnames, [verbose]) Returns a new tuple subclass named *typename*. The new subclass is used to create tuple-like objects that have fields accessable by attribute lookup as @@ -363,22 +363,22 @@ helpful docstring (with typename and fieldnames) and a helpful :meth:`__repr__` method which lists the tuple contents in a ``name=value`` format. - The *fieldnames* are a single string with each fieldname separated by a space - and/or comma (for example "x y" or "x, y"). Alternately, the *fieldnames* - can be specified as list or tuple of strings. Any valid Python identifier - may be used for a fieldname except for names starting and ending with double - underscores. + The *fieldnames* are a single string with each fieldname separated by whitespace + and/or commas (for example 'x y' or 'x, y'). Alternatively, the *fieldnames* + can be specified as a list of strings (such as ['x', 'y']). Any valid + Python identifier may be used for a fieldname except for names starting and + ending with double underscores. If *verbose* is true, will print the class definition. - *NamedTuple* instances do not have per-instance dictionaries, so they are + Named tuple instances do not have per-instance dictionaries, so they are lightweight and require no more memory than regular tuples. .. versionadded:: 2.6 Example:: - >>> Point = NamedTuple('Point', 'x y', verbose=True) + >>> Point = named_tuple('Point', 'x y', verbose=True) class Point(tuple): 'Point(x, y)' __slots__ = () @@ -410,27 +410,35 @@ Named tuples are especially useful for assigning field names to result tuples returned by the :mod:`csv` or :mod:`sqlite3` modules:: + EmployeeRecord = named_tuple('EmployeeRecord', 'name, age, title, department, paygrade') + from itertools import starmap import csv - EmployeeRecord = NamedTuple('EmployeeRecord', 'name age title department paygrade') for emp in starmap(EmployeeRecord, csv.reader(open("employees.csv", "rb"))): print emp.name, emp.title -When casting a single record to a *NamedTuple*, use the star-operator [#]_ to unpack + import sqlite3 + conn = sqlite3.connect('/companydata') + cursor = conn.cursor() + cursor.execute('SELECT name, age, title, department, paygrade FROM employees') + for emp in starmap(EmployeeRecord, cursor.fetchall()): + print emp.name, emp.title + +When casting a single record to a named tuple, use the star-operator [#]_ to unpack the values:: >>> t = [11, 22] >>> Point(*t) # the star-operator unpacks any iterable object Point(x=11, y=22) -When casting a dictionary to a *NamedTuple*, use the double-star-operator:: +When casting a dictionary to a named tuple, use the double-star-operator:: >>> d = {'x': 11, 'y': 22} >>> Point(**d) Point(x=11, y=22) In addition to the methods inherited from tuples, named tuples support -additonal methods and a read-only attribute. +two additonal methods and a read-only attribute. .. method:: somenamedtuple.__asdict__() @@ -464,8 +472,8 @@ >>> p.__fields__ # view the field names ('x', 'y') - >>> Color = NamedTuple('Color', 'red green blue') - >>> Pixel = NamedTuple('Pixel', Point.__fields__ + Color.__fields__) + >>> Color = named_tuple('Color', 'red green blue') + >>> Pixel = named_tuple('Pixel', Point.__fields__ + Color.__fields__) >>> Pixel(11, 22, 128, 255, 0) Pixel(x=11, y=22, red=128, green=255, blue=0)' Modified: python/trunk/Lib/collections.py ============================================================================== --- python/trunk/Lib/collections.py (original) +++ python/trunk/Lib/collections.py Mon Oct 8 23:26:58 2007 @@ -1,13 +1,13 @@ -__all__ = ['deque', 'defaultdict', 'NamedTuple'] +__all__ = ['deque', 'defaultdict', 'named_tuple'] from _collections import deque, defaultdict from operator import itemgetter as _itemgetter import sys as _sys -def NamedTuple(typename, field_names, verbose=False): +def named_tuple(typename, field_names, verbose=False): """Returns a new subclass of tuple with named fields. - >>> Point = NamedTuple('Point', 'x y') + >>> Point = named_tuple('Point', 'x y') >>> Point.__doc__ # docstring for the new class 'Point(x, y)' >>> p = Point(11, y=22) # instantiate with positional args or keywords @@ -36,6 +36,10 @@ raise ValueError('Type names and field names can only contain alphanumeric characters and underscores') if any(name.startswith('__') and name.endswith('__') for name in field_names): raise ValueError('Field names cannot start and end with double underscores') + if any(name[:1].isdigit() for name in field_names): + raise ValueError('Field names cannot start with a number') + if len(field_names) != len(set(field_names)): + raise ValueError('Encountered duplicate field name') # Create and fill-in the class template argtxt = repr(field_names).replace("'", "")[1:-1] # tuple repr without parens or quotes @@ -83,10 +87,10 @@ if __name__ == '__main__': # verify that instances can be pickled from cPickle import loads, dumps - Point = NamedTuple('Point', 'x, y', True) + Point = named_tuple('Point', 'x, y', True) p = Point(x=10, y=20) assert p == loads(dumps(p)) import doctest - TestResults = NamedTuple('TestResults', 'failed attempted') + TestResults = named_tuple('TestResults', 'failed attempted') print TestResults(*doctest.testmod()) Modified: python/trunk/Lib/test/test_collections.py ============================================================================== --- python/trunk/Lib/test/test_collections.py (original) +++ python/trunk/Lib/test/test_collections.py Mon Oct 8 23:26:58 2007 @@ -1,23 +1,25 @@ import unittest from test import test_support -from collections import NamedTuple +from collections import named_tuple class TestNamedTuple(unittest.TestCase): def test_factory(self): - Point = NamedTuple('Point', 'x y') + Point = named_tuple('Point', 'x y') self.assertEqual(Point.__name__, 'Point') self.assertEqual(Point.__doc__, 'Point(x, y)') self.assertEqual(Point.__slots__, ()) self.assertEqual(Point.__module__, __name__) self.assertEqual(Point.__getitem__, tuple.__getitem__) - self.assertRaises(ValueError, NamedTuple, 'abc%', 'def ghi') - self.assertRaises(ValueError, NamedTuple, 'abc', 'def g%hi') - self.assertRaises(ValueError, NamedTuple, 'abc', '__def__ ghi') - NamedTuple('Point0', 'x1 y2') # Verify that numbers are allowed in names + self.assertRaises(ValueError, named_tuple, 'abc%', 'def ghi') + self.assertRaises(ValueError, named_tuple, 'abc', 'def g%hi') + self.assertRaises(ValueError, named_tuple, 'abc', '__def__ ghi') + self.assertRaises(ValueError, named_tuple, 'abc', 'def def ghi') + self.assertRaises(ValueError, named_tuple, 'abc', '8def 9ghi') + named_tuple('Point0', 'x1 y2') # Verify that numbers are allowed in names def test_instance(self): - Point = NamedTuple('Point', 'x y') + Point = named_tuple('Point', 'x y') p = Point(11, 22) self.assertEqual(p, Point(x=11, y=22)) self.assertEqual(p, Point(11, y=22)) @@ -36,17 +38,17 @@ self.assertEqual(p.__asdict__(), dict(x=11, y=22)) # test __dict__ method # verify that field string can have commas - Point = NamedTuple('Point', 'x, y') + Point = named_tuple('Point', 'x, y') p = Point(x=11, y=22) self.assertEqual(repr(p), 'Point(x=11, y=22)') # verify that fieldspec can be a non-string sequence - Point = NamedTuple('Point', ('x', 'y')) + Point = named_tuple('Point', ('x', 'y')) p = Point(x=11, y=22) self.assertEqual(repr(p), 'Point(x=11, y=22)') def test_tupleness(self): - Point = NamedTuple('Point', 'x y') + Point = named_tuple('Point', 'x y') p = Point(11, 22) self.assert_(isinstance(p, tuple)) @@ -66,9 +68,9 @@ def test_odd_sizes(self): - Zero = NamedTuple('Zero', '') + Zero = named_tuple('Zero', '') self.assertEqual(Zero(), ()) - Dot = NamedTuple('Dot', 'd') + Dot = named_tuple('Dot', 'd') self.assertEqual(Dot(1), (1,)) def test_main(verbose=None): Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Mon Oct 8 23:26:58 2007 @@ -544,7 +544,7 @@ - Added heapq.merge() for merging sorted input streams. -- Added collections.NamedTuple() for assigning field names to tuples. +- Added collections.named_tuple() for assigning field names to tuples. - Added itertools.izip_longest(). From nnorwitz at gmail.com Mon Oct 8 23:50:59 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Mon, 8 Oct 2007 17:50:59 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20071008215059.GA18666@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-34: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on test test_asynchat failed -- errors occurred; run in verbose mode for details test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_cn skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_hk test_codecmaps_hk skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_jp test_codecmaps_jp skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_kr test_codecmaps_kr skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_tw test_codecmaps_tw skipped -- Use of the `urlfetch' resource not enabled test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [9105 refs] test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_normalization skipped -- Use of the `urlfetch' resource not enabled test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7362 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 296 tests OK. 1 test failed: test_asynchat 35 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses test_gl test_imageop test_imgfile test_ioctl test_linuxaudiodev test_macostools test_normalization test_ossaudiodev test_pep277 test_plistlib test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [506356 refs] From brett at python.org Tue Oct 9 01:21:42 2007 From: brett at python.org (Brett Cannon) Date: Mon, 8 Oct 2007 16:21:42 -0700 Subject: [Python-checkins] Python Regression Test Failures opt (1) In-Reply-To: <20071008215059.GA18666@python.psfb.org> References: <20071008215059.GA18666@python.psfb.org> Message-ID: On 10/8/07, Neal Norwitz wrote: [SNIP] > test_asynchat > WARNING: failed to listen on port 54322, trying another > WARNING: failed to listen on port 9907, trying another > WARNING: failed to listen on port 10243, trying another > WARNING: failed to listen on port 32999, trying another > Exception in thread Thread-34: > Traceback (most recent call last): > File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner > self.run() > File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run > PORT = test_support.bind_port(sock, HOST, PORT) > File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port > raise TestFailed('unable to find port to listen on') > TestFailed: unable to find port to listen on Shouldn't the test be skipped instead of considered a failure? It isn't asynchat's fault that the test code can't find an open port. -Brett From python-checkins at python.org Tue Oct 9 01:23:04 2007 From: python-checkins at python.org (andrew.kuchling) Date: Tue, 9 Oct 2007 01:23:04 +0200 (CEST) Subject: [Python-checkins] r58381 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20071008232304.0B2B91E4008@bag.python.org> Author: andrew.kuchling Date: Tue Oct 9 01:23:03 2007 New Revision: 58381 Modified: python/trunk/Doc/whatsnew/2.6.rst Log: Eliminate camelcase function name Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Tue Oct 9 01:23:03 2007 @@ -515,11 +515,11 @@ by module name. Consult the :file:`Misc/NEWS` file in the source tree for a more complete list of changes, or look through the CVS logs for all the details. -* A new data type in the :mod:`collections` module: :class:`NamedTuple(typename, +* A new data type in the :mod:`collections` module: :class:`named_tuple(typename, fieldnames)` is a factory function that creates subclasses of the standard tuple whose fields are accessible by name as well as index. For example:: - >>> var_type = collections.NamedTuple('variable', + >>> var_type = collections.named_tuple('variable', ... 'id name type size') # Names are separated by spaces or commas. # 'id, name, type, size' would also work. From nnorwitz at gmail.com Tue Oct 9 01:31:02 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Mon, 8 Oct 2007 16:31:02 -0700 Subject: [Python-checkins] Python Regression Test Failures opt (1) In-Reply-To: References: <20071008215059.GA18666@python.psfb.org> Message-ID: On 10/8/07, Brett Cannon wrote: > On 10/8/07, Neal Norwitz wrote: > > [SNIP] > > test_asynchat > > WARNING: failed to listen on port 54322, trying another > > WARNING: failed to listen on port 9907, trying another > > WARNING: failed to listen on port 10243, trying another > > WARNING: failed to listen on port 32999, trying another > > Exception in thread Thread-34: > > Traceback (most recent call last): > > File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner > > self.run() > > File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run > > PORT = test_support.bind_port(sock, HOST, PORT) > > File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port > > raise TestFailed('unable to find port to listen on') > > TestFailed: unable to find port to listen on > > Shouldn't the test be skipped instead of considered a failure? It > isn't asynchat's fault that the test code can't find an open port. It may not be asynchat's fault (haven't looked), but there is another test (or asynchat) that isn't cleaning up after itself. I have a fix for this, I just need to check it in. Probably not tonight. Maybe tomorrow. It's general, so will fix any test that uses the bind from test_support. n From python-checkins at python.org Tue Oct 9 03:36:28 2007 From: python-checkins at python.org (raymond.hettinger) Date: Tue, 9 Oct 2007 03:36:28 +0200 (CEST) Subject: [Python-checkins] r58382 - python/trunk/Lib/collections.py Message-ID: <20071009013628.EFCFF1E4008@bag.python.org> Author: raymond.hettinger Date: Tue Oct 9 03:36:23 2007 New Revision: 58382 Modified: python/trunk/Lib/collections.py Log: Make the error messages more specific Modified: python/trunk/Lib/collections.py ============================================================================== --- python/trunk/Lib/collections.py (original) +++ python/trunk/Lib/collections.py Tue Oct 9 03:36:23 2007 @@ -34,12 +34,15 @@ field_names = tuple(field_names) if not ''.join((typename,) + field_names).replace('_', '').isalnum(): raise ValueError('Type names and field names can only contain alphanumeric characters and underscores') - if any(name.startswith('__') and name.endswith('__') for name in field_names): - raise ValueError('Field names cannot start and end with double underscores') - if any(name[:1].isdigit() for name in field_names): - raise ValueError('Field names cannot start with a number') - if len(field_names) != len(set(field_names)): - raise ValueError('Encountered duplicate field name') + seen_names = set() + for name in field_names: + if name.startswith('__') and name.endswith('__'): + raise ValueError('Field names cannot start and end with double underscores: %s' % name) + if name[:1].isdigit(): + raise ValueError('Field names cannot start with a number: %s' % name) + if name in seen_names: + raise ValueError('Encountered duplicate field name: %s' % name) + seen_names.add(name) # Create and fill-in the class template argtxt = repr(field_names).replace("'", "")[1:-1] # tuple repr without parens or quotes From buildbot at python.org Tue Oct 9 04:44:28 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 02:44:28 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI trunk Message-ID: <20071009024428.433121E4008@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%20trunk/builds/16 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 321, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 321, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 321, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 321, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 321, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 321, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 321, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/trunk.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 321, in http_server except socket.timeout: NameError: global name 'socket' is not defined sincerely, -The Buildbot From buildbot at python.org Tue Oct 9 05:15:02 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 03:15:02 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux trunk Message-ID: <20071009031502.B320B1E4008@bag.python.org> The Buildbot has detected a new failure of ARM Linux trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20trunk/builds/17 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-arm Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea-arm/trunk.klose-linux-arm/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea-arm/trunk.klose-linux-arm/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-arm/trunk.klose-linux-arm/build/Lib/test/test_socket_ssl.py", line 84, in listener s.accept() File "/home/pybot/buildarea-arm/trunk.klose-linux-arm/build/Lib/socket.py", line 187, in accept sock, addr = self._sock.accept() error: [Errno 4] Interrupted system call make: *** [buildbottest] Aborted sincerely, -The Buildbot From brett at python.org Tue Oct 9 07:57:40 2007 From: brett at python.org (Brett Cannon) Date: Mon, 8 Oct 2007 22:57:40 -0700 Subject: [Python-checkins] Python Regression Test Failures opt (1) In-Reply-To: References: <20071008215059.GA18666@python.psfb.org> Message-ID: On 10/8/07, Neal Norwitz wrote: > On 10/8/07, Brett Cannon wrote: > > On 10/8/07, Neal Norwitz wrote: > > > > [SNIP] > > > test_asynchat > > > WARNING: failed to listen on port 54322, trying another > > > WARNING: failed to listen on port 9907, trying another > > > WARNING: failed to listen on port 10243, trying another > > > WARNING: failed to listen on port 32999, trying another > > > Exception in thread Thread-34: > > > Traceback (most recent call last): > > > File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner > > > self.run() > > > File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run > > > PORT = test_support.bind_port(sock, HOST, PORT) > > > File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port > > > raise TestFailed('unable to find port to listen on') > > > TestFailed: unable to find port to listen on > > > > Shouldn't the test be skipped instead of considered a failure? It > > isn't asynchat's fault that the test code can't find an open port. > > It may not be asynchat's fault (haven't looked), but there is another > test (or asynchat) that isn't cleaning up after itself. I have a fix > for this, I just need to check it in. Probably not tonight. Maybe > tomorrow. It's general, so will fix any test that uses the bind from > test_support. Didn't even know about that function in test_support. Looks like every use would need a guaranteed closure on that socket. Sounds like a good use of a context manager to me (but then again I am a big proponent of context managers instead of setUp/tearDown when possible). But since you already have a solution I am not going to worry about writing a context manager right now. =) -Brett From python-checkins at python.org Tue Oct 9 08:02:22 2007 From: python-checkins at python.org (gregory.p.smith) Date: Tue, 9 Oct 2007 08:02:22 +0200 (CEST) Subject: [Python-checkins] r58384 - in python/trunk: Modules/_bsddb.c Modules/bsddb.h setup.py Message-ID: <20071009060222.1A8401E4009@bag.python.org> Author: gregory.p.smith Date: Tue Oct 9 08:02:21 2007 New Revision: 58384 Added: python/trunk/Modules/bsddb.h Modified: python/trunk/Modules/_bsddb.c python/trunk/setup.py Log: Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API object available as bsddb.db.api. This is based on the patch submitted by Duncan Grisby here: http://sourceforge.net/tracker/index.php?func=detail&aid=1551895&group_id=13900&atid=313900 See this thread for additional info: http://sourceforge.net/mailarchive/forum.php?thread_name=E1GAVDK-0002rk-Iw%40apasphere.com&forum_name=pybsddb-users It also cleans up the code a little by removing some ifdef/endifs for python prior to 2.1 and for unsupported Berkeley DB <= 3.2. Modified: python/trunk/Modules/_bsddb.c ============================================================================== --- python/trunk/Modules/_bsddb.c (original) +++ python/trunk/Modules/_bsddb.c Tue Oct 9 08:02:21 2007 @@ -87,20 +87,15 @@ #include /* for offsetof() */ #include -#include -/* --------------------------------------------------------------------- */ -/* Various macro definitions */ +#define COMPILING_BSDDB_C +#include "bsddb.h" +#undef COMPILING_BSDDB_C -/* 40 = 4.0, 33 = 3.3; this will break if the second number is > 9 */ -#define DBVER (DB_VERSION_MAJOR * 10 + DB_VERSION_MINOR) -#if DB_VERSION_MINOR > 9 -#error "eek! DBVER can't handle minor versions > 9" -#endif - -#define PY_BSDDB_VERSION "4.5.0" static char *rcs_id = "$Id$"; +/* --------------------------------------------------------------------- */ +/* Various macro definitions */ #if (PY_VERSION_HEX < 0x02050000) typedef int Py_ssize_t; @@ -196,107 +191,15 @@ /* --------------------------------------------------------------------- */ /* Structure definitions */ -#if PYTHON_API_VERSION >= 1010 /* python >= 2.1 support weak references */ -#define HAVE_WEAKREF -#else -#undef HAVE_WEAKREF -#endif - -/* if Python >= 2.1 better support warnings */ -#if PYTHON_API_VERSION >= 1010 -#define HAVE_WARNINGS -#else -#undef HAVE_WARNINGS +#if PYTHON_API_VERSION < 1010 +#error "Python 2.1 or later required" #endif -#if PYTHON_API_VERSION <= 1007 - /* 1.5 compatibility */ -#define PyObject_New PyObject_NEW -#define PyObject_Del PyMem_DEL -#endif - -struct behaviourFlags { - /* What is the default behaviour when DB->get or DBCursor->get returns a - DB_NOTFOUND || DB_KEYEMPTY error? Return None or raise an exception? */ - unsigned int getReturnsNone : 1; - /* What is the default behaviour for DBCursor.set* methods when DBCursor->get - * returns a DB_NOTFOUND || DB_KEYEMPTY error? Return None or raise? */ - unsigned int cursorSetReturnsNone : 1; -}; +/* Defaults for moduleFlags in DBEnvObject and DBObject. */ #define DEFAULT_GET_RETURNS_NONE 1 #define DEFAULT_CURSOR_SET_RETURNS_NONE 1 /* 0 in pybsddb < 4.2, python < 2.4 */ -typedef struct { - PyObject_HEAD - DB_ENV* db_env; - u_int32_t flags; /* saved flags from open() */ - int closed; - struct behaviourFlags moduleFlags; -#ifdef HAVE_WEAKREF - PyObject *in_weakreflist; /* List of weak references */ -#endif -} DBEnvObject; - - -typedef struct { - PyObject_HEAD - DB* db; - DBEnvObject* myenvobj; /* PyObject containing the DB_ENV */ - u_int32_t flags; /* saved flags from open() */ - u_int32_t setflags; /* saved flags from set_flags() */ - int haveStat; - struct behaviourFlags moduleFlags; -#if (DBVER >= 33) - PyObject* associateCallback; - PyObject* btCompareCallback; - int primaryDBType; -#endif -#ifdef HAVE_WEAKREF - PyObject *in_weakreflist; /* List of weak references */ -#endif -} DBObject; - - -typedef struct { - PyObject_HEAD - DBC* dbc; - DBObject* mydb; -#ifdef HAVE_WEAKREF - PyObject *in_weakreflist; /* List of weak references */ -#endif -} DBCursorObject; - - -typedef struct { - PyObject_HEAD - DB_TXN* txn; - PyObject *env; -#ifdef HAVE_WEAKREF - PyObject *in_weakreflist; /* List of weak references */ -#endif -} DBTxnObject; - - -typedef struct { - PyObject_HEAD - DB_LOCK lock; -#ifdef HAVE_WEAKREF - PyObject *in_weakreflist; /* List of weak references */ -#endif -} DBLockObject; - -#if (DBVER >= 43) -typedef struct { - PyObject_HEAD - DB_SEQUENCE* sequence; - DBObject* mydb; -#ifdef HAVE_WEAKREF - PyObject *in_weakreflist; /* List of weak references */ -#endif -} DBSequenceObject; -staticforward PyTypeObject DBSequence_Type; -#endif staticforward PyTypeObject DB_Type, DBCursor_Type, DBEnv_Type, DBTxn_Type, DBLock_Type; @@ -545,12 +448,7 @@ strncat(errTxt, _db_errmsg, bytes_left); } _db_errmsg[0] = 0; -#ifdef HAVE_WARNINGS exceptionRaised = PyErr_Warn(PyExc_RuntimeWarning, errTxt); -#else - fprintf(stderr, errTxt); - fprintf(stderr, "\n"); -#endif #else /* do an exception instead */ errObj = DBIncompleteError; @@ -804,9 +702,7 @@ self->btCompareCallback = NULL; self->primaryDBType = 0; #endif -#ifdef HAVE_WEAKREF self->in_weakreflist = NULL; -#endif /* keep a reference to our python DBEnv object */ if (arg) { @@ -857,19 +753,15 @@ MYDB_BEGIN_ALLOW_THREADS; self->db->close(self->db, 0); MYDB_END_ALLOW_THREADS; -#ifdef HAVE_WARNINGS } else { PyErr_Warn(PyExc_RuntimeWarning, "DB could not be closed in destructor: DBEnv already closed"); -#endif } self->db = NULL; } -#ifdef HAVE_WEAKREF if (self->in_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *) self); } -#endif if (self->myenvobj) { Py_DECREF(self->myenvobj); self->myenvobj = NULL; @@ -897,9 +789,7 @@ self->dbc = dbc; self->mydb = db; -#ifdef HAVE_WEAKREF self->in_weakreflist = NULL; -#endif Py_INCREF(self->mydb); return self; } @@ -910,11 +800,9 @@ { int err; -#ifdef HAVE_WEAKREF if (self->in_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *) self); } -#endif if (self->dbc != NULL) { MYDB_BEGIN_ALLOW_THREADS; @@ -947,9 +835,7 @@ self->flags = flags; self->moduleFlags.getReturnsNone = DEFAULT_GET_RETURNS_NONE; self->moduleFlags.cursorSetReturnsNone = DEFAULT_CURSOR_SET_RETURNS_NONE; -#ifdef HAVE_WEAKREF self->in_weakreflist = NULL; -#endif MYDB_BEGIN_ALLOW_THREADS; err = db_env_create(&self->db_env, flags); @@ -968,11 +854,9 @@ static void DBEnv_dealloc(DBEnvObject* self) { -#ifdef HAVE_WEAKREF if (self->in_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *) self); } -#endif if (self->db_env && !self->closed) { MYDB_BEGIN_ALLOW_THREADS; @@ -992,9 +876,7 @@ return NULL; Py_INCREF(myenv); self->env = (PyObject*)myenv; -#ifdef HAVE_WEAKREF self->in_weakreflist = NULL; -#endif MYDB_BEGIN_ALLOW_THREADS; #if (DBVER >= 40) @@ -1015,13 +897,10 @@ static void DBTxn_dealloc(DBTxnObject* self) { -#ifdef HAVE_WEAKREF if (self->in_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *) self); } -#endif -#ifdef HAVE_WARNINGS if (self->txn) { /* it hasn't been finalized, abort it! */ MYDB_BEGIN_ALLOW_THREADS; @@ -1034,7 +913,6 @@ PyErr_Warn(PyExc_RuntimeWarning, "DBTxn aborted in destructor. No prior commit() or abort()."); } -#endif Py_DECREF(self->env); PyObject_Del(self); @@ -1049,9 +927,7 @@ DBLockObject* self = PyObject_New(DBLockObject, &DBLock_Type); if (self == NULL) return NULL; -#ifdef HAVE_WEAKREF self->in_weakreflist = NULL; -#endif MYDB_BEGIN_ALLOW_THREADS; #if (DBVER >= 40) @@ -1073,11 +949,9 @@ static void DBLock_dealloc(DBLockObject* self) { -#ifdef HAVE_WEAKREF if (self->in_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *) self); } -#endif /* TODO: is this lock held? should we release it? */ PyObject_Del(self); @@ -1094,9 +968,7 @@ return NULL; Py_INCREF(mydb); self->mydb = mydb; -#ifdef HAVE_WEAKREF self->in_weakreflist = NULL; -#endif MYDB_BEGIN_ALLOW_THREADS; @@ -1115,11 +987,9 @@ static void DBSequence_dealloc(DBSequenceObject* self) { -#ifdef HAVE_WEAKREF if (self->in_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *) self); } -#endif Py_DECREF(self->mydb); PyObject_Del(self); @@ -1201,13 +1071,7 @@ Py_ssize_t size; CLEAR_DBT(*secKey); -#if PYTHON_API_VERSION <= 1007 - /* 1.5 compatibility */ - size = PyString_Size(result); - data = PyString_AsString(result); -#else PyString_AsStringAndSize(result, &data, &size); -#endif secKey->flags = DB_DBT_APPMALLOC; /* DB will free */ secKey->data = malloc(size); /* TODO, check this */ if (secKey->data) { @@ -1346,7 +1210,6 @@ } -#if (DBVER >= 32) static PyObject* _DB_consume(DBObject* self, PyObject* args, PyObject* kwargs, int consume_flag) { @@ -1414,8 +1277,6 @@ { return _DB_consume(self, args, kwargs, DB_CONSUME_WAIT); } -#endif - static PyObject* @@ -2423,7 +2284,6 @@ } -#if (DBVER >= 32) static PyObject* DB_set_q_extentsize(DBObject* self, PyObject* args) { @@ -2440,7 +2300,6 @@ RETURN_IF_ERR(); RETURN_NONE(); } -#endif static PyObject* DB_stat(DBObject* self, PyObject* args, PyObject* kwargs) @@ -4025,7 +3884,6 @@ } -#if (DBVER >= 32) static PyObject* DBEnv_set_flags(DBEnvObject* self, PyObject* args) { @@ -4042,7 +3900,6 @@ RETURN_IF_ERR(); RETURN_NONE(); } -#endif static PyObject* @@ -4169,7 +4026,6 @@ #endif -#if (DBVER >= 32) static PyObject* DBEnv_set_lk_max_locks(DBEnvObject* self, PyObject* args) @@ -4221,8 +4077,6 @@ RETURN_NONE(); } -#endif - static PyObject* DBEnv_set_mp_mmapsize(DBEnvObject* self, PyObject* args) @@ -4543,19 +4397,15 @@ MAKE_ENTRY(lastid); #endif MAKE_ENTRY(nmodes); -#if (DBVER >= 32) MAKE_ENTRY(maxlocks); MAKE_ENTRY(maxlockers); MAKE_ENTRY(maxobjects); MAKE_ENTRY(nlocks); MAKE_ENTRY(maxnlocks); -#endif MAKE_ENTRY(nlockers); MAKE_ENTRY(maxnlockers); -#if (DBVER >= 32) MAKE_ENTRY(nobjects); MAKE_ENTRY(maxnobjects); -#endif MAKE_ENTRY(nrequests); MAKE_ENTRY(nreleases); #if (DBVER < 44) @@ -5143,10 +4993,8 @@ {"associate", (PyCFunction)DB_associate, METH_VARARGS|METH_KEYWORDS}, #endif {"close", (PyCFunction)DB_close, METH_VARARGS}, -#if (DBVER >= 32) {"consume", (PyCFunction)DB_consume, METH_VARARGS|METH_KEYWORDS}, {"consume_wait", (PyCFunction)DB_consume_wait, METH_VARARGS|METH_KEYWORDS}, -#endif {"cursor", (PyCFunction)DB_cursor, METH_VARARGS|METH_KEYWORDS}, {"delete", (PyCFunction)DB_delete, METH_VARARGS|METH_KEYWORDS}, {"fd", (PyCFunction)DB_fd, METH_VARARGS}, @@ -5184,9 +5032,7 @@ {"set_re_len", (PyCFunction)DB_set_re_len, METH_VARARGS}, {"set_re_pad", (PyCFunction)DB_set_re_pad, METH_VARARGS}, {"set_re_source", (PyCFunction)DB_set_re_source, METH_VARARGS}, -#if (DBVER >= 32) {"set_q_extentsize",(PyCFunction)DB_set_q_extentsize,METH_VARARGS}, -#endif {"stat", (PyCFunction)DB_stat, METH_VARARGS|METH_KEYWORDS}, {"sync", (PyCFunction)DB_sync, METH_VARARGS}, #if (DBVER >= 33) @@ -5254,9 +5100,7 @@ {"set_shm_key", (PyCFunction)DBEnv_set_shm_key, METH_VARARGS}, {"set_cachesize", (PyCFunction)DBEnv_set_cachesize, METH_VARARGS}, {"set_data_dir", (PyCFunction)DBEnv_set_data_dir, METH_VARARGS}, -#if (DBVER >= 32) {"set_flags", (PyCFunction)DBEnv_set_flags, METH_VARARGS}, -#endif {"set_lg_bsize", (PyCFunction)DBEnv_set_lg_bsize, METH_VARARGS}, {"set_lg_dir", (PyCFunction)DBEnv_set_lg_dir, METH_VARARGS}, {"set_lg_max", (PyCFunction)DBEnv_set_lg_max, METH_VARARGS}, @@ -5267,11 +5111,9 @@ #if (DBVER < 45) {"set_lk_max", (PyCFunction)DBEnv_set_lk_max, METH_VARARGS}, #endif -#if (DBVER >= 32) {"set_lk_max_locks", (PyCFunction)DBEnv_set_lk_max_locks, METH_VARARGS}, {"set_lk_max_lockers", (PyCFunction)DBEnv_set_lk_max_lockers, METH_VARARGS}, {"set_lk_max_objects", (PyCFunction)DBEnv_set_lk_max_objects, METH_VARARGS}, -#endif {"set_mp_mmapsize", (PyCFunction)DBEnv_set_mp_mmapsize, METH_VARARGS}, {"set_tmp_dir", (PyCFunction)DBEnv_set_tmp_dir, METH_VARARGS}, {"txn_begin", (PyCFunction)DBEnv_txn_begin, METH_VARARGS|METH_KEYWORDS}, @@ -5391,7 +5233,6 @@ 0, /*tp_as_sequence*/ &DB_mapping,/*tp_as_mapping*/ 0, /*tp_hash*/ -#ifdef HAVE_WEAKREF 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ @@ -5403,7 +5244,6 @@ 0, /* tp_clear */ 0, /* tp_richcompare */ offsetof(DBObject, in_weakreflist), /* tp_weaklistoffset */ -#endif }; @@ -5424,7 +5264,6 @@ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ -#ifdef HAVE_WEAKREF 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ @@ -5436,7 +5275,6 @@ 0, /* tp_clear */ 0, /* tp_richcompare */ offsetof(DBCursorObject, in_weakreflist), /* tp_weaklistoffset */ -#endif }; @@ -5457,7 +5295,6 @@ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ -#ifdef HAVE_WEAKREF 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ @@ -5469,7 +5306,6 @@ 0, /* tp_clear */ 0, /* tp_richcompare */ offsetof(DBEnvObject, in_weakreflist), /* tp_weaklistoffset */ -#endif }; statichere PyTypeObject DBTxn_Type = { @@ -5489,7 +5325,6 @@ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ -#ifdef HAVE_WEAKREF 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ @@ -5501,7 +5336,6 @@ 0, /* tp_clear */ 0, /* tp_richcompare */ offsetof(DBTxnObject, in_weakreflist), /* tp_weaklistoffset */ -#endif }; @@ -5522,7 +5356,6 @@ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ -#ifdef HAVE_WEAKREF 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ @@ -5534,7 +5367,6 @@ 0, /* tp_clear */ 0, /* tp_richcompare */ offsetof(DBLockObject, in_weakreflist), /* tp_weaklistoffset */ -#endif }; #if (DBVER >= 43) @@ -5555,7 +5387,6 @@ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ -#ifdef HAVE_WEAKREF 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ @@ -5567,7 +5398,6 @@ 0, /* tp_clear */ 0, /* tp_richcompare */ offsetof(DBSequenceObject, in_weakreflist), /* tp_weaklistoffset */ -#endif }; #endif @@ -5649,6 +5479,9 @@ {NULL, NULL} /* sentinel */ }; +/* API structure */ +static BSDDB_api bsddb_api; + /* --------------------------------------------------------------------- */ /* Module initialization */ @@ -5669,6 +5502,7 @@ PyObject* pybsddb_version_s = PyString_FromString( PY_BSDDB_VERSION ); PyObject* db_version_s = PyString_FromString( DB_VERSION_STRING ); PyObject* cvsid_s = PyString_FromString( rcs_id ); + PyObject* py_api; /* Initialize the type of the new type objects here; doing it here is required for portability to Windows without requiring C++. */ @@ -5730,9 +5564,7 @@ ADD_INT(d, DB_INIT_LOG); ADD_INT(d, DB_INIT_MPOOL); ADD_INT(d, DB_INIT_TXN); -#if (DBVER >= 32) ADD_INT(d, DB_JOINENV); -#endif ADD_INT(d, DB_RECOVER); ADD_INT(d, DB_RECOVER_FATAL); @@ -5753,11 +5585,9 @@ ADD_INT(d, DB_RDWRMASTER); ADD_INT(d, DB_RDONLY); ADD_INT(d, DB_TRUNCATE); -#if (DBVER >= 32) ADD_INT(d, DB_EXTENT); ADD_INT(d, DB_CDB_ALLDB); ADD_INT(d, DB_VERIFY); -#endif ADD_INT(d, DB_UPGRADE); ADD_INT(d, DB_AGGRESSIVE); @@ -5801,9 +5631,7 @@ ADD_INT(d, DB_LOCK_READ); ADD_INT(d, DB_LOCK_WRITE); ADD_INT(d, DB_LOCK_NOWAIT); -#if (DBVER >= 32) ADD_INT(d, DB_LOCK_WAIT); -#endif ADD_INT(d, DB_LOCK_IWRITE); ADD_INT(d, DB_LOCK_IREAD); ADD_INT(d, DB_LOCK_IWR); @@ -5818,9 +5646,7 @@ ADD_INT(d, DB_LOCK_RECORD); ADD_INT(d, DB_LOCK_UPGRADE); -#if (DBVER >= 32) ADD_INT(d, DB_LOCK_SWITCH); -#endif #if (DBVER >= 33) ADD_INT(d, DB_LOCK_UPGRADE_WRITE); #endif @@ -5881,9 +5707,7 @@ ADD_INT(d, DB_COMMIT); #endif ADD_INT(d, DB_CONSUME); -#if (DBVER >= 32) ADD_INT(d, DB_CONSUME_WAIT); -#endif ADD_INT(d, DB_CURRENT); #if (DBVER >= 33) ADD_INT(d, DB_FAST_STAT); @@ -6061,6 +5885,19 @@ #undef MAKE_EX + /* Initiliase the C API structure and add it to the module */ + bsddb_api.db_type = &DB_Type; + bsddb_api.dbcursor_type = &DBCursor_Type; + bsddb_api.dbenv_type = &DBEnv_Type; + bsddb_api.dbtxn_type = &DBTxn_Type; + bsddb_api.dblock_type = &DBLock_Type; + bsddb_api.dbsequence_type = &DBSequence_Type; + bsddb_api.makeDBError = makeDBError; + + py_api = PyCObject_FromVoidPtr((void*)&bsddb_api, NULL); + PyDict_SetItemString(d, "api", py_api); + Py_DECREF(py_api); + /* Check for errors */ if (PyErr_Occurred()) { PyErr_Print(); Added: python/trunk/Modules/bsddb.h ============================================================================== --- (empty file) +++ python/trunk/Modules/bsddb.h Tue Oct 9 08:02:21 2007 @@ -0,0 +1,238 @@ +/*---------------------------------------------------------------------- + Copyright (c) 1999-2001, Digital Creations, Fredericksburg, VA, USA + and Andrew Kuchling. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + o Redistributions of source code must retain the above copyright + notice, this list of conditions, and the disclaimer that follows. + + o Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + o Neither the name of Digital Creations nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS AND CONTRIBUTORS *AS + IS* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL + CREATIONS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. +------------------------------------------------------------------------*/ + + +/* + * Handwritten code to wrap version 3.x of the Berkeley DB library, + * written to replace a SWIG-generated file. It has since been updated + * to compile with BerkeleyDB versions 3.2 through 4.2. + * + * This module was started by Andrew Kuchling to remove the dependency + * on SWIG in a package by Gregory P. Smith who based his work on a + * similar package by Robin Dunn which wrapped + * Berkeley DB 2.7.x. + * + * Development of this module then returned full circle back to Robin Dunn + * who worked on behalf of Digital Creations to complete the wrapping of + * the DB 3.x API and to build a solid unit test suite. Robin has + * since gone onto other projects (wxPython). + * + * Gregory P. Smith is once again the maintainer. + * + * Use the pybsddb-users at lists.sf.net mailing list for all questions. + * Things can change faster than the header of this file is updated. This + * file is shared with the PyBSDDB project at SourceForge: + * + * http://pybsddb.sf.net + * + * This file should remain backward compatible with Python 2.1, but see PEP + * 291 for the most current backward compatibility requirements: + * + * http://www.python.org/peps/pep-0291.html + * + * This module contains 6 types: + * + * DB (Database) + * DBCursor (Database Cursor) + * DBEnv (database environment) + * DBTxn (An explicit database transaction) + * DBLock (A lock handle) + * DBSequence (Sequence) + * + */ + +/* --------------------------------------------------------------------- */ + +/* + * Portions of this module, associated unit tests and build scripts are the + * result of a contract with The Written Word (http://thewrittenword.com/) + * Many thanks go out to them for causing me to raise the bar on quality and + * functionality, resulting in a better bsddb3 package for all of us to use. + * + * --Robin + */ + +/* --------------------------------------------------------------------- */ + +/* + * Work to split it up into a separate header and to add a C API was + * contributed by Duncan Grisby . See here: + * http://sourceforge.net/tracker/index.php?func=detail&aid=1551895&group_id=13900&atid=313900 + */ + +/* --------------------------------------------------------------------- */ + +#ifndef _BSDDB_H_ +#define _BSDDB_H_ + +#include + + +/* 40 = 4.0, 33 = 3.3; this will break if the minor revision is > 9 */ +#define DBVER (DB_VERSION_MAJOR * 10 + DB_VERSION_MINOR) +#if DB_VERSION_MINOR > 9 +#error "eek! DBVER can't handle minor versions > 9" +#endif + +#define PY_BSDDB_VERSION "4.6.0" + +/* Python object definitions */ + +struct behaviourFlags { + /* What is the default behaviour when DB->get or DBCursor->get returns a + DB_NOTFOUND || DB_KEYEMPTY error? Return None or raise an exception? */ + unsigned int getReturnsNone : 1; + /* What is the default behaviour for DBCursor.set* methods when DBCursor->get + * returns a DB_NOTFOUND || DB_KEYEMPTY error? Return None or raise? */ + unsigned int cursorSetReturnsNone : 1; +}; + + +typedef struct { + PyObject_HEAD + DB_ENV* db_env; + u_int32_t flags; /* saved flags from open() */ + int closed; + struct behaviourFlags moduleFlags; + PyObject *in_weakreflist; /* List of weak references */ +} DBEnvObject; + + +typedef struct { + PyObject_HEAD + DB* db; + DBEnvObject* myenvobj; /* PyObject containing the DB_ENV */ + u_int32_t flags; /* saved flags from open() */ + u_int32_t setflags; /* saved flags from set_flags() */ + int haveStat; + struct behaviourFlags moduleFlags; +#if (DBVER >= 33) + PyObject* associateCallback; + PyObject* btCompareCallback; + int primaryDBType; +#endif + PyObject *in_weakreflist; /* List of weak references */ +} DBObject; + + +typedef struct { + PyObject_HEAD + DBC* dbc; + DBObject* mydb; + PyObject *in_weakreflist; /* List of weak references */ +} DBCursorObject; + + +typedef struct { + PyObject_HEAD + DB_TXN* txn; + PyObject *env; + PyObject *in_weakreflist; /* List of weak references */ +} DBTxnObject; + + +typedef struct { + PyObject_HEAD + DB_LOCK lock; + PyObject *in_weakreflist; /* List of weak references */ +} DBLockObject; + + +#if (DBVER >= 43) +typedef struct { + PyObject_HEAD + DB_SEQUENCE* sequence; + DBObject* mydb; + PyObject *in_weakreflist; /* List of weak references */ +} DBSequenceObject; +staticforward PyTypeObject DBSequence_Type; +#endif + + +/* API structure for use by C code */ + +/* To access the structure from an external module, use code like the + following (error checking missed out for clarity): + + BSDDB_api* bsddb_api; + PyObject* mod; + PyObject* cobj; + + mod = PyImport_ImportModule("bsddb._bsddb"); + // Use "bsddb3._pybsddb" if you're using the standalone pybsddb add-on. + cobj = PyObject_GetAttrString(mod, "api"); + api = (BSDDB_api*)PyCObject_AsVoidPtr(cobj); + Py_DECREF(cobj); + Py_DECREF(mod); + + The structure's members must not be changed. +*/ + +typedef struct { + /* Type objects */ + PyTypeObject* db_type; + PyTypeObject* dbcursor_type; + PyTypeObject* dbenv_type; + PyTypeObject* dbtxn_type; + PyTypeObject* dblock_type; +#if (DBVER >= 43) + PyTypeObject* dbsequence_type; +#endif + + /* Functions */ + int (*makeDBError)(int err); + +} BSDDB_api; + + +#ifndef COMPILING_BSDDB_C + +/* If not inside _bsddb.c, define type check macros that use the api + structure. The calling code must have a value named bsddb_api + pointing to the api structure. +*/ + +#define DBObject_Check(v) ((v)->ob_type == bsddb_api->db_type) +#define DBCursorObject_Check(v) ((v)->ob_type == bsddb_api->dbcursor_type) +#define DBEnvObject_Check(v) ((v)->ob_type == bsddb_api->dbenv_type) +#define DBTxnObject_Check(v) ((v)->ob_type == bsddb_api->dbtxn_type) +#define DBLockObject_Check(v) ((v)->ob_type == bsddb_api->dblock_type) +#if (DBVER >= 43) +#define DBSequenceObject_Check(v) ((v)->ob_type == bsddb_api->dbsequence_type) +#endif + +#endif // COMPILING_BSDDB_C + + +#endif // _BSDDB_H_ Modified: python/trunk/setup.py ============================================================================== --- python/trunk/setup.py (original) +++ python/trunk/setup.py Tue Oct 9 08:02:21 2007 @@ -801,6 +801,7 @@ # some unusual system configurations (e.g. the directory # is on an NFS server that goes away). exts.append(Extension('_bsddb', ['_bsddb.c'], + depends = ['bsddb.h'], library_dirs=dblib_dir, runtime_library_dirs=dblib_dir, include_dirs=db_incs, From buildbot at python.org Tue Oct 9 08:12:02 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 06:12:02 +0000 Subject: [Python-checkins] buildbot failure in MIPS Debian trunk Message-ID: <20071009061203.14F101E4014@bag.python.org> The Buildbot has detected a new failure of MIPS Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/MIPS%20Debian%20trunk/builds/67 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-mips Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 4 tests failed: test_codecmaps_cn test_codecmaps_hk test_codecmaps_kr test_urllib2net Traceback (most recent call last): File "./Lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_codecmaps_cn.py", line 30, in test_main test_support.run_unittest(__name__) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_support.py", line 550, in run_unittest suite.addTest(unittest.findTestCases(sys.modules[cls])) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/unittest.py", line 639, in findTestCases return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromModule(module) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/unittest.py", line 549, in loadTestsFromModule tests.append(self.loadTestsFromTestCase(obj)) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/unittest.py", line 540, in loadTestsFromTestCase return self.suiteClass(map(testCaseClass, testCaseNames)) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_multibytecodec_support.py", line 269, in __init__ self.open_mapping_file() # test it to report the error early File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_multibytecodec_support.py", line 272, in open_mapping_file return test_support.open_urlresource(self.mapfileurl) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_support.py", line 271, in open_urlresource fn, _ = urllib.urlretrieve(url, filename) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 89, in urlretrieve return _urlopener.retrieve(url, filename, reporthook, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 230, in retrieve fp = self.open(url, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 198, in open return getattr(self, name)(url) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 333, in open_http h.endheaders() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 849, in endheaders self._send_output() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 721, in _send_output self.send(msg) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 680, in send self.connect() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 664, in connect self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg IOError: [Errno socket error] [Errno 124] Address family not supported by protocol Traceback (most recent call last): File "./Lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_codecmaps_hk.py", line 17, in test_main test_support.run_unittest(__name__) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_support.py", line 550, in run_unittest suite.addTest(unittest.findTestCases(sys.modules[cls])) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/unittest.py", line 639, in findTestCases return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromModule(module) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/unittest.py", line 549, in loadTestsFromModule tests.append(self.loadTestsFromTestCase(obj)) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/unittest.py", line 540, in loadTestsFromTestCase return self.suiteClass(map(testCaseClass, testCaseNames)) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_multibytecodec_support.py", line 269, in __init__ self.open_mapping_file() # test it to report the error early File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_multibytecodec_support.py", line 272, in open_mapping_file return test_support.open_urlresource(self.mapfileurl) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_support.py", line 271, in open_urlresource fn, _ = urllib.urlretrieve(url, filename) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 89, in urlretrieve return _urlopener.retrieve(url, filename, reporthook, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 230, in retrieve fp = self.open(url, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 198, in open return getattr(self, name)(url) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 333, in open_http h.endheaders() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 849, in endheaders self._send_output() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 721, in _send_output self.send(msg) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 680, in send self.connect() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 664, in connect self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg IOError: [Errno socket error] [Errno 124] Address family not supported by protocol Traceback (most recent call last): File "./Lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_codecmaps_kr.py", line 41, in test_main test_support.run_unittest(__name__) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_support.py", line 550, in run_unittest suite.addTest(unittest.findTestCases(sys.modules[cls])) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/unittest.py", line 639, in findTestCases return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromModule(module) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/unittest.py", line 549, in loadTestsFromModule tests.append(self.loadTestsFromTestCase(obj)) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/unittest.py", line 540, in loadTestsFromTestCase return self.suiteClass(map(testCaseClass, testCaseNames)) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_multibytecodec_support.py", line 269, in __init__ self.open_mapping_file() # test it to report the error early File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_multibytecodec_support.py", line 272, in open_mapping_file return test_support.open_urlresource(self.mapfileurl) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_support.py", line 271, in open_urlresource fn, _ = urllib.urlretrieve(url, filename) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 89, in urlretrieve return _urlopener.retrieve(url, filename, reporthook, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 230, in retrieve fp = self.open(url, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 198, in open return getattr(self, name)(url) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 333, in open_http h.endheaders() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 849, in endheaders self._send_output() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 721, in _send_output self.send(msg) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 680, in send self.connect() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/httplib.py", line 664, in connect self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg IOError: [Errno socket error] [Errno 124] Address family not supported by protocol ====================================================================== ERROR: test_ftp (test.test_urllib2net.OtherNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 175, in test_ftp self._test_urls(urls, self._extra_handlers()) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 244, in _test_urls f = urllib2.urlopen(url, req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 380, in open response = self._open(req, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 398, in _open '_open', req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 358, in _call_chain result = func(*args) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1277, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1323, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 842, in __init__ self.init() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 848, in init self.ftp.connect(self.host, self.port, self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg TypeError: __init__() takes exactly 2 arguments (3 given) ====================================================================== ERROR: test_ftp_NoneNodefault (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 304, in test_ftp_NoneNodefault u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/", timeout=None) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 380, in open response = self._open(req, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 398, in _open '_open', req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 358, in _call_chain result = func(*args) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1277, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1323, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 842, in __init__ self.init() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 848, in init self.ftp.connect(self.host, self.port, self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg TypeError: __init__() takes exactly 2 arguments (3 given) ====================================================================== ERROR: test_ftp_NoneWithdefault (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 298, in test_ftp_NoneWithdefault u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/", timeout=None) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 380, in open response = self._open(req, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 398, in _open '_open', req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 358, in _call_chain result = func(*args) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1277, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1323, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 842, in __init__ self.init() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 848, in init self.ftp.connect(self.host, self.port, self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg TypeError: __init__() takes exactly 2 arguments (3 given) ====================================================================== ERROR: test_ftp_Value (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 308, in test_ftp_Value u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/", timeout=60) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 380, in open response = self._open(req, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 398, in _open '_open', req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 358, in _call_chain result = func(*args) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1277, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1323, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 842, in __init__ self.init() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 848, in init self.ftp.connect(self.host, self.port, self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg TypeError: __init__() takes exactly 2 arguments (3 given) ====================================================================== ERROR: test_ftp_basic (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 291, in test_ftp_basic u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/") File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 380, in open response = self._open(req, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 398, in _open '_open', req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 358, in _call_chain result = func(*args) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1277, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1323, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 842, in __init__ self.init() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 848, in init self.ftp.connect(self.host, self.port, self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg TypeError: __init__() takes exactly 2 arguments (3 given) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Oct 9 08:47:23 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 06:47:23 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20071009064723.772FC1E4008@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/259 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 6 tests failed: test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_itertools test_winsound Traceback (most recent call last): File "../lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_codecmaps_cn.py", line 30, in test_main test_support.run_unittest(__name__) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_support.py", line 550, in run_unittest suite.addTest(unittest.findTestCases(sys.modules[cls])) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 639, in findTestCases return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromModule(module) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 549, in loadTestsFromModule tests.append(self.loadTestsFromTestCase(obj)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 540, in loadTestsFromTestCase return self.suiteClass(map(testCaseClass, testCaseNames)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_multibytecodec_support.py", line 269, in __init__ self.open_mapping_file() # test it to report the error early File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_multibytecodec_support.py", line 272, in open_mapping_file return test_support.open_urlresource(self.mapfileurl) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_support.py", line 271, in open_urlresource fn, _ = urllib.urlretrieve(url, filename) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 89, in urlretrieve return _urlopener.retrieve(url, filename, reporthook, data) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 230, in retrieve fp = self.open(url, data) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 198, in open return getattr(self, name)(url) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 333, in open_http h.endheaders() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 849, in endheaders self._send_output() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 721, in _send_output self.send(msg) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 680, in send self.connect() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 664, in connect self.timeout) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\socket.py", line 462, in create_connection raise error, msg IOError: [Errno socket error] [Errno 10061] Connection refused Traceback (most recent call last): File "../lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_codecmaps_hk.py", line 17, in test_main test_support.run_unittest(__name__) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_support.py", line 550, in run_unittest suite.addTest(unittest.findTestCases(sys.modules[cls])) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 639, in findTestCases return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromModule(module) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 549, in loadTestsFromModule tests.append(self.loadTestsFromTestCase(obj)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 540, in loadTestsFromTestCase return self.suiteClass(map(testCaseClass, testCaseNames)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_multibytecodec_support.py", line 269, in __init__ self.open_mapping_file() # test it to report the error early File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_multibytecodec_support.py", line 272, in open_mapping_file return test_support.open_urlresource(self.mapfileurl) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_support.py", line 271, in open_urlresource fn, _ = urllib.urlretrieve(url, filename) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 89, in urlretrieve return _urlopener.retrieve(url, filename, reporthook, data) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 230, in retrieve fp = self.open(url, data) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 198, in open return getattr(self, name)(url) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 333, in open_http h.endheaders() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 849, in endheaders self._send_output() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 721, in _send_output self.send(msg) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 680, in send self.connect() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 664, in connect self.timeout) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\socket.py", line 462, in create_connection raise error, msg IOError: [Errno socket error] [Errno 10061] Connection refused Traceback (most recent call last): File "../lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_codecmaps_jp.py", line 64, in test_main test_support.run_unittest(__name__) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_support.py", line 550, in run_unittest suite.addTest(unittest.findTestCases(sys.modules[cls])) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 639, in findTestCases return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromModule(module) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 549, in loadTestsFromModule tests.append(self.loadTestsFromTestCase(obj)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 540, in loadTestsFromTestCase return self.suiteClass(map(testCaseClass, testCaseNames)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_multibytecodec_support.py", line 269, in __init__ self.open_mapping_file() # test it to report the error early File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_multibytecodec_support.py", line 272, in open_mapping_file return test_support.open_urlresource(self.mapfileurl) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_support.py", line 271, in open_urlresource fn, _ = urllib.urlretrieve(url, filename) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 89, in urlretrieve return _urlopener.retrieve(url, filename, reporthook, data) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 230, in retrieve fp = self.open(url, data) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 198, in open return getattr(self, name)(url) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 333, in open_http h.endheaders() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 849, in endheaders self._send_output() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 721, in _send_output self.send(msg) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 680, in send self.connect() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 664, in connect self.timeout) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\socket.py", line 462, in create_connection raise error, msg IOError: [Errno socket error] [Errno 10061] Connection refused Traceback (most recent call last): File "../lib/test/regrtest.py", line 557, in runtest_inner indirect_test() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_codecmaps_kr.py", line 41, in test_main test_support.run_unittest(__name__) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_support.py", line 550, in run_unittest suite.addTest(unittest.findTestCases(sys.modules[cls])) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 639, in findTestCases return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromModule(module) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 549, in loadTestsFromModule tests.append(self.loadTestsFromTestCase(obj)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 540, in loadTestsFromTestCase return self.suiteClass(map(testCaseClass, testCaseNames)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_multibytecodec_support.py", line 269, in __init__ self.open_mapping_file() # test it to report the error early File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_multibytecodec_support.py", line 272, in open_mapping_file return test_support.open_urlresource(self.mapfileurl) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_support.py", line 271, in open_urlresource fn, _ = urllib.urlretrieve(url, filename) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 89, in urlretrieve return _urlopener.retrieve(url, filename, reporthook, data) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 230, in retrieve fp = self.open(url, data) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 198, in open return getattr(self, name)(url) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\urllib.py", line 333, in open_http h.endheaders() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 849, in endheaders self._send_output() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 721, in _send_output self.send(msg) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 680, in send self.connect() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\httplib.py", line 664, in connect self.timeout) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\socket.py", line 462, in create_connection raise error, msg IOError: [Errno socket error] [Errno 10061] Connection refused ====================================================================== FAIL: test_count (test.test_itertools.TestBasicOps) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_itertools.py", line 70, in test_count self.assertEqual(repr(count(i)), 'count(%r)' % i) AssertionError: 'count(-2147483652)' != 'count(-2147483652L)' ====================================================================== ERROR: test_extremes (test.test_winsound.BeepTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 18, in test_extremes winsound.Beep(37, 75) RuntimeError: Failed to beep ====================================================================== ERROR: test_increasingfrequency (test.test_winsound.BeepTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 23, in test_increasingfrequency winsound.Beep(i, 75) RuntimeError: Failed to beep ====================================================================== ERROR: test_alias_asterisk (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 64, in test_alias_asterisk winsound.PlaySound('SystemAsterisk', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_exclamation (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 74, in test_alias_exclamation winsound.PlaySound('SystemExclamation', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_exit (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 84, in test_alias_exit winsound.PlaySound('SystemExit', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_hand (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 94, in test_alias_hand winsound.PlaySound('SystemHand', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_question (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 104, in test_alias_question winsound.PlaySound('SystemQuestion', winsound.SND_ALIAS) RuntimeError: Failed to play sound Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\threading.py", line 486, in __bootstrap_inner self.run() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\bsddb\test\test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '0007-0007-0007-0007-0007' Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\threading.py", line 486, in __bootstrap_inner self.run() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\bsddb\test\test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '2001-2001-2001-2001-2001' Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\threading.py", line 486, in __bootstrap_inner self.run() File "C:\buildbot\trunk.heller-windows-amd64\build\lib\threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\bsddb\test\test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "C:\buildbot\trunk.heller-windows-amd64\build\lib\unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '1004-1004-1004-1004-1004' sincerely, -The Buildbot From python-checkins at python.org Tue Oct 9 08:50:43 2007 From: python-checkins at python.org (gregory.p.smith) Date: Tue, 9 Oct 2007 08:50:43 +0200 (CEST) Subject: [Python-checkins] r58385 - in python/trunk: Lib/bsddb/test/test_misc.py Modules/_bsddb.c Message-ID: <20071009065043.CFC031E4008@bag.python.org> Author: gregory.p.smith Date: Tue Oct 9 08:50:43 2007 New Revision: 58385 Modified: python/trunk/Lib/bsddb/test/test_misc.py python/trunk/Modules/_bsddb.c Log: Fix a double free when positioning a database cursor to a non-existant string key (and probably a few other situations with string keys). This was reported with a patch as pybsddb sourceforge bug 1708868 by jjjhhhlll at gmail. Modified: python/trunk/Lib/bsddb/test/test_misc.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_misc.py (original) +++ python/trunk/Lib/bsddb/test/test_misc.py Tue Oct 9 08:50:43 2007 @@ -53,6 +53,26 @@ rp = repr(db) self.assertEquals(rp, "{}") + # http://sourceforge.net/tracker/index.php?func=detail&aid=1708868&group_id=13900&atid=313900 + # + # See the bug report for details. + # + # The problem was that make_key_dbt() was not allocating a copy of + # string keys but FREE_DBT() was always being told to free it when the + # database was opened with DB_THREAD. + def test04_double_free_make_key_dbt(self): + try: + db1 = db.DB() + db1.open(self.filename, None, db.DB_BTREE, + db.DB_CREATE | db.DB_THREAD) + + curs = db1.cursor() + t = curs.get("/foo", db.DB_SET) + # double free happened during exit from DBC_get + finally: + db1.close() + os.unlink(self.filename) + #---------------------------------------------------------------------- Modified: python/trunk/Modules/_bsddb.c ============================================================================== --- python/trunk/Modules/_bsddb.c (original) +++ python/trunk/Modules/_bsddb.c Tue Oct 9 08:50:43 2007 @@ -328,7 +328,19 @@ return 0; } - key->data = PyString_AS_STRING(keyobj); + /* + * NOTE(gps): I don't like doing a data copy here, it seems + * wasteful. But without a clean way to tell FREE_DBT if it + * should free key->data or not we have to. Other places in + * the code check for DB_THREAD and forceably set DBT_MALLOC + * when we otherwise would leave flags 0 to indicate that. + */ + key->data = strdup(PyString_AS_STRING(keyobj)); + if (key->data == NULL) { + PyErr_SetString(PyExc_MemoryError, "Key memory allocation failed"); + return 0; + } + key->flags = DB_DBT_REALLOC; key->size = PyString_GET_SIZE(keyobj); } From buildbot at python.org Tue Oct 9 08:52:38 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 06:52:38 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 trunk Message-ID: <20071009065238.E50DB1E4008@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%20trunk/builds/297 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bufio sincerely, -The Buildbot From python-checkins at python.org Tue Oct 9 09:19:11 2007 From: python-checkins at python.org (gregory.p.smith) Date: Tue, 9 Oct 2007 09:19:11 +0200 (CEST) Subject: [Python-checkins] r58386 - python/trunk/Lib/bsddb/dbshelve.py Message-ID: <20071009071911.D13CC1E4009@bag.python.org> Author: gregory.p.smith Date: Tue Oct 9 09:19:11 2007 New Revision: 58386 Modified: python/trunk/Lib/bsddb/dbshelve.py Log: Use the highest cPickle protocol in bsddb.dbshelve. This comes from sourceforge pybsddb patch 1551443 by w_barnes. Modified: python/trunk/Lib/bsddb/dbshelve.py ============================================================================== --- python/trunk/Lib/bsddb/dbshelve.py (original) +++ python/trunk/Lib/bsddb/dbshelve.py Tue Oct 9 09:19:11 2007 @@ -30,12 +30,21 @@ #------------------------------------------------------------------------ import cPickle -try: +import db +import sys + +#At version 2.3 cPickle switched to using protocol instead of bin and +#DictMixin was added +if sys.version_info[:3] >= (2, 3, 0): + HIGHEST_PROTOCOL = cPickle.HIGHEST_PROTOCOL + def _dumps(object, protocol): + return cPickle.dumps(object, protocol=protocol) from UserDict import DictMixin -except ImportError: - # DictMixin is new in Python 2.3 +else: + HIGHEST_PROTOCOL = None + def _dumps(object, protocol): + return cPickle.dumps(object, bin=protocol) class DictMixin: pass -import db #------------------------------------------------------------------------ @@ -81,7 +90,10 @@ """ def __init__(self, dbenv=None): self.db = db.DB(dbenv) - self.binary = 1 + if HIGHEST_PROTOCOL: + self.protocol = HIGHEST_PROTOCOL + else: + self.protocol = 1 def __del__(self): @@ -108,7 +120,7 @@ def __setitem__(self, key, value): - data = cPickle.dumps(value, self.binary) + data = _dumps(value, self.protocol) self.db[key] = data @@ -146,7 +158,7 @@ # Other methods def __append(self, value, txn=None): - data = cPickle.dumps(value, self.binary) + data = _dumps(value, self.protocol) return self.db.append(data, txn) def append(self, value, txn=None): @@ -177,19 +189,19 @@ # so it doesn't need unpickled. def get_both(self, key, value, txn=None, flags=0): - data = cPickle.dumps(value, self.binary) + data = _dumps(value, self.protocol) data = self.db.get(key, data, txn, flags) return cPickle.loads(data) def cursor(self, txn=None, flags=0): c = DBShelfCursor(self.db.cursor(txn, flags)) - c.binary = self.binary + c.protocol = self.protocol return c def put(self, key, value, txn=None, flags=0): - data = cPickle.dumps(value, self.binary) + data = _dumps(value, self.protocol) return self.db.put(key, data, txn, flags) @@ -225,11 +237,13 @@ #---------------------------------------------- def dup(self, flags=0): - return DBShelfCursor(self.dbc.dup(flags)) + c = DBShelfCursor(self.dbc.dup(flags)) + c.protocol = self.protocol + return c def put(self, key, value, flags=0): - data = cPickle.dumps(value, self.binary) + data = _dumps(value, self.protocol) return self.dbc.put(key, data, flags) @@ -247,7 +261,7 @@ return self._extract(rec) def get_3(self, key, value, flags): - data = cPickle.dumps(value, self.binary) + data = _dumps(value, self.protocol) rec = self.dbc.get(key, flags) return self._extract(rec) @@ -264,7 +278,7 @@ def get_both(self, key, value, flags=0): - data = cPickle.dumps(value, self.binary) + data = _dumps(value, self.protocol) rec = self.dbc.get_both(key, flags) return self._extract(rec) From buildbot at python.org Tue Oct 9 09:21:02 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 07:21:02 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20071009072102.7C10A1E4015@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/2528 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllib2net make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Oct 9 09:25:25 2007 From: python-checkins at python.org (gregory.p.smith) Date: Tue, 9 Oct 2007 09:25:25 +0200 (CEST) Subject: [Python-checkins] r58387 - in python/branches/release25-maint: Lib/bsddb/test/test_misc.py Modules/_bsddb.c Message-ID: <20071009072525.2E8531E400E@bag.python.org> Author: gregory.p.smith Date: Tue Oct 9 09:25:24 2007 New Revision: 58387 Modified: python/branches/release25-maint/Lib/bsddb/test/test_misc.py python/branches/release25-maint/Modules/_bsddb.c Log: Backport 58385 from trunk: fix a double free bug in the _bsddb module on DBCursor.get (and a friends) when passing in a string key. Modified: python/branches/release25-maint/Lib/bsddb/test/test_misc.py ============================================================================== --- python/branches/release25-maint/Lib/bsddb/test/test_misc.py (original) +++ python/branches/release25-maint/Lib/bsddb/test/test_misc.py Tue Oct 9 09:25:24 2007 @@ -52,6 +52,26 @@ rp = repr(db) self.assertEquals(rp, "{}") + # http://sourceforge.net/tracker/index.php?func=detail&aid=1708868&group_id=13900&atid=313900 + # + # See the bug report for details. + # + # The problem was that make_key_dbt() was not allocating a copy of + # string keys but FREE_DBT() was always being told to free it when the + # database was opened with DB_THREAD. + def test04_double_free_make_key_dbt(self): + try: + db1 = db.DB() + db1.open(self.filename, None, db.DB_BTREE, + db.DB_CREATE | db.DB_THREAD) + + curs = db1.cursor() + t = curs.get("/foo", db.DB_SET) + # double free happened during exit from DBC_get + finally: + db1.close() + os.unlink(self.filename) + #---------------------------------------------------------------------- Modified: python/branches/release25-maint/Modules/_bsddb.c ============================================================================== --- python/branches/release25-maint/Modules/_bsddb.c (original) +++ python/branches/release25-maint/Modules/_bsddb.c Tue Oct 9 09:25:24 2007 @@ -425,7 +425,19 @@ return 0; } - key->data = PyString_AS_STRING(keyobj); + /* + * NOTE(gps): I don't like doing a data copy here, it seems + * wasteful. But without a clean way to tell FREE_DBT if it + * should free key->data or not we have to. Other places in + * the code check for DB_THREAD and forceably set DBT_MALLOC + * when we otherwise would leave flags 0 to indicate that. + */ + key->data = strdup(PyString_AS_STRING(keyobj)); + if (key->data == NULL) { + PyErr_SetString(PyExc_MemoryError, "Key memory allocation failed"); + return 0; + } + key->flags = DB_DBT_REALLOC; key->size = PyString_GET_SIZE(keyobj); } From buildbot at python.org Tue Oct 9 09:49:40 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 07:49:40 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20071009074940.250691E4008@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/2238 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_bsddb3 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Oct 9 10:53:16 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 08:53:16 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20071009085316.6E8A31E4008@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/98 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Tue Oct 9 14:10:35 2007 From: python-checkins at python.org (thomas.heller) Date: Tue, 9 Oct 2007 14:10:35 +0200 (CEST) Subject: [Python-checkins] r58388 - python/ctypes-branch Message-ID: <20071009121035.70B8C1E402E@bag.python.org> Author: thomas.heller Date: Tue Oct 9 14:10:35 2007 New Revision: 58388 Added: python/ctypes-branch/ - copied from r58387, python/trunk/ Log: create branch to find ctypes crashes on certain architectures From python-checkins at python.org Tue Oct 9 14:16:26 2007 From: python-checkins at python.org (thomas.heller) Date: Tue, 9 Oct 2007 14:16:26 +0200 (CEST) Subject: [Python-checkins] r58389 - in python/ctypes-branch: Lib/ctypes/test/test_callbacks.py Modules/_ctypes/cfield.c Message-ID: <20071009121626.64D441E4008@bag.python.org> Author: thomas.heller Date: Tue Oct 9 14:16:26 2007 New Revision: 58389 Modified: python/ctypes-branch/Lib/ctypes/test/test_callbacks.py python/ctypes-branch/Modules/_ctypes/cfield.c Log: Add some debug prints. Modified: python/ctypes-branch/Lib/ctypes/test/test_callbacks.py ============================================================================== --- python/ctypes-branch/Lib/ctypes/test/test_callbacks.py (original) +++ python/ctypes-branch/Lib/ctypes/test/test_callbacks.py Tue Oct 9 14:16:26 2007 @@ -1,4 +1,5 @@ import unittest +import sys from ctypes import * import _ctypes_test @@ -78,8 +79,14 @@ self.check_type(c_double, -3.14) def test_longdouble(self): + print >> sys.stderr, "First Test Start" self.check_type(c_longdouble, 3.14) - self.check_type(c_longdouble, -3.14) + print >> sys.stderr, "First Test Done" + print >> sys.stderr + + print >> sys.stderr, "Second Test Start" + self.check_type(c_longdouble, 2.78) + print >> sys.stderr, "Second Test Done" def test_char(self): self.check_type(c_char, "x") Modified: python/ctypes-branch/Modules/_ctypes/cfield.c ============================================================================== --- python/ctypes-branch/Modules/_ctypes/cfield.c (original) +++ python/ctypes-branch/Modules/_ctypes/cfield.c Tue Oct 9 14:16:26 2007 @@ -1001,6 +1001,7 @@ value->ob_type->tp_name); return NULL; } + fprintf(stderr, "D_set(%p, %f)\n", ptr, (float)x); memcpy(ptr, &x, sizeof(long double)); _RET(value); } @@ -1010,6 +1011,7 @@ { long double val; memcpy(&val, ptr, sizeof(long double)); + fprintf(stderr, "D_get(%p) -> %f\n", ptr, (float)val); return PyFloat_FromDouble(val); } From buildbot at python.org Tue Oct 9 18:13:53 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 16:13:53 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 trunk Message-ID: <20071009161353.7096C1E400D@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%20trunk/builds/304 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: The web-page 'force build' button was pressed by 'Thomas Heller': testing Build Source Stamp: [branch ctypes-branch] HEAD Blamelist: BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Tue Oct 9 19:21:21 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 17:21:21 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20071009172122.00A6A1E4027@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/263 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: The web-page 'force build' button was pressed by 'theller': build a branch Build Source Stamp: [branch branches/ctypes-branch] HEAD Blamelist: BUILD FAILED: failed svn sincerely, -The Buildbot From python-checkins at python.org Tue Oct 9 19:29:13 2007 From: python-checkins at python.org (thomas.heller) Date: Tue, 9 Oct 2007 19:29:13 +0200 (CEST) Subject: [Python-checkins] r58391 - python/ctypes-branch Message-ID: <20071009172913.3D0191E4024@bag.python.org> Author: thomas.heller Date: Tue Oct 9 19:29:13 2007 New Revision: 58391 Removed: python/ctypes-branch/ Log: Remove branch created at the wrong place From python-checkins at python.org Tue Oct 9 19:30:41 2007 From: python-checkins at python.org (thomas.heller) Date: Tue, 9 Oct 2007 19:30:41 +0200 (CEST) Subject: [Python-checkins] r58393 - python/branches/ctypes-branch Message-ID: <20071009173041.39E4A1E400D@bag.python.org> Author: thomas.heller Date: Tue Oct 9 19:30:40 2007 New Revision: 58393 Added: python/branches/ctypes-branch/ - copied from r58392, python/trunk/ Log: create branch to find ctypes crashes on certain architectures From python-checkins at python.org Tue Oct 9 20:26:03 2007 From: python-checkins at python.org (gregory.p.smith) Date: Tue, 9 Oct 2007 20:26:03 +0200 (CEST) Subject: [Python-checkins] r58394 - python/trunk/setup.py Message-ID: <20071009182603.11F9F1E4014@bag.python.org> Author: gregory.p.smith Date: Tue Oct 9 20:26:02 2007 New Revision: 58394 Modified: python/trunk/setup.py Log: remove another sleepycat reference Modified: python/trunk/setup.py ============================================================================== --- python/trunk/setup.py (original) +++ python/trunk/setup.py Tue Oct 9 20:26:02 2007 @@ -660,7 +660,7 @@ # http://www.oracle.com/database/berkeley-db/db/index.html # # This requires the Sleepycat^WOracle DB code. The supported versions - # are set below. Visit http://www.sleepycat.com/ to download + # are set below. Visit the URL above to download # a release. Most open source OSes come with one or more # versions of BerkeleyDB already installed. From python-checkins at python.org Tue Oct 9 21:31:31 2007 From: python-checkins at python.org (kurt.kaiser) Date: Tue, 9 Oct 2007 21:31:31 +0200 (CEST) Subject: [Python-checkins] r58396 - python/trunk/Lib/idlelib/NEWS.txt python/trunk/Lib/idlelib/run.py Message-ID: <20071009193131.2EFD51E4019@bag.python.org> Author: kurt.kaiser Date: Tue Oct 9 21:31:30 2007 New Revision: 58396 Modified: python/trunk/Lib/idlelib/NEWS.txt python/trunk/Lib/idlelib/run.py Log: Allow interrupt only when executing user code in subprocess Patch 1225 Tal Einat modified from IDLE-Spoon. Modified: python/trunk/Lib/idlelib/NEWS.txt ============================================================================== --- python/trunk/Lib/idlelib/NEWS.txt (original) +++ python/trunk/Lib/idlelib/NEWS.txt Tue Oct 9 21:31:30 2007 @@ -3,6 +3,9 @@ *Release date: XX-XXX-200X* +- Allow keyboard interrupt only when user code is executing in subprocess. + Patch 1225 Tal Einat (reworked from IDLE-Spoon). + - configDialog cleanup. Patch 1730217 Tal Einat. - textView cleanup. Patch 1718043 Tal Einat. Modified: python/trunk/Lib/idlelib/run.py ============================================================================== --- python/trunk/Lib/idlelib/run.py (original) +++ python/trunk/Lib/idlelib/run.py Tue Oct 9 21:31:30 2007 @@ -38,10 +38,11 @@ # Thread shared globals: Establish a queue between a subthread (which handles # the socket) and the main thread (which runs user code), plus global -# completion and exit flags: +# completion, exit and interruptable (the main thread) flags: exit_now = False quitting = False +interruptable = False def main(del_exitfunc=False): """Start the Python execution server in a subprocess @@ -280,9 +281,14 @@ self.autocomplete = AutoComplete.AutoComplete() def runcode(self, code): + global interruptable try: self.usr_exc_info = None - exec code in self.locals + interruptable = True + try: + exec code in self.locals + finally: + interruptable = False except: self.usr_exc_info = sys.exc_info() if quitting: @@ -296,7 +302,8 @@ flush_stdout() def interrupt_the_server(self): - thread.interrupt_main() + if interruptable: + thread.interrupt_main() def start_the_debugger(self, gui_adap_oid): return RemoteDebugger.start_debugger(self.rpchandler, gui_adap_oid) From buildbot at python.org Tue Oct 9 22:04:33 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 20:04:33 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071009200434.26BA11E400A@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/100 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib sincerely, -The Buildbot From buildbot at python.org Tue Oct 9 23:46:11 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 21:46:11 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20071009214611.752FE1E4023@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/2285 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 Traceback (most recent call last): File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Oct 10 00:00:47 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 22:00:47 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071009220047.D9A371E4017@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/206 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Oct 10 00:32:40 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 22:32:40 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 2.5 Message-ID: <20071009223240.EC8281E400A@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%202.5/builds/4 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 81, in run svr = svrcls(self.__addr, self.__hdlrcls) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/SocketServer.py", line 330, in __init__ self.server_bind() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 159, in server_bind TCPServer.server_bind(self) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/SocketServer.py", line 341, in server_bind self.socket.bind(self.server_address) File "", line 1, in bind gaierror: (-2, 'Name or service not known') sincerely, -The Buildbot From buildbot at python.org Wed Oct 10 00:40:43 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 22:40:43 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 3.0 Message-ID: <20071009224044.229A41E400D@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%203.0/builds/60 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: 12 tests failed: test_csv test_dumbdbm test_file test_fileinput test_gettext test_io test_largefile test_mailbox test_netrc test_pep277 test_subprocess test_tempfile ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_csv.py", line 500, in test_read_escape_fieldsep self.readerAssertEqual('abc\\,def\r\n', [['abc,def']]) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestQuotedEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_csv.py", line 513, in test_read_escape_fieldsep self.readerAssertEqual('"abc\\,def"\r\n', [['abc,def']]) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== ERROR: test_line_endings (test.test_dumbdbm.DumbDBMTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_dumbdbm.py", line 121, in test_line_endings f = dumbdbm.open(_fname) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\dumbdbm.py", line 256, in open return _Database(file, mode) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\dumbdbm.py", line 73, in __init__ self._update() File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\dumbdbm.py", line 85, in _update key, pos_and_siz_pair = eval(line) File "", line 0 ^ SyntaxError: unexpected EOF while parsing ====================================================================== ERROR: testTruncateOnWindows (test.test_file.OtherFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_file.py", line 212, in testTruncateOnWindows os.unlink(TESTFN) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== FAIL: test_buffer_sizes (test.test_fileinput.BufferSizesTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_fileinput.py", line 42, in test_buffer_sizes self.buffer_size_test(t1, t2, t3, t4, bs, round) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_fileinput.py", line 119, in buffer_size_test self.assertNotEqual(m, None) AssertionError: None == None ====================================================================== ERROR: test_weird_metadata (test.test_gettext.WeirdMetadataTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_gettext.py", line 335, in test_weird_metadata self.assertEqual(info['last-translator'], KeyError: 'last-translator' ====================================================================== FAIL: test_buffered_file_io (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 163, in test_buffered_file_io self.write_ops(f) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 97, in write_ops self.assertEqual(f.tell(), 13) AssertionError: 12 != 13 ====================================================================== FAIL: test_large_file_ops (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 206, in test_large_file_ops self.large_file_ops(f) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 139, in large_file_ops self.assertEqual(f.tell(), self.LARGE + 2) AssertionError: 2147483649 != 2147483650 ====================================================================== FAIL: test_raw_file_io (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 149, in test_raw_file_io self.write_ops(f) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 97, in write_ops self.assertEqual(f.tell(), 13) AssertionError: 12 != 13 ====================================================================== ERROR: test_add (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 697, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_close (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_from_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_mbox_or_mmdf_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_conflict (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_open_close_open (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_relock (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_close (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_from_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_mbox_or_mmdf_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_conflict (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_open_close_open (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_relock (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_remove_folders (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_folder (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_list_folders (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pack (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_sequences (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_labels (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_date (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_info (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_info_and_flags (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_subdir (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_from (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_unixfrom (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_sequences (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_labels (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_visible (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_from (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_unixfrom (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteration (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_read (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readline (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readlines (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_seek_and_tell (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteration (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_read (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readline (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readlines (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_seek_and_tell (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: Test an empty maildir mailbox ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_both (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_cur (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_new (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_unix_mbox (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMaildir) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 407, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: None ====================================================================== FAIL: test_add (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 76, in test_add self.assertEqual(self._box.get_string(keys[0]), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== ERROR: test_case_1 (test.test_netrc.NetrcTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_netrc.py", line 31, in setUp self.netrc = netrc.netrc(temp_filename) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\netrc.py", line 56, in __init__ "bad toplevel token %r" % tt, file, lexer.lineno) netrc.NetrcParseError: bad toplevel token 'line1' (@test, line 9) ====================================================================== ERROR: test_directory (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1098, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_failures (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1098, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_listdir (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1098, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_open (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1098, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_rename (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1098, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_communicate (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_subprocess.py", line 303, in test_communicate (stdout, stderr) = p.communicate("banana") File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\subprocess.py", line 597, in communicate return self._communicate(input) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\subprocess.py", line 812, in _communicate self.stdin.write(input) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 807, in write raise TypeError("can't write str to binary stream") TypeError: can't write str to binary stream ====================================================================== ERROR: test_no_leaking (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_subprocess.py", line 404, in test_no_leaking data = p.communicate("lime")[0] File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\subprocess.py", line 597, in communicate return self._communicate(input) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\subprocess.py", line 812, in _communicate self.stdin.write(input) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 807, in write raise TypeError("can't write str to binary stream") TypeError: can't write str to binary stream ====================================================================== ERROR: test_shell_sequence (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_subprocess.py", line 633, in test_shell_sequence self.assertNotEqual(p.stdout.read().find("physalis"), -1) TypeError: Type str doesn't support the buffer API ====================================================================== ERROR: test_shell_string (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_subprocess.py", line 642, in test_shell_string self.assertNotEqual(p.stdout.read().find("physalis"), -1) TypeError: Type str doesn't support the buffer API ====================================================================== FAIL: test_text_mode (test.test_tempfile.test_SpooledTemporaryFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_tempfile.py", line 747, in test_text_mode self.assertEqual(f.read(), "abc\ndef\nxyzzy\n") AssertionError: 'abc\n\ndef\n\nxyzzy\n\n' != 'abc\ndef\nxyzzy\n' sincerely, -The Buildbot From buildbot at python.org Wed Oct 10 01:33:15 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 09 Oct 2007 23:33:15 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu 3.0 Message-ID: <20071009233316.1035B1E400A@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%203.0/builds/100 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 37 sincerely, -The Buildbot From python-checkins at python.org Wed Oct 10 02:07:50 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 10 Oct 2007 02:07:50 +0200 (CEST) Subject: [Python-checkins] r58399 - python/trunk/Objects/dictobject.c Message-ID: <20071010000750.6F2671E400D@bag.python.org> Author: brett.cannon Date: Wed Oct 10 02:07:50 2007 New Revision: 58399 Modified: python/trunk/Objects/dictobject.c Log: Remove file-level typedefs that were inconsistently used throughout the file. Just move over to the public API names. Closes issue1238. Modified: python/trunk/Objects/dictobject.c ============================================================================== --- python/trunk/Objects/dictobject.c (original) +++ python/trunk/Objects/dictobject.c Wed Oct 10 02:07:50 2007 @@ -9,8 +9,6 @@ #include "Python.h" -typedef PyDictEntry dictentry; -typedef PyDictObject dictobject; /* Set a key error with the specified argument, wrapping it in a * tuple automatically so that tuple keys are not unpacked as the @@ -121,7 +119,7 @@ the same number of operations but without as much potential parallelism (e.g., computing 5*j can go on at the same time as computing 1+perturb in the above, and then shifting perturb can be done while the table index is being -masked); and the dictobject struct required a member to hold the table's +masked); and the PyDictObject struct required a member to hold the table's polynomial. In Tim's experiments the current scheme ran faster, produced equally good collision statistics, needed less code & used less memory. @@ -137,7 +135,7 @@ */ /* Object used as dummy key to fill deleted entries */ -static PyObject *dummy = NULL; /* Initialized by first call to newdictobject() */ +static PyObject *dummy = NULL; /* Initialized by first call to newPyDictObject() */ #ifdef Py_REF_DEBUG PyObject * @@ -148,8 +146,8 @@ #endif /* forward declarations */ -static dictentry * -lookdict_string(dictobject *mp, PyObject *key, long hash); +static PyDictEntry * +lookdict_string(PyDictObject *mp, PyObject *key, long hash); #ifdef SHOW_CONVERSION_COUNTS static long created = 0L; @@ -192,7 +190,7 @@ PyObject * PyDict_New(void) { - register dictobject *mp; + register PyDictObject *mp; if (dummy == NULL) { /* Auto-initialize dummy */ dummy = PyString_FromString(""); if (dummy == NULL) @@ -213,7 +211,7 @@ assert (mp->ma_table == mp->ma_smalltable); assert (mp->ma_mask == PyDict_MINSIZE - 1); } else { - mp = PyObject_GC_New(dictobject, &PyDict_Type); + mp = PyObject_GC_New(PyDictObject, &PyDict_Type); if (mp == NULL) return NULL; EMPTY_TO_MINSIZE(mp); @@ -245,20 +243,20 @@ comparison raises an exception (this was new in Python 2.5). lookdict_string() below is specialized to string keys, comparison of which can never raise an exception; that function can never return NULL. For both, when -the key isn't found a dictentry* is returned for which the me_value field is +the key isn't found a PyDictEntry* is returned for which the me_value field is NULL; this is the slot in the dict at which the key would have been found, and the caller can (if it wishes) add the pair to the returned -dictentry*. +PyDictEntry*. */ -static dictentry * -lookdict(dictobject *mp, PyObject *key, register long hash) +static PyDictEntry * +lookdict(PyDictObject *mp, PyObject *key, register long hash) { register size_t i; register size_t perturb; - register dictentry *freeslot; + register PyDictEntry *freeslot; register size_t mask = (size_t)mp->ma_mask; - dictentry *ep0 = mp->ma_table; - register dictentry *ep; + PyDictEntry *ep0 = mp->ma_table; + register PyDictEntry *ep; register int cmp; PyObject *startkey; @@ -334,15 +332,15 @@ * * This is valuable because dicts with only string keys are very common. */ -static dictentry * -lookdict_string(dictobject *mp, PyObject *key, register long hash) +static PyDictEntry * +lookdict_string(PyDictObject *mp, PyObject *key, register long hash) { register size_t i; register size_t perturb; - register dictentry *freeslot; + register PyDictEntry *freeslot; register size_t mask = (size_t)mp->ma_mask; - dictentry *ep0 = mp->ma_table; - register dictentry *ep; + PyDictEntry *ep0 = mp->ma_table; + register PyDictEntry *ep; /* Make sure this function doesn't have to handle non-string keys, including subclasses of str; e.g., one reason to subclass @@ -393,10 +391,10 @@ Returns -1 if an error occurred, or 0 on success. */ static int -insertdict(register dictobject *mp, PyObject *key, long hash, PyObject *value) +insertdict(register PyDictObject *mp, PyObject *key, long hash, PyObject *value) { PyObject *old_value; - register dictentry *ep; + register PyDictEntry *ep; typedef PyDictEntry *(*lookupfunc)(PyDictObject *, PyObject *, long); assert(mp->ma_lookup != NULL); @@ -436,14 +434,14 @@ is responsible for incref'ing `key` and `value`. */ static void -insertdict_clean(register dictobject *mp, PyObject *key, long hash, +insertdict_clean(register PyDictObject *mp, PyObject *key, long hash, PyObject *value) { register size_t i; register size_t perturb; register size_t mask = (size_t)mp->ma_mask; - dictentry *ep0 = mp->ma_table; - register dictentry *ep; + PyDictEntry *ep0 = mp->ma_table; + register PyDictEntry *ep; i = hash & mask; ep = &ep0[i]; @@ -465,13 +463,13 @@ actually be smaller than the old one. */ static int -dictresize(dictobject *mp, Py_ssize_t minused) +dictresize(PyDictObject *mp, Py_ssize_t minused) { Py_ssize_t newsize; - dictentry *oldtable, *newtable, *ep; + PyDictEntry *oldtable, *newtable, *ep; Py_ssize_t i; int is_oldtable_malloced; - dictentry small_copy[PyDict_MINSIZE]; + PyDictEntry small_copy[PyDict_MINSIZE]; assert(minused >= 0); @@ -510,7 +508,7 @@ } } else { - newtable = PyMem_NEW(dictentry, newsize); + newtable = PyMem_NEW(PyDictEntry, newsize); if (newtable == NULL) { PyErr_NoMemory(); return -1; @@ -521,7 +519,7 @@ assert(newtable != oldtable); mp->ma_table = newtable; mp->ma_mask = newsize - 1; - memset(newtable, 0, sizeof(dictentry) * newsize); + memset(newtable, 0, sizeof(PyDictEntry) * newsize); mp->ma_used = 0; i = mp->ma_fill; mp->ma_fill = 0; @@ -561,8 +559,8 @@ PyDict_GetItem(PyObject *op, PyObject *key) { long hash; - dictobject *mp = (dictobject *)op; - dictentry *ep; + PyDictObject *mp = (PyDictObject *)op; + PyDictEntry *ep; PyThreadState *tstate; if (!PyDict_Check(op)) return NULL; @@ -609,7 +607,7 @@ int PyDict_SetItem(register PyObject *op, PyObject *key, PyObject *value) { - register dictobject *mp; + register PyDictObject *mp; register long hash; register Py_ssize_t n_used; @@ -619,7 +617,7 @@ } assert(key); assert(value); - mp = (dictobject *)op; + mp = (PyDictObject *)op; if (PyString_CheckExact(key)) { hash = ((PyStringObject *)key)->ob_shash; if (hash == -1) @@ -658,9 +656,9 @@ int PyDict_DelItem(PyObject *op, PyObject *key) { - register dictobject *mp; + register PyDictObject *mp; register long hash; - register dictentry *ep; + register PyDictEntry *ep; PyObject *old_value, *old_key; if (!PyDict_Check(op)) { @@ -674,7 +672,7 @@ if (hash == -1) return -1; } - mp = (dictobject *)op; + mp = (PyDictObject *)op; ep = (mp->ma_lookup)(mp, key, hash); if (ep == NULL) return -1; @@ -696,18 +694,18 @@ void PyDict_Clear(PyObject *op) { - dictobject *mp; - dictentry *ep, *table; + PyDictObject *mp; + PyDictEntry *ep, *table; int table_is_malloced; Py_ssize_t fill; - dictentry small_copy[PyDict_MINSIZE]; + PyDictEntry small_copy[PyDict_MINSIZE]; #ifdef Py_DEBUG Py_ssize_t i, n; #endif if (!PyDict_Check(op)) return; - mp = (dictobject *)op; + mp = (PyDictObject *)op; #ifdef Py_DEBUG n = mp->ma_mask + 1; i = 0; @@ -782,15 +780,15 @@ { register Py_ssize_t i; register Py_ssize_t mask; - register dictentry *ep; + register PyDictEntry *ep; if (!PyDict_Check(op)) return 0; i = *ppos; if (i < 0) return 0; - ep = ((dictobject *)op)->ma_table; - mask = ((dictobject *)op)->ma_mask; + ep = ((PyDictObject *)op)->ma_table; + mask = ((PyDictObject *)op)->ma_mask; while (i <= mask && ep[i].me_value == NULL) i++; *ppos = i+1; @@ -809,15 +807,15 @@ { register Py_ssize_t i; register Py_ssize_t mask; - register dictentry *ep; + register PyDictEntry *ep; if (!PyDict_Check(op)) return 0; i = *ppos; if (i < 0) return 0; - ep = ((dictobject *)op)->ma_table; - mask = ((dictobject *)op)->ma_mask; + ep = ((PyDictObject *)op)->ma_table; + mask = ((PyDictObject *)op)->ma_mask; while (i <= mask && ep[i].me_value == NULL) i++; *ppos = i+1; @@ -834,9 +832,9 @@ /* Methods */ static void -dict_dealloc(register dictobject *mp) +dict_dealloc(register PyDictObject *mp) { - register dictentry *ep; + register PyDictEntry *ep; Py_ssize_t fill = mp->ma_fill; PyObject_GC_UnTrack(mp); Py_TRASHCAN_SAFE_BEGIN(mp) @@ -857,7 +855,7 @@ } static int -dict_print(register dictobject *mp, register FILE *fp, register int flags) +dict_print(register PyDictObject *mp, register FILE *fp, register int flags) { register Py_ssize_t i; register Py_ssize_t any; @@ -878,7 +876,7 @@ Py_END_ALLOW_THREADS any = 0; for (i = 0; i <= mp->ma_mask; i++) { - dictentry *ep = mp->ma_table + i; + PyDictEntry *ep = mp->ma_table + i; PyObject *pvalue = ep->me_value; if (pvalue != NULL) { /* Prevent PyObject_Repr from deleting value during @@ -913,7 +911,7 @@ } static PyObject * -dict_repr(dictobject *mp) +dict_repr(PyDictObject *mp) { Py_ssize_t i; PyObject *s, *temp, *colon = NULL; @@ -992,17 +990,17 @@ } static Py_ssize_t -dict_length(dictobject *mp) +dict_length(PyDictObject *mp) { return mp->ma_used; } static PyObject * -dict_subscript(dictobject *mp, register PyObject *key) +dict_subscript(PyDictObject *mp, register PyObject *key) { PyObject *v; long hash; - dictentry *ep; + PyDictEntry *ep; assert(mp->ma_table != NULL); if (!PyString_CheckExact(key) || (hash = ((PyStringObject *) key)->ob_shash) == -1) { @@ -1036,7 +1034,7 @@ } static int -dict_ass_sub(dictobject *mp, PyObject *v, PyObject *w) +dict_ass_sub(PyDictObject *mp, PyObject *v, PyObject *w) { if (w == NULL) return PyDict_DelItem((PyObject *)mp, v); @@ -1051,11 +1049,11 @@ }; static PyObject * -dict_keys(register dictobject *mp) +dict_keys(register PyDictObject *mp) { register PyObject *v; register Py_ssize_t i, j; - dictentry *ep; + PyDictEntry *ep; Py_ssize_t mask, n; again: @@ -1085,11 +1083,11 @@ } static PyObject * -dict_values(register dictobject *mp) +dict_values(register PyDictObject *mp) { register PyObject *v; register Py_ssize_t i, j; - dictentry *ep; + PyDictEntry *ep; Py_ssize_t mask, n; again: @@ -1119,13 +1117,13 @@ } static PyObject * -dict_items(register dictobject *mp) +dict_items(register PyDictObject *mp) { register PyObject *v; register Py_ssize_t i, j, n; Py_ssize_t mask; PyObject *item, *key, *value; - dictentry *ep; + PyDictEntry *ep; /* Preallocate the list of tuples, to avoid allocations during * the loop over the items, which could trigger GC, which @@ -1187,7 +1185,7 @@ return NULL; if (PyDict_CheckExact(d) && PyAnySet_CheckExact(seq)) { - dictobject *mp = (dictobject *)d; + PyDictObject *mp = (PyDictObject *)d; Py_ssize_t pos = 0; PyObject *key; long hash; @@ -1351,7 +1349,7 @@ { register PyDictObject *mp, *other; register Py_ssize_t i; - dictentry *entry; + PyDictEntry *entry; /* We accept for the argument either a concrete dictionary object, * or an abstract "mapping" object. For the former, we can do @@ -1362,9 +1360,9 @@ PyErr_BadInternalCall(); return -1; } - mp = (dictobject*)a; + mp = (PyDictObject*)a; if (PyDict_CheckExact(b)) { - other = (dictobject*)b; + other = (PyDictObject*)b; if (other == mp || other->ma_used == 0) /* a.update(a) or a.update({}); nothing to do */ return 0; @@ -1444,7 +1442,7 @@ } static PyObject * -dict_copy(register dictobject *mp) +dict_copy(register PyDictObject *mp) { return PyDict_Copy((PyObject*)mp); } @@ -1474,7 +1472,7 @@ PyErr_BadInternalCall(); return -1; } - return ((dictobject *)mp)->ma_used; + return ((PyDictObject *)mp)->ma_used; } PyObject * @@ -1484,7 +1482,7 @@ PyErr_BadInternalCall(); return NULL; } - return dict_keys((dictobject *)mp); + return dict_keys((PyDictObject *)mp); } PyObject * @@ -1494,7 +1492,7 @@ PyErr_BadInternalCall(); return NULL; } - return dict_values((dictobject *)mp); + return dict_values((PyDictObject *)mp); } PyObject * @@ -1504,7 +1502,7 @@ PyErr_BadInternalCall(); return NULL; } - return dict_items((dictobject *)mp); + return dict_items((PyDictObject *)mp); } /* Subroutine which returns the smallest key in a for which b's value @@ -1516,7 +1514,7 @@ them before the caller is done looking at them). */ static PyObject * -characterize(dictobject *a, dictobject *b, PyObject **pval) +characterize(PyDictObject *a, PyDictObject *b, PyObject **pval) { PyObject *akey = NULL; /* smallest key in a s.t. a[akey] != b[akey] */ PyObject *aval = NULL; /* a[akey] */ @@ -1590,7 +1588,7 @@ } static int -dict_compare(dictobject *a, dictobject *b) +dict_compare(PyDictObject *a, PyDictObject *b) { PyObject *adiff, *bdiff, *aval, *bval; int res; @@ -1642,7 +1640,7 @@ * Uses only Py_EQ comparison. */ static int -dict_equal(dictobject *a, dictobject *b) +dict_equal(PyDictObject *a, PyDictObject *b) { Py_ssize_t i; @@ -1687,7 +1685,7 @@ res = Py_NotImplemented; } else if (op == Py_EQ || op == Py_NE) { - cmp = dict_equal((dictobject *)v, (dictobject *)w); + cmp = dict_equal((PyDictObject *)v, (PyDictObject *)w); if (cmp < 0) return NULL; res = (cmp == (op == Py_EQ)) ? Py_True : Py_False; @@ -1699,10 +1697,10 @@ } static PyObject * -dict_contains(register dictobject *mp, PyObject *key) +dict_contains(register PyDictObject *mp, PyObject *key) { long hash; - dictentry *ep; + PyDictEntry *ep; if (!PyString_CheckExact(key) || (hash = ((PyStringObject *) key)->ob_shash) == -1) { @@ -1717,7 +1715,7 @@ } static PyObject * -dict_has_key(register dictobject *mp, PyObject *key) +dict_has_key(register PyDictObject *mp, PyObject *key) { if (Py_Py3kWarningFlag && PyErr_Warn(PyExc_DeprecationWarning, @@ -1727,13 +1725,13 @@ } static PyObject * -dict_get(register dictobject *mp, PyObject *args) +dict_get(register PyDictObject *mp, PyObject *args) { PyObject *key; PyObject *failobj = Py_None; PyObject *val = NULL; long hash; - dictentry *ep; + PyDictEntry *ep; if (!PyArg_UnpackTuple(args, "get", 1, 2, &key, &failobj)) return NULL; @@ -1756,13 +1754,13 @@ static PyObject * -dict_setdefault(register dictobject *mp, PyObject *args) +dict_setdefault(register PyDictObject *mp, PyObject *args) { PyObject *key; PyObject *failobj = Py_None; PyObject *val = NULL; long hash; - dictentry *ep; + PyDictEntry *ep; if (!PyArg_UnpackTuple(args, "setdefault", 1, 2, &key, &failobj)) return NULL; @@ -1788,17 +1786,17 @@ static PyObject * -dict_clear(register dictobject *mp) +dict_clear(register PyDictObject *mp) { PyDict_Clear((PyObject *)mp); Py_RETURN_NONE; } static PyObject * -dict_pop(dictobject *mp, PyObject *args) +dict_pop(PyDictObject *mp, PyObject *args) { long hash; - dictentry *ep; + PyDictEntry *ep; PyObject *old_value, *old_key; PyObject *key, *deflt = NULL; @@ -1841,10 +1839,10 @@ } static PyObject * -dict_popitem(dictobject *mp) +dict_popitem(PyDictObject *mp) { Py_ssize_t i = 0; - dictentry *ep; + PyDictEntry *ep; PyObject *res; /* Allocate the result tuple before checking the size. Believe it @@ -1923,22 +1921,22 @@ extern PyTypeObject PyDictIterKey_Type; /* Forward */ extern PyTypeObject PyDictIterValue_Type; /* Forward */ extern PyTypeObject PyDictIterItem_Type; /* Forward */ -static PyObject *dictiter_new(dictobject *, PyTypeObject *); +static PyObject *dictiter_new(PyDictObject *, PyTypeObject *); static PyObject * -dict_iterkeys(dictobject *dict) +dict_iterkeys(PyDictObject *dict) { return dictiter_new(dict, &PyDictIterKey_Type); } static PyObject * -dict_itervalues(dictobject *dict) +dict_itervalues(PyDictObject *dict) { return dictiter_new(dict, &PyDictIterValue_Type); } static PyObject * -dict_iteritems(dictobject *dict) +dict_iteritems(PyDictObject *dict) { return dictiter_new(dict, &PyDictIterItem_Type); } @@ -2041,8 +2039,8 @@ PyDict_Contains(PyObject *op, PyObject *key) { long hash; - dictobject *mp = (dictobject *)op; - dictentry *ep; + PyDictObject *mp = (PyDictObject *)op; + PyDictEntry *ep; if (!PyString_CheckExact(key) || (hash = ((PyStringObject *) key)->ob_shash) == -1) { @@ -2058,8 +2056,8 @@ int _PyDict_Contains(PyObject *op, PyObject *key, long hash) { - dictobject *mp = (dictobject *)op; - dictentry *ep; + PyDictObject *mp = (PyDictObject *)op; + PyDictEntry *ep; ep = (mp->ma_lookup)(mp, key, hash); return ep == NULL ? -1 : (ep->me_value != NULL); @@ -2113,7 +2111,7 @@ } static PyObject * -dict_iter(dictobject *dict) +dict_iter(PyDictObject *dict) { return dictiter_new(dict, &PyDictIterKey_Type); } @@ -2132,7 +2130,7 @@ PyTypeObject PyDict_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "dict", - sizeof(dictobject), + sizeof(PyDictObject), 0, (destructor)dict_dealloc, /* tp_dealloc */ (printfunc)dict_print, /* tp_print */ @@ -2217,7 +2215,7 @@ typedef struct { PyObject_HEAD - dictobject *di_dict; /* Set to NULL when iterator is exhausted */ + PyDictObject *di_dict; /* Set to NULL when iterator is exhausted */ Py_ssize_t di_used; Py_ssize_t di_pos; PyObject* di_result; /* reusable result tuple for iteritems */ @@ -2225,7 +2223,7 @@ } dictiterobject; static PyObject * -dictiter_new(dictobject *dict, PyTypeObject *itertype) +dictiter_new(PyDictObject *dict, PyTypeObject *itertype) { dictiterobject *di; di = PyObject_New(dictiterobject, itertype); @@ -2276,8 +2274,8 @@ { PyObject *key; register Py_ssize_t i, mask; - register dictentry *ep; - dictobject *d = di->di_dict; + register PyDictEntry *ep; + PyDictObject *d = di->di_dict; if (d == NULL) return NULL; @@ -2348,8 +2346,8 @@ { PyObject *value; register Py_ssize_t i, mask; - register dictentry *ep; - dictobject *d = di->di_dict; + register PyDictEntry *ep; + PyDictObject *d = di->di_dict; if (d == NULL) return NULL; @@ -2420,8 +2418,8 @@ { PyObject *key, *value, *result = di->di_result; register Py_ssize_t i, mask; - register dictentry *ep; - dictobject *d = di->di_dict; + register PyDictEntry *ep; + PyDictObject *d = di->di_dict; if (d == NULL) return NULL; From python-checkins at python.org Wed Oct 10 02:26:46 2007 From: python-checkins at python.org (raymond.hettinger) Date: Wed, 10 Oct 2007 02:26:46 +0200 (CEST) Subject: [Python-checkins] r58401 - in python/trunk: Doc/library/collections.rst Lib/test/test_deque.py Modules/_collectionsmodule.c Message-ID: <20071010002646.DEEF41E400D@bag.python.org> Author: raymond.hettinger Date: Wed Oct 10 02:26:46 2007 New Revision: 58401 Modified: python/trunk/Doc/library/collections.rst python/trunk/Lib/test/test_deque.py python/trunk/Modules/_collectionsmodule.c Log: Accept Jim Jewett's api suggestion to use None instead of -1 to indicate unbounded deques. Modified: python/trunk/Doc/library/collections.rst ============================================================================== --- python/trunk/Doc/library/collections.rst (original) +++ python/trunk/Doc/library/collections.rst Wed Oct 10 02:26:46 2007 @@ -51,7 +51,7 @@ .. versionadded:: 2.4 - If *maxlen* is not specified or is *-1*, deques may grow to an + If *maxlen* is not specified or is *None*, deques may grow to an arbitrary length. Otherwise, the deque is bounded to the specified maximum length. Once a bounded length deque is full, when new items are added, a corresponding number of items are discarded from the opposite end. Bounded Modified: python/trunk/Lib/test/test_deque.py ============================================================================== --- python/trunk/Lib/test/test_deque.py (original) +++ python/trunk/Lib/test/test_deque.py Wed Oct 10 02:26:46 2007 @@ -48,6 +48,7 @@ self.assertEqual(list(d), range(50, 150)) def test_maxlen(self): + self.assertRaises(ValueError, deque, 'abc', -1) self.assertRaises(ValueError, deque, 'abc', -2) d = deque(range(10), maxlen=3) self.assertEqual(repr(d), 'deque([7, 8, 9], maxlen=3)') @@ -73,7 +74,7 @@ fo.close() os.remove(test_support.TESTFN) - d = deque(range(10), maxlen=-1) + d = deque(range(10), maxlen=None) self.assertEqual(repr(d), 'deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])') try: fo = open(test_support.TESTFN, "wb") @@ -489,6 +490,22 @@ self.assertEqual(type(d), type(e)) self.assertEqual(list(d), list(e)) + d = Deque('abcde', maxlen=4) + + e = d.__copy__() + self.assertEqual(type(d), type(e)) + self.assertEqual(list(d), list(e)) + + e = Deque(d) + self.assertEqual(type(d), type(e)) + self.assertEqual(list(d), list(e)) + + s = pickle.dumps(d) + e = pickle.loads(s) + self.assertNotEqual(id(d), id(e)) + self.assertEqual(type(d), type(e)) + self.assertEqual(list(d), list(e)) + ## def test_pickle(self): ## d = Deque('abc') ## d.append(d) Modified: python/trunk/Modules/_collectionsmodule.c ============================================================================== --- python/trunk/Modules/_collectionsmodule.c (original) +++ python/trunk/Modules/_collectionsmodule.c Wed Oct 10 02:26:46 2007 @@ -598,8 +598,11 @@ static PyObject * deque_copy(PyObject *deque) { - return PyObject_CallFunction((PyObject *)(Py_Type(deque)), "Oi", - deque, ((dequeobject *)deque)->maxlen, NULL); + if (((dequeobject *)deque)->maxlen == -1) + return PyObject_CallFunction((PyObject *)(Py_Type(deque)), "O", deque, NULL); + else + return PyObject_CallFunction((PyObject *)(Py_Type(deque)), "Oi", + deque, ((dequeobject *)deque)->maxlen, NULL); } PyDoc_STRVAR(copy_doc, "Return a shallow copy of a deque."); @@ -617,10 +620,17 @@ Py_XDECREF(dict); return NULL; } - if (dict == NULL) - result = Py_BuildValue("O(Oi)", Py_Type(deque), aslist, deque->maxlen); - else - result = Py_BuildValue("O(Oi)O", Py_Type(deque), aslist, deque->maxlen, dict); + if (dict == NULL) { + if (deque->maxlen == -1) + result = Py_BuildValue("O(O)", Py_Type(deque), aslist); + else + result = Py_BuildValue("O(Oi)", Py_Type(deque), aslist, deque->maxlen); + } else { + if (deque->maxlen == -1) + result = Py_BuildValue("O(OO)O", Py_Type(deque), aslist, Py_None, dict); + else + result = Py_BuildValue("O(Oi)O", Py_Type(deque), aslist, deque->maxlen, dict); + } Py_XDECREF(dict); Py_DECREF(aslist); return result; @@ -797,14 +807,20 @@ deque_init(dequeobject *deque, PyObject *args, PyObject *kwdargs) { PyObject *iterable = NULL; + PyObject *maxlenobj = NULL; int maxlen = -1; char *kwlist[] = {"iterable", "maxlen", 0}; - if (!PyArg_ParseTupleAndKeywords(args, kwdargs, "|Oi:deque", kwlist, &iterable, &maxlen)) - return -1; - if (maxlen < -1) { - PyErr_SetString(PyExc_ValueError, "maxlen must be -1 or greater"); + if (!PyArg_ParseTupleAndKeywords(args, kwdargs, "|OO:deque", kwlist, &iterable, &maxlenobj)) return -1; + if (maxlenobj != NULL && maxlenobj != Py_None) { + maxlen = PyInt_AsLong(maxlenobj); + if (maxlen == -1 && PyErr_Occurred()) + return -1; + if (maxlen < 0) { + PyErr_SetString(PyExc_ValueError, "maxlen must be non-negative"); + return -1; + } } deque->maxlen = maxlen; if (iterable != NULL) { From python-checkins at python.org Wed Oct 10 02:55:40 2007 From: python-checkins at python.org (kurt.kaiser) Date: Wed, 10 Oct 2007 02:55:40 +0200 (CEST) Subject: [Python-checkins] r58403 - python/trunk/Lib/idlelib/NEWS.txt python/trunk/Lib/idlelib/configDialog.py Message-ID: <20071010005541.006601E400D@bag.python.org> Author: kurt.kaiser Date: Wed Oct 10 02:55:40 2007 New Revision: 58403 Modified: python/trunk/Lib/idlelib/NEWS.txt python/trunk/Lib/idlelib/configDialog.py Log: Allow cursor color change w/o restart. Patch 1725576 Tal Einat. Modified: python/trunk/Lib/idlelib/NEWS.txt ============================================================================== --- python/trunk/Lib/idlelib/NEWS.txt (original) +++ python/trunk/Lib/idlelib/NEWS.txt Wed Oct 10 02:55:40 2007 @@ -3,6 +3,8 @@ *Release date: XX-XXX-200X* +- Update cursor color without restarting. Patch 1725576 Tal Einat. + - Allow keyboard interrupt only when user code is executing in subprocess. Patch 1225 Tal Einat (reworked from IDLE-Spoon). Modified: python/trunk/Lib/idlelib/configDialog.py ============================================================================== --- python/trunk/Lib/idlelib/configDialog.py (original) +++ python/trunk/Lib/idlelib/configDialog.py Wed Oct 10 02:55:40 2007 @@ -1118,12 +1118,15 @@ def ActivateConfigChanges(self): "Dynamically apply configuration changes" winInstances=self.parent.instance_dict.keys() + theme = idleConf.CurrentTheme() + cursor_color = idleConf.GetHighlight(theme, 'cursor', fgBg='fg') for instance in winInstances: instance.ResetColorizer() instance.ResetFont() instance.set_notabs_indentwidth() instance.ApplyKeybindings() instance.reset_help_menu_entries() + instance.text.configure(insertbackground=cursor_color) def Cancel(self): self.destroy() From buildbot at python.org Wed Oct 10 02:56:49 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Oct 2007 00:56:49 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20071010005649.741191E400D@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/101 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllib2net sincerely, -The Buildbot From python-checkins at python.org Wed Oct 10 03:06:47 2007 From: python-checkins at python.org (kurt.kaiser) Date: Wed, 10 Oct 2007 03:06:47 +0200 (CEST) Subject: [Python-checkins] r58404 - python/trunk/Lib/idlelib/EditorWindow.py python/trunk/Lib/idlelib/NEWS.txt Message-ID: <20071010010647.92BE21E400D@bag.python.org> Author: kurt.kaiser Date: Wed Oct 10 03:06:47 2007 New Revision: 58404 Modified: python/trunk/Lib/idlelib/EditorWindow.py python/trunk/Lib/idlelib/NEWS.txt Log: show paste if > 80 columns. Patch 1659326 Tal Einat. Modified: python/trunk/Lib/idlelib/EditorWindow.py ============================================================================== --- python/trunk/Lib/idlelib/EditorWindow.py (original) +++ python/trunk/Lib/idlelib/EditorWindow.py Wed Oct 10 03:06:47 2007 @@ -414,6 +414,7 @@ def paste(self,event): self.text.event_generate("<>") + self.text.see("insert") return "break" def select_all(self, event=None): Modified: python/trunk/Lib/idlelib/NEWS.txt ============================================================================== --- python/trunk/Lib/idlelib/NEWS.txt (original) +++ python/trunk/Lib/idlelib/NEWS.txt Wed Oct 10 03:06:47 2007 @@ -3,6 +3,8 @@ *Release date: XX-XXX-200X* +- Show paste position if > 80 col. Patch 1659326 Tal Einat. + - Update cursor color without restarting. Patch 1725576 Tal Einat. - Allow keyboard interrupt only when user code is executing in subprocess. From buildbot at python.org Wed Oct 10 03:09:48 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Oct 2007 01:09:48 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20071010010948.2CD1A1E400D@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/266 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: brett.cannon BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Wed Oct 10 03:09:53 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Oct 2007 01:09:53 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071010010954.0F1131E400D@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/102 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib sincerely, -The Buildbot From buildbot at python.org Wed Oct 10 03:25:07 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Oct 2007 01:25:07 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20071010012507.BEB171E400D@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/2242 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_urllibnet make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Oct 10 03:37:32 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Oct 2007 01:37:32 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20071010013732.5F20A1E400D@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/2534 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Oct 10 05:00:26 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Oct 2007 03:00:26 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux 3.0 Message-ID: <20071010030026.DF2341E400D@bag.python.org> The Buildbot has detected a new failure of ARM Linux 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%203.0/builds/10 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-arm Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum,kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Wed Oct 10 06:27:16 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Oct 2007 04:27:16 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20071010042716.21A461E400D@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/2288 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket_ssl ====================================================================== ERROR: test_978833 (test.test_socket_ssl.BasicTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/test/test_socket_ssl.py", line 123, in test_978833 raise test_support.TestFailed("Failed to close socket") File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/contextlib.py", line 29, in __exit__ self.gen.throw(type, value, traceback) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/contextlib.py", line 113, in nested yield vars File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/test/test_socket_ssl.py", line 113, in test_978833 s.connect(("svn.python.org", 443)) File "", line 1, in connect error: [Errno 61] Connection refused make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Wed Oct 10 08:50:44 2007 From: python-checkins at python.org (thomas.heller) Date: Wed, 10 Oct 2007 08:50:44 +0200 (CEST) Subject: [Python-checkins] r58405 - in python/branches/ctypes-branch: Lib/ctypes/test/test_callbacks.py Modules/_ctypes/cfield.c Message-ID: <20071010065044.802FB1E400D@bag.python.org> Author: thomas.heller Date: Wed Oct 10 08:50:44 2007 New Revision: 58405 Modified: python/branches/ctypes-branch/Lib/ctypes/test/test_callbacks.py python/branches/ctypes-branch/Modules/_ctypes/cfield.c Log: Add some debug prints to find out whats going on. Modified: python/branches/ctypes-branch/Lib/ctypes/test/test_callbacks.py ============================================================================== --- python/branches/ctypes-branch/Lib/ctypes/test/test_callbacks.py (original) +++ python/branches/ctypes-branch/Lib/ctypes/test/test_callbacks.py Wed Oct 10 08:50:44 2007 @@ -1,4 +1,5 @@ import unittest +import sys from ctypes import * import _ctypes_test @@ -78,8 +79,14 @@ self.check_type(c_double, -3.14) def test_longdouble(self): + print >> sys.stderr, "First Test Start" self.check_type(c_longdouble, 3.14) - self.check_type(c_longdouble, -3.14) + print >> sys.stderr, "First Test Done" + print >> sys.stderr + + print >> sys.stderr, "Second Test Start" + self.check_type(c_longdouble, 2.78) + print >> sys.stderr, "Second Test Done" def test_char(self): self.check_type(c_char, "x") Modified: python/branches/ctypes-branch/Modules/_ctypes/cfield.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/cfield.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/cfield.c Wed Oct 10 08:50:44 2007 @@ -1001,6 +1001,7 @@ value->ob_type->tp_name); return NULL; } + fprintf(stderr, "D_set(%p, %f)\n", ptr, (float)x); memcpy(ptr, &x, sizeof(long double)); _RET(value); } @@ -1010,6 +1011,7 @@ { long double val; memcpy(&val, ptr, sizeof(long double)); + fprintf(stderr, "D_get(%p) -> %f\n", ptr, (float)val); return PyFloat_FromDouble(val); } From python-checkins at python.org Wed Oct 10 13:12:38 2007 From: python-checkins at python.org (thomas.heller) Date: Wed, 10 Oct 2007 13:12:38 +0200 (CEST) Subject: [Python-checkins] r58406 - python/branches/ctypes-branch/Modules/_ctypes/cfield.c Message-ID: <20071010111238.4ECAE1E400D@bag.python.org> Author: thomas.heller Date: Wed Oct 10 13:12:38 2007 New Revision: 58406 Modified: python/branches/ctypes-branch/Modules/_ctypes/cfield.c Log: More printing. Modified: python/branches/ctypes-branch/Modules/_ctypes/cfield.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/cfield.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/cfield.c Wed Oct 10 13:12:38 2007 @@ -993,7 +993,7 @@ D_set(void *ptr, PyObject *value, Py_ssize_t size) { long double x; - + int i; x = PyFloat_AsDouble(value); if (x == -1 && PyErr_Occurred()) { PyErr_Format(PyExc_TypeError, @@ -1001,8 +1001,11 @@ value->ob_type->tp_name); return NULL; } - fprintf(stderr, "D_set(%p, %f)\n", ptr, (float)x); memcpy(ptr, &x, sizeof(long double)); + fprintf(stderr, "D_set(%p, %f) (", ptr, (float)x); + for (i = 0; i < sizeof(long double); ++i) + fprintf(stderr, "%02x ", ((char *)ptr)[i] & 0xFF); + fprintf(stderr, ")\n"); _RET(value); } @@ -1010,8 +1013,12 @@ D_get(void *ptr, Py_ssize_t size) { long double val; + int i; memcpy(&val, ptr, sizeof(long double)); - fprintf(stderr, "D_get(%p) -> %f\n", ptr, (float)val); + fprintf(stderr, "D_get(%p) %f (", ptr, (float)val); + for (i = 0; i < sizeof(long double); ++i) + fprintf(stderr, "%02x ", ((char *)ptr)[i] & 0xFF); + fprintf(stderr, ")\n"); return PyFloat_FromDouble(val); } From buildbot at python.org Wed Oct 10 13:40:40 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Oct 2007 11:40:40 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 3.0 Message-ID: <20071010114040.4B2821E4021@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%203.0/builds/10 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: gregory.p.smith,guido.van.rossum,kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined sincerely, -The Buildbot From buildbot at python.org Thu Oct 11 06:48:34 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 04:48:34 +0000 Subject: [Python-checkins] buildbot failure in alpha Debian 3.0 Message-ID: <20071011044834.B309F1E4002@bag.python.org> The Buildbot has detected a new failure of alpha Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Debian%203.0/builds/29 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-alpha Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From nnorwitz at gmail.com Thu Oct 11 10:00:06 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 11 Oct 2007 04:00:06 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071011080006.GA10258@python.psfb.org> svn update tools/sphinx svn: PROPFIND request failed on '/projects/doctools/trunk/sphinx' svn: PROPFIND of '/projects/doctools/trunk/sphinx': could not connect to server (http://svn.python.org) make: *** [update] Error 1 From buildbot at python.org Thu Oct 11 13:01:45 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 11:01:45 +0000 Subject: [Python-checkins] buildbot failure in 2.5.msi Message-ID: <20071011110145.8381B1E4014@bag.python.org> The Buildbot has detected a new failure of 2.5.msi. Full details are available at: http://www.python.org/dev/buildbot/all/2.5.msi/builds/34 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: The Nightly scheduler named '2.5.msi' triggered this build Build Source Stamp: HEAD Blamelist: BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Thu Oct 11 14:01:41 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 12:01:41 +0000 Subject: [Python-checkins] buildbot failure in 2.6.msi Message-ID: <20071011120141.E58191E4004@bag.python.org> The Buildbot has detected a new failure of 2.6.msi. Full details are available at: http://www.python.org/dev/buildbot/all/2.6.msi/builds/37 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: The Nightly scheduler named '2.6.msi' triggered this build Build Source Stamp: HEAD Blamelist: BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Thu Oct 11 15:01:32 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 13:01:32 +0000 Subject: [Python-checkins] buildbot failure in 3.0.msi Message-ID: <20071011130133.026351E4004@bag.python.org> The Buildbot has detected a new failure of 3.0.msi. Full details are available at: http://www.python.org/dev/buildbot/all/3.0.msi/builds/41 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: The Nightly scheduler named '3.0.msi' triggered this build Build Source Stamp: HEAD Blamelist: BUILD FAILED: failed svn sincerely, -The Buildbot From python-checkins at python.org Thu Oct 11 21:51:33 2007 From: python-checkins at python.org (thomas.heller) Date: Thu, 11 Oct 2007 21:51:33 +0200 (CEST) Subject: [Python-checkins] r58415 - in python/trunk: Lib/ctypes/__init__.py Misc/NEWS Message-ID: <20071011195133.0D4001E4005@bag.python.org> Author: thomas.heller Date: Thu Oct 11 21:51:32 2007 New Revision: 58415 Modified: python/trunk/Lib/ctypes/__init__.py python/trunk/Misc/NEWS Log: On OS X, use os.uname() instead of gestalt.sysv(...) to get the operating system version. This allows to use ctypes when Python was configured with --disable-toolbox-glue. Modified: python/trunk/Lib/ctypes/__init__.py ============================================================================== --- python/trunk/Lib/ctypes/__init__.py (original) +++ python/trunk/Lib/ctypes/__init__.py Thu Oct 11 21:51:32 2007 @@ -24,19 +24,12 @@ DEFAULT_MODE = RTLD_LOCAL if _os.name == "posix" and _sys.platform == "darwin": - import gestalt - - # gestalt.gestalt("sysv") returns the version number of the - # currently active system file as BCD. - # On OS X 10.4.6 -> 0x1046 - # On OS X 10.2.8 -> 0x1028 - # See also http://www.rgaros.nl/gestalt/ - # # On OS X 10.3, we use RTLD_GLOBAL as default mode # because RTLD_LOCAL does not work at least on some - # libraries. + # libraries. OS X 10.3 is Darwin 7, so we check for + # that. - if gestalt.gestalt("sysv") < 0x1040: + if int(_os.uname()[2].split('.')[0]) < 8: DEFAULT_MODE = RTLD_GLOBAL from _ctypes import FUNCFLAG_CDECL as _FUNCFLAG_CDECL, \ Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Oct 11 21:51:32 2007 @@ -272,6 +272,9 @@ Library ------- +- Patch #1203: ctypes now does work on OS X when Python is built with + --disable-toolbox-glue + - collections.deque() now supports a "maxlen" argument. - itertools.count() is no longer bounded to LONG_MAX. Formerly, it raised From buildbot at python.org Thu Oct 11 21:56:41 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 19:56:41 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20071011195641.463101E4005@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/264 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Thu Oct 11 21:56:44 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 19:56:44 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20071011195644.EBA8D1E4005@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/2244 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Thu Oct 11 21:56:47 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 19:56:47 +0000 Subject: [Python-checkins] buildbot failure in x86 mvlgcc trunk Message-ID: <20071011195647.5C82C1E401B@bag.python.org> The Buildbot has detected a new failure of x86 mvlgcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20mvlgcc%20trunk/builds/875 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-linux Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Thu Oct 11 21:57:01 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 19:57:01 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc trunk Message-ID: <20071011195701.27FE61E4005@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%20trunk/builds/2346 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Thu Oct 11 21:57:06 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 19:57:06 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD trunk Message-ID: <20071011195706.E8B331E4005@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%20trunk/builds/55 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Thu Oct 11 21:58:10 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 19:58:10 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20071011195810.B8B6A1E4005@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/104 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Thu Oct 11 21:58:10 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 19:58:10 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 trunk Message-ID: <20071011195811.1A0521E4005@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%20trunk/builds/312 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Thu Oct 11 21:59:21 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 19:59:21 +0000 Subject: [Python-checkins] buildbot failure in x86 XP trunk Message-ID: <20071011195921.620221E4018@bag.python.org> The Buildbot has detected a new failure of x86 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP%20trunk/builds/689 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: mcintyre-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed svn sincerely, -The Buildbot From nnorwitz at gmail.com Thu Oct 11 22:00:04 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 11 Oct 2007 16:00:04 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071011200004.GA13148@python.psfb.org> svn update tools/sphinx svn: PROPFIND request failed on '/projects/doctools/trunk/sphinx' svn: PROPFIND of '/projects/doctools/trunk/sphinx': could not connect to server (http://svn.python.org) make: *** [update] Error 1 From buildbot at python.org Thu Oct 11 22:05:37 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Oct 2007 20:05:37 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071011200542.3145F1E4026@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/105 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed svn sincerely, -The Buildbot From python-checkins at python.org Fri Oct 12 05:01:02 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 12 Oct 2007 05:01:02 +0200 (CEST) Subject: [Python-checkins] r58419 - python/trunk/Makefile.pre.in Message-ID: <20071012030102.4CEC21E402F@bag.python.org> Author: neal.norwitz Date: Fri Oct 12 05:01:01 2007 New Revision: 58419 Modified: python/trunk/Makefile.pre.in Log: Get rid of warning about not being able to create an existing directory. Modified: python/trunk/Makefile.pre.in ============================================================================== --- python/trunk/Makefile.pre.in (original) +++ python/trunk/Makefile.pre.in Fri Oct 12 05:01:01 2007 @@ -475,7 +475,7 @@ $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) - -@ mkdir Include + -@$(INSTALL) -d Include -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) $(PGEN): $(PGENOBJS) From python-checkins at python.org Fri Oct 12 05:01:31 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 12 Oct 2007 05:01:31 +0200 (CEST) Subject: [Python-checkins] r58420 - in python/trunk/Modules/_ctypes/libffi/src: alpha/ffi.c ia64/ffi.c mips/ffi.c pa/ffi.c powerpc/ffi.c s390/ffi.c sparc/ffi.c Message-ID: <20071012030131.5F02B1E4026@bag.python.org> Author: neal.norwitz Date: Fri Oct 12 05:01:30 2007 New Revision: 58420 Modified: python/trunk/Modules/_ctypes/libffi/src/alpha/ffi.c python/trunk/Modules/_ctypes/libffi/src/ia64/ffi.c python/trunk/Modules/_ctypes/libffi/src/mips/ffi.c python/trunk/Modules/_ctypes/libffi/src/pa/ffi.c python/trunk/Modules/_ctypes/libffi/src/powerpc/ffi.c python/trunk/Modules/_ctypes/libffi/src/s390/ffi.c python/trunk/Modules/_ctypes/libffi/src/sparc/ffi.c Log: Get rid of warnings on a bunch of platforms by using a proper prototype. Modified: python/trunk/Modules/_ctypes/libffi/src/alpha/ffi.c ============================================================================== --- python/trunk/Modules/_ctypes/libffi/src/alpha/ffi.c (original) +++ python/trunk/Modules/_ctypes/libffi/src/alpha/ffi.c Fri Oct 12 05:01:30 2007 @@ -28,7 +28,7 @@ #include -extern void ffi_call_osf(void *, unsigned long, unsigned, void *, void (*)()); +extern void ffi_call_osf(void *, unsigned long, unsigned, void *, void (*)(void)); extern void ffi_closure_osf(void); @@ -58,7 +58,7 @@ } void -ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue) +ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { unsigned long *stack, *argp; long i, avn; Modified: python/trunk/Modules/_ctypes/libffi/src/ia64/ffi.c ============================================================================== --- python/trunk/Modules/_ctypes/libffi/src/ia64/ffi.c (original) +++ python/trunk/Modules/_ctypes/libffi/src/ia64/ffi.c Fri Oct 12 05:01:30 2007 @@ -259,10 +259,10 @@ return FFI_OK; } -extern int ffi_call_unix (struct ia64_args *, PTR64, void (*)(), UINT64); +extern int ffi_call_unix (struct ia64_args *, PTR64, void (*)(void), UINT64); void -ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue) +ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { struct ia64_args *stack; long i, avn, gpcount, fpcount; @@ -387,7 +387,7 @@ gp pointer to the closure. This allows the function entry code to both retrieve the user data, and to restire the correct gp pointer. */ -extern void ffi_closure_unix (); +extern void ffi_closure_unix (void); ffi_status ffi_prep_closure (ffi_closure* closure, Modified: python/trunk/Modules/_ctypes/libffi/src/mips/ffi.c ============================================================================== --- python/trunk/Modules/_ctypes/libffi/src/mips/ffi.c (original) +++ python/trunk/Modules/_ctypes/libffi/src/mips/ffi.c Fri Oct 12 05:01:30 2007 @@ -445,14 +445,14 @@ /* Low level routine for calling O32 functions */ extern int ffi_call_O32(void (*)(char *, extended_cif *, int, int), extended_cif *, unsigned, - unsigned, unsigned *, void (*)()); + unsigned, unsigned *, void (*)(void)); /* Low level routine for calling N32 functions */ extern int ffi_call_N32(void (*)(char *, extended_cif *, int, int), extended_cif *, unsigned, - unsigned, unsigned *, void (*)()); + unsigned, unsigned *, void (*)(void)); -void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue) +void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { extended_cif ecif; Modified: python/trunk/Modules/_ctypes/libffi/src/pa/ffi.c ============================================================================== --- python/trunk/Modules/_ctypes/libffi/src/pa/ffi.c (original) +++ python/trunk/Modules/_ctypes/libffi/src/pa/ffi.c Fri Oct 12 05:01:30 2007 @@ -345,12 +345,12 @@ /*@out@*/ extended_cif *, unsigned, unsigned, /*@out@*/ unsigned *, - void (*fn)()); + void (*fn)(void)); /*@=declundef@*/ /*@=exportheader@*/ void ffi_call(/*@dependent@*/ ffi_cif *cif, - void (*fn)(), + void (*fn)(void), /*@out@*/ void *rvalue, /*@dependent@*/ void **avalue) { Modified: python/trunk/Modules/_ctypes/libffi/src/powerpc/ffi.c ============================================================================== --- python/trunk/Modules/_ctypes/libffi/src/powerpc/ffi.c (original) +++ python/trunk/Modules/_ctypes/libffi/src/powerpc/ffi.c Fri Oct 12 05:01:30 2007 @@ -756,17 +756,17 @@ extern void ffi_call_SYSV(/*@out@*/ extended_cif *, unsigned, unsigned, /*@out@*/ unsigned *, - void (*fn)()); + void (*fn)(void)); extern void FFI_HIDDEN ffi_call_LINUX64(/*@out@*/ extended_cif *, unsigned long, unsigned long, /*@out@*/ unsigned long *, - void (*fn)()); + void (*fn)(void)); /*@=declundef@*/ /*@=exportheader@*/ void ffi_call(/*@dependent@*/ ffi_cif *cif, - void (*fn)(), + void (*fn)(void), /*@out@*/ void *rvalue, /*@dependent@*/ void **avalue) { Modified: python/trunk/Modules/_ctypes/libffi/src/s390/ffi.c ============================================================================== --- python/trunk/Modules/_ctypes/libffi/src/s390/ffi.c (original) +++ python/trunk/Modules/_ctypes/libffi/src/s390/ffi.c Fri Oct 12 05:01:30 2007 @@ -88,7 +88,7 @@ void (*)(unsigned char *, extended_cif *), unsigned, void *, - void (*fn)()); + void (*fn)(void)); extern void ffi_closure_SYSV(void); @@ -480,7 +480,7 @@ void ffi_call(ffi_cif *cif, - void (*fn)(), + void (*fn)(void), void *rvalue, void **avalue) { Modified: python/trunk/Modules/_ctypes/libffi/src/sparc/ffi.c ============================================================================== --- python/trunk/Modules/_ctypes/libffi/src/sparc/ffi.c (original) +++ python/trunk/Modules/_ctypes/libffi/src/sparc/ffi.c Fri Oct 12 05:01:30 2007 @@ -358,13 +358,13 @@ #ifdef SPARC64 extern int ffi_call_v9(void *, extended_cif *, unsigned, - unsigned, unsigned *, void (*fn)()); + unsigned, unsigned *, void (*fn)(void)); #else extern int ffi_call_v8(void *, extended_cif *, unsigned, - unsigned, unsigned *, void (*fn)()); + unsigned, unsigned *, void (*fn)(void)); #endif -void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue) +void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { extended_cif ecif; void *rval = rvalue; From python-checkins at python.org Fri Oct 12 05:01:55 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 12 Oct 2007 05:01:55 +0200 (CEST) Subject: [Python-checkins] r58421 - python/trunk/Modules/_bsddb.c Message-ID: <20071012030155.92A311E401B@bag.python.org> Author: neal.norwitz Date: Fri Oct 12 05:01:54 2007 New Revision: 58421 Modified: python/trunk/Modules/_bsddb.c Log: Get rid of compiler warning about retval being used (returned) without being initialized. (gcc warning and Coverity 202) Modified: python/trunk/Modules/_bsddb.c ============================================================================== --- python/trunk/Modules/_bsddb.c (original) +++ python/trunk/Modules/_bsddb.c Fri Oct 12 05:01:54 2007 @@ -4765,7 +4765,7 @@ { int err; DBT key; - PyObject *retval; + PyObject *retval = NULL; key.flags = DB_DBT_MALLOC; CHECK_SEQUENCE_NOT_CLOSED(self) MYDB_BEGIN_ALLOW_THREADS From python-checkins at python.org Fri Oct 12 05:03:23 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 12 Oct 2007 05:03:23 +0200 (CEST) Subject: [Python-checkins] r58422 - python/trunk/Modules/main.c Message-ID: <20071012030323.584B21E401B@bag.python.org> Author: neal.norwitz Date: Fri Oct 12 05:03:23 2007 New Revision: 58422 Modified: python/trunk/Modules/main.c Log: Fix Coverity 168: Close the file before returning (exiting). Modified: python/trunk/Modules/main.c ============================================================================== --- python/trunk/Modules/main.c (original) +++ python/trunk/Modules/main.c Fri Oct 12 05:03:23 2007 @@ -416,6 +416,7 @@ if (fstat(fileno(fp), &sb) == 0 && S_ISDIR(sb.st_mode)) { fprintf(stderr, "%s: '%s' is a directory, cannot continue\n", argv[0], filename); + fclose(fp); return 1; } } From python-checkins at python.org Fri Oct 12 05:04:19 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 12 Oct 2007 05:04:19 +0200 (CEST) Subject: [Python-checkins] r58423 - python/trunk/Parser/pgen.c Message-ID: <20071012030419.4A72F1E4018@bag.python.org> Author: neal.norwitz Date: Fri Oct 12 05:04:18 2007 New Revision: 58423 Modified: python/trunk/Parser/pgen.c Log: Fix Coverity 180: Don't overallocate. We don't need structs, but pointers. Also fix a memory leak. Modified: python/trunk/Parser/pgen.c ============================================================================== --- python/trunk/Parser/pgen.c (original) +++ python/trunk/Parser/pgen.c Fri Oct 12 05:04:18 2007 @@ -124,7 +124,7 @@ nf = newnfa(name); gr->gr_nfa = (nfa **)PyObject_REALLOC(gr->gr_nfa, - sizeof(nfa) * (gr->gr_nnfas + 1)); + sizeof(nfa*) * (gr->gr_nnfas + 1)); if (gr->gr_nfa == NULL) Py_FatalError("out of mem"); gr->gr_nfa[gr->gr_nnfas++] = nf; @@ -487,6 +487,7 @@ convert(d, xx_nstates, xx_state); /* XXX cleanup */ + PyObject_FREE(xx_state); } static void From python-checkins at python.org Fri Oct 12 05:05:19 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 12 Oct 2007 05:05:19 +0200 (CEST) Subject: [Python-checkins] r58424 - python/trunk/Python/marshal.c Message-ID: <20071012030519.60A121E4018@bag.python.org> Author: neal.norwitz Date: Fri Oct 12 05:05:19 2007 New Revision: 58424 Modified: python/trunk/Python/marshal.c Log: Fix Coverity 185-186: If the passed in FILE is NULL, uninitialized memory would be accessed. Will backport. Modified: python/trunk/Python/marshal.c ============================================================================== --- python/trunk/Python/marshal.c (original) +++ python/trunk/Python/marshal.c Fri Oct 12 05:05:19 2007 @@ -1013,6 +1013,7 @@ RFILE rf; rf.fp = fp; rf.strings = NULL; + rf.ptr = rf.end = NULL; return r_long(&rf); } @@ -1086,6 +1087,7 @@ rf.fp = fp; rf.strings = PyList_New(0); rf.depth = 0; + rf.ptr = rf.end = NULL; result = r_object(&rf); Py_DECREF(rf.strings); return result; From python-checkins at python.org Fri Oct 12 05:52:35 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 12 Oct 2007 05:52:35 +0200 (CEST) Subject: [Python-checkins] r58425 - python/trunk/Modules/_bsddb.c Message-ID: <20071012035235.1D03A1E4018@bag.python.org> Author: neal.norwitz Date: Fri Oct 12 05:52:34 2007 New Revision: 58425 Modified: python/trunk/Modules/_bsddb.c Log: Get this module to compile with bsddb versions prior to 4.3 Modified: python/trunk/Modules/_bsddb.c ============================================================================== --- python/trunk/Modules/_bsddb.c (original) +++ python/trunk/Modules/_bsddb.c Fri Oct 12 05:52:34 2007 @@ -5903,7 +5903,9 @@ bsddb_api.dbenv_type = &DBEnv_Type; bsddb_api.dbtxn_type = &DBTxn_Type; bsddb_api.dblock_type = &DBLock_Type; +#if (DBVER >= 43) bsddb_api.dbsequence_type = &DBSequence_Type; +#endif bsddb_api.makeDBError = makeDBError; py_api = PyCObject_FromVoidPtr((void*)&bsddb_api, NULL); From python-checkins at python.org Fri Oct 12 05:59:09 2007 From: python-checkins at python.org (neal.norwitz) Date: Fri, 12 Oct 2007 05:59:09 +0200 (CEST) Subject: [Python-checkins] r58426 - python/branches/release25-maint/Python/marshal.c Message-ID: <20071012035909.B68651E4018@bag.python.org> Author: neal.norwitz Date: Fri Oct 12 05:59:09 2007 New Revision: 58426 Modified: python/branches/release25-maint/Python/marshal.c Log: Backport 58424: Fix Coverity 185-186: If the passed in FILE is NULL, uninitialized memory would be accessed. Modified: python/branches/release25-maint/Python/marshal.c ============================================================================== --- python/branches/release25-maint/Python/marshal.c (original) +++ python/branches/release25-maint/Python/marshal.c Fri Oct 12 05:59:09 2007 @@ -1013,6 +1013,7 @@ RFILE rf; rf.fp = fp; rf.strings = NULL; + rf.ptr = rf.end = NULL; return r_long(&rf); } @@ -1086,6 +1087,7 @@ rf.fp = fp; rf.strings = PyList_New(0); rf.depth = 0; + rf.ptr = rf.end = NULL; result = r_object(&rf); Py_DECREF(rf.strings); return result; From buildbot at python.org Fri Oct 12 06:26:35 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 04:26:35 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD trunk Message-ID: <20071012042635.7936B1E4018@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%20trunk/builds/57 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socketserver sincerely, -The Buildbot From buildbot at python.org Fri Oct 12 06:32:58 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 04:32:58 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20071012043258.6D11A1E4019@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/106 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ssl sincerely, -The Buildbot From buildbot at python.org Fri Oct 12 06:49:48 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 04:49:48 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD 2.5 Message-ID: <20071012044949.408EC1E4018@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%202.5/builds/1 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllibnet sincerely, -The Buildbot From buildbot at python.org Fri Oct 12 06:57:14 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 04:57:14 +0000 Subject: [Python-checkins] buildbot failure in x86 XP 2.5 Message-ID: <20071012045714.8E39A1E4018@bag.python.org> The Buildbot has detected a new failure of x86 XP 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP%202.5/builds/298 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: mcintyre-windows Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: neal.norwitz BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Fri Oct 12 07:29:58 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 05:29:58 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071012053004.5C1191E4018@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/107 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 523, in __init__ self.handle() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 299, in handle_one_request self.raw_requestline = self.rfile.readline() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/socket.py", line 366, in readline data = self._sock.recv(self._rbufsize) error: [Errno 35] Resource temporarily unavailable Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '1001-1001-1001-1001-1001' Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '2000-2000-2000-2000-2000' Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '0002-0002-0002-0002-0002' 1 test failed: test_bsddb3 sincerely, -The Buildbot From python-checkins at python.org Fri Oct 12 08:53:33 2007 From: python-checkins at python.org (thomas.heller) Date: Fri, 12 Oct 2007 08:53:33 +0200 (CEST) Subject: [Python-checkins] r58427 - in python/branches/release25-maint: Misc/NEWS Modules/_ctypes/cfield.c Message-ID: <20071012065333.29B1A1E401C@bag.python.org> Author: thomas.heller Date: Fri Oct 12 08:53:32 2007 New Revision: 58427 Modified: python/branches/release25-maint/Misc/NEWS python/branches/release25-maint/Modules/_ctypes/cfield.c Log: Fix ctypes on 32-bit systems when Python is configured --with-system-ffi. See also https://bugs.launchpad.net/bugs/72505. Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Fri Oct 12 08:53:32 2007 @@ -32,6 +32,9 @@ Library ------- +- ctypes will now work correctly on 32-bit systems when Python is + configured with --with-system-ffi. + - Bug #1777530: ctypes.util.find_library uses dump(1) instead of objdump(1) on Solaris. Modified: python/branches/release25-maint/Modules/_ctypes/cfield.c ============================================================================== --- python/branches/release25-maint/Modules/_ctypes/cfield.c (original) +++ python/branches/release25-maint/Modules/_ctypes/cfield.c Fri Oct 12 08:53:32 2007 @@ -1549,17 +1549,21 @@ /* XXX Hm, sizeof(int) == sizeof(long) doesn't hold on every platform */ /* As soon as we can get rid of the type codes, this is no longer a problem */ #if SIZEOF_LONG == 4 - { 'l', l_set, l_get, &ffi_type_sint, l_set_sw, l_get_sw}, - { 'L', L_set, L_get, &ffi_type_uint, L_set_sw, L_get_sw}, + { 'l', l_set, l_get, &ffi_type_sint32, l_set_sw, l_get_sw}, + { 'L', L_set, L_get, &ffi_type_uint32, L_set_sw, L_get_sw}, #elif SIZEOF_LONG == 8 - { 'l', l_set, l_get, &ffi_type_slong, l_set_sw, l_get_sw}, - { 'L', L_set, L_get, &ffi_type_ulong, L_set_sw, L_get_sw}, + { 'l', l_set, l_get, &ffi_type_sint64, l_set_sw, l_get_sw}, + { 'L', L_set, L_get, &ffi_type_uint64, L_set_sw, L_get_sw}, #else # error #endif #ifdef HAVE_LONG_LONG - { 'q', q_set, q_get, &ffi_type_slong, q_set_sw, q_get_sw}, - { 'Q', Q_set, Q_get, &ffi_type_ulong, Q_set_sw, Q_get_sw}, +#if SIZEOF_LONG_LONG == 8 + { 'q', q_set, q_get, &ffi_type_sint64, q_set_sw, q_get_sw}, + { 'Q', Q_set, Q_get, &ffi_type_uint64, Q_set_sw, Q_get_sw}, +#else +# error +#endif #endif { 'P', P_set, P_get, &ffi_type_pointer}, { 'z', z_set, z_get, &ffi_type_pointer}, From python-checkins at python.org Fri Oct 12 09:17:23 2007 From: python-checkins at python.org (brett.cannon) Date: Fri, 12 Oct 2007 09:17:23 +0200 (CEST) Subject: [Python-checkins] r58428 - sandbox/trunk/import_in_py/Py3K/_importlib.py Message-ID: <20071012071723.C7B011E4031@bag.python.org> Author: brett.cannon Date: Fri Oct 12 09:17:22 2007 New Revision: 58428 Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py Log: Handle the issue of when open() is not defined. Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/_importlib.py (original) +++ sandbox/trunk/import_in_py/Py3K/_importlib.py Fri Oct 12 09:17:22 2007 @@ -131,6 +131,63 @@ trimmed_path_len = len(path) - len(ext) return imp._case_ok(path, trimmed_path_len, module_name) +def open_(path, flags): + """Stand-in replacement for open() in case it is not available yet.""" + try: + raise NameError + return open(path, flags) + except NameError: + return DinkyFile(path, flags) + +class DinkyFile(object): + + """Dinky replacement of a file object.""" + + def __init__(self, path, flags): + self.writing = 'w' in flags + self.binary = 'b' in flags + if self.writing: + posix_flags = _os.O_WRONLY | _os.O_CREAT + else: + posix_flags = _os.O_RDONLY + self.fd = _os.open(path, posix_flags) + + def read(self): + if self.writing: + raise TypeError("file not opened for reading") + hunk_size = 8 * 1024 + read_out = bytes() + while True: + just_read = _os.read(self.fd, hunk_size) + if not just_read: + break + read_out.extend(just_read) + if len(just_read) < hunk_size: + break + if self.binary: + return read_out + else: + return read_out.decode("utf8") + + def write(self, data): + if not self.writing or not self.binary: + raise TypeError("file not opened for writing binary") + _os.write(self.fd, data) + + def close(self): + if hasattr(self, 'fd') and self.fd != -1: + _os.close(self.fd) + self.fd = -1 + + def __del__(self): + self.close() + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + class _BuiltinFrozenBaseImporter(object): @@ -482,7 +539,7 @@ """ source_path = self._source_path() if source_path: - return open(source_path, 'U').read() + return open_(source_path, 'U').read() elif self._bytecode_path(): return None else: @@ -498,7 +555,7 @@ """ try: - with open(self._bytecode_path(), 'rb') as bytecode_file: + with open_(self._bytecode_path(), 'rb') as bytecode_file: data = bytecode_file.read() return data[:4], marshal._r_long(data[4:8]), data[8:] except AttributeError: @@ -518,7 +575,7 @@ if not bytecode_path: bytecode_path = self._base_path + suffix_list(imp.PY_COMPILED)[0] try: - with open(bytecode_path, 'wb') as bytecode_file: + with open_(bytecode_path, 'wb') as bytecode_file: bytecode_file.write(imp.get_magic()) bytecode_file.write(marshal._w_long(timestamp)) bytecode_file.write(data) @@ -531,7 +588,7 @@ def get_data(self, path): """Return the data from path as raw bytes.""" - return open(path, 'rb').read() + return open_(path, 'rb').read() @check_name def is_package(self, fullname): From buildbot at python.org Fri Oct 12 09:19:29 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 07:19:29 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 2.5 Message-ID: <20071012071929.D97551E401C@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%202.5/builds/364 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: thomas.heller BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Oct 12 09:41:26 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 07:41:26 +0000 Subject: [Python-checkins] buildbot failure in alpha Tru64 5.1 2.5 Message-ID: <20071012074126.587C01E401C@bag.python.org> The Buildbot has detected a new failure of alpha Tru64 5.1 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Tru64%205.1%202.5/builds/329 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-tru64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: thomas.heller BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Fri Oct 12 10:56:52 2007 From: python-checkins at python.org (martin.v.loewis) Date: Fri, 12 Oct 2007 10:56:52 +0200 (CEST) Subject: [Python-checkins] r58430 - in python/trunk: Misc/NEWS PC/pyconfig.h Message-ID: <20071012085652.6973E1E401C@bag.python.org> Author: martin.v.loewis Date: Fri Oct 12 10:56:52 2007 New Revision: 58430 Modified: python/trunk/Misc/NEWS python/trunk/PC/pyconfig.h Log: Bug #1216: Restore support for Visual Studio 2002. Will backport to 2.5. Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Fri Oct 12 10:56:52 2007 @@ -1063,6 +1063,8 @@ - Conditionalize definition of _CRT_SECURE_NO_DEPRECATE and _CRT_NONSTDC_NO_DEPRECATE. +- Bug #1216: Restore support for Visual Studio 2002. + Mac --- Modified: python/trunk/PC/pyconfig.h ============================================================================== --- python/trunk/PC/pyconfig.h (original) +++ python/trunk/PC/pyconfig.h Fri Oct 12 10:56:52 2007 @@ -377,11 +377,11 @@ define these. If some compiler does not provide them, modify the #if appropriately. */ #if defined(_MSC_VER) -#if _MSC_VER > 1201 +#if _MSC_VER > 1300 #define HAVE_UINTPTR_T 1 #define HAVE_INTPTR_T 1 #else -/* VC6 & eVC4 don't support the C99 LL suffix for 64-bit integer literals */ +/* VC6, VS 2002 and eVC4 don't support the C99 LL suffix for 64-bit integer literals */ #define Py_LL(x) x##I64 #endif /* _MSC_VER > 1200 */ #endif /* _MSC_VER */ From python-checkins at python.org Fri Oct 12 10:58:48 2007 From: python-checkins at python.org (martin.v.loewis) Date: Fri, 12 Oct 2007 10:58:48 +0200 (CEST) Subject: [Python-checkins] r58431 - in python/branches/release25-maint: Misc/NEWS PC/pyconfig.h Message-ID: <20071012085848.A716B1E401C@bag.python.org> Author: martin.v.loewis Date: Fri Oct 12 10:58:48 2007 New Revision: 58431 Modified: python/branches/release25-maint/Misc/NEWS python/branches/release25-maint/PC/pyconfig.h Log: Bug #1216: Restore support for Visual Studio 2002. Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Fri Oct 12 10:58:48 2007 @@ -151,6 +151,11 @@ - Makefile.pre.in(buildbottest): Run an optional script pybuildbot.identify to include some information about the build environment. +Windows +------- + +- Bug #1216: Restore support for Visual Studio 2002. + What's New in Python 2.5.1? ============================= Modified: python/branches/release25-maint/PC/pyconfig.h ============================================================================== --- python/branches/release25-maint/PC/pyconfig.h (original) +++ python/branches/release25-maint/PC/pyconfig.h Fri Oct 12 10:58:48 2007 @@ -350,11 +350,11 @@ define these. If some compiler does not provide them, modify the #if appropriately. */ #if defined(_MSC_VER) -#if _MSC_VER > 1201 +#if _MSC_VER > 1300 #define HAVE_UINTPTR_T 1 #define HAVE_INTPTR_T 1 #else -/* VC6 & eVC4 don't support the C99 LL suffix for 64-bit integer literals */ +/* VC6, VS 2002 and eVC4 don't support the C99 LL suffix for 64-bit integer literals */ #define Py_LL(x) x##I64 #endif /* _MSC_VER > 1200 */ #endif /* _MSC_VER */ From buildbot at python.org Fri Oct 12 11:25:55 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 09:25:55 +0000 Subject: [Python-checkins] buildbot failure in x86 mvlgcc trunk Message-ID: <20071012092555.90F111E401D@bag.python.org> The Buildbot has detected a new failure of x86 mvlgcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20mvlgcc%20trunk/builds/878 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-linux Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Oct 12 11:47:13 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 09:47:13 +0000 Subject: [Python-checkins] buildbot failure in x86 XP trunk Message-ID: <20071012094713.AA1341E401D@bag.python.org> The Buildbot has detected a new failure of x86 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP%20trunk/builds/692 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: mcintyre-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From nnorwitz at gmail.com Fri Oct 12 11:58:51 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 12 Oct 2007 05:58:51 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20071012095851.GA12349@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 /tmp/python-test/local/lib/python2.6/bsddb/test/test_1413192.py:32: RuntimeWarning: DBTxn aborted in destructor. No prior commit() or abort(). del self.the_txn test test_bsddb3 failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_dbtables.py", line 188, in test03 assert values[0]['b'] == "bad" AssertionError test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:60: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ss = socket.ssl(s) test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7359 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 307 tests OK. 1 test failed: test_bsddb3 21 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_gl test_imageop test_imgfile test_ioctl test_macostools test_pep277 test_plistlib test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [516606 refs] From buildbot at python.org Fri Oct 12 12:38:22 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 10:38:22 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 2.5 Message-ID: <20071012103822.86F751E401D@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%202.5/builds/417 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Oct 12 14:08:51 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 12:08:51 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071012120851.9CB741E401D@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/212 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 238, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Fri Oct 12 19:41:08 2007 From: python-checkins at python.org (brett.cannon) Date: Fri, 12 Oct 2007 19:41:08 +0200 (CEST) Subject: [Python-checkins] r58432 - python/branches/release25-maint/Modules/main.c Message-ID: <20071012174108.63C631E4022@bag.python.org> Author: brett.cannon Date: Fri Oct 12 19:41:08 2007 New Revision: 58432 Modified: python/branches/release25-maint/Modules/main.c Log: Silence a compiler warning about a function definition not being a prototype. Modified: python/branches/release25-maint/Modules/main.c ============================================================================== --- python/branches/release25-maint/Modules/main.c (original) +++ python/branches/release25-maint/Modules/main.c Fri Oct 12 19:41:08 2007 @@ -182,7 +182,7 @@ "threading" threads have completed. */ #include "abstract.h" static void -WaitForThreadShutdown() +WaitForThreadShutdown(void) { #ifdef WITH_THREAD PyObject *result; From python-checkins at python.org Fri Oct 12 19:53:12 2007 From: python-checkins at python.org (raymond.hettinger) Date: Fri, 12 Oct 2007 19:53:12 +0200 (CEST) Subject: [Python-checkins] r58433 - python/trunk/Lib/test/test_itertools.py Message-ID: <20071012175312.3BD5A1E4022@bag.python.org> Author: raymond.hettinger Date: Fri Oct 12 19:53:11 2007 New Revision: 58433 Modified: python/trunk/Lib/test/test_itertools.py Log: Fix test of count.__repr__() to ignore the 'L' if the count is a long Modified: python/trunk/Lib/test/test_itertools.py ============================================================================== --- python/trunk/Lib/test/test_itertools.py (original) +++ python/trunk/Lib/test/test_itertools.py Fri Oct 12 19:53:11 2007 @@ -67,7 +67,10 @@ c.next() self.assertEqual(c.next(), -8) for i in (-sys.maxint-5, -sys.maxint+5 ,-10, -1, 0, 10, sys.maxint-5, sys.maxint+5): - self.assertEqual(repr(count(i)), 'count(%r)' % i) + # Test repr (ignoring the L in longs) + r1 = repr(count(i)).replace('L', '') + r2 = 'count(%r)'.__mod__(i).replace('L', '') + self.assertEqual(r1, r2) def test_cycle(self): self.assertEqual(take(10, cycle('abc')), list('abcabcabca')) From buildbot at python.org Fri Oct 12 20:32:27 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 18:32:27 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20071012183228.093551E4028@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/2248 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_bsddb3 test_urllib2net make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Fri Oct 12 20:44:06 2007 From: python-checkins at python.org (gregory.p.smith) Date: Fri, 12 Oct 2007 20:44:06 +0200 (CEST) Subject: [Python-checkins] r58434 - in python/trunk/Lib/bsddb: dbshelve.py test/test_dbshelve.py Message-ID: <20071012184406.DE9FA1E4022@bag.python.org> Author: gregory.p.smith Date: Fri Oct 12 20:44:06 2007 New Revision: 58434 Modified: python/trunk/Lib/bsddb/dbshelve.py python/trunk/Lib/bsddb/test/test_dbshelve.py Log: Fixes http://bugs.python.org/issue1233 - bsddb.dbshelve.DBShelf.append was useless due to inverted logic. Also adds a test case for RECNO dbs to test_dbshelve. Modified: python/trunk/Lib/bsddb/dbshelve.py ============================================================================== --- python/trunk/Lib/bsddb/dbshelve.py (original) +++ python/trunk/Lib/bsddb/dbshelve.py Fri Oct 12 20:44:06 2007 @@ -84,6 +84,9 @@ #--------------------------------------------------------------------------- +class DBShelveError(db.DBError): pass + + class DBShelf(DictMixin): """A shelf to hold pickled objects, built upon a bsddb DB object. It automatically pickles/unpickles data objects going to/from the DB. @@ -162,10 +165,10 @@ return self.db.append(data, txn) def append(self, value, txn=None): - if self.get_type() != db.DB_RECNO: + if self.get_type() == db.DB_RECNO: self.append = self.__append return self.append(value, txn=txn) - raise db.DBError, "append() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO" + raise DBShelveError, "append() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO" def associate(self, secondaryDB, callback, flags=0): Modified: python/trunk/Lib/bsddb/test/test_dbshelve.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_dbshelve.py (original) +++ python/trunk/Lib/bsddb/test/test_dbshelve.py Fri Oct 12 20:44:06 2007 @@ -41,17 +41,22 @@ except os.error: pass + def mk(self, key): + """Turn key into an appropriate key type for this db""" + # override in child class for RECNO + return key + def populateDB(self, d): for x in string.letters: - d['S' + x] = 10 * x # add a string - d['I' + x] = ord(x) # add an integer - d['L' + x] = [x] * 10 # add a list + d[self.mk('S' + x)] = 10 * x # add a string + d[self.mk('I' + x)] = ord(x) # add an integer + d[self.mk('L' + x)] = [x] * 10 # add a list inst = DataClass() # add an instance inst.S = 10 * x inst.I = ord(x) inst.L = [x] * 10 - d['O' + x] = inst + d[self.mk('O' + x)] = inst # overridable in derived classes to affect how the shelf is created/opened @@ -85,14 +90,14 @@ print "keys:", k print "stats:", s - assert 0 == d.has_key('bad key') - assert 1 == d.has_key('IA') - assert 1 == d.has_key('OA') - - d.delete('IA') - del d['OA'] - assert 0 == d.has_key('IA') - assert 0 == d.has_key('OA') + assert 0 == d.has_key(self.mk('bad key')) + assert 1 == d.has_key(self.mk('IA')) + assert 1 == d.has_key(self.mk('OA')) + + d.delete(self.mk('IA')) + del d[self.mk('OA')] + assert 0 == d.has_key(self.mk('IA')) + assert 0 == d.has_key(self.mk('OA')) assert len(d) == l-2 values = [] @@ -115,18 +120,18 @@ for key, value in items: self.checkrec(key, value) - assert d.get('bad key') == None - assert d.get('bad key', None) == None - assert d.get('bad key', 'a string') == 'a string' - assert d.get('bad key', [1, 2, 3]) == [1, 2, 3] + assert d.get(self.mk('bad key')) == None + assert d.get(self.mk('bad key'), None) == None + assert d.get(self.mk('bad key'), 'a string') == 'a string' + assert d.get(self.mk('bad key'), [1, 2, 3]) == [1, 2, 3] d.set_get_returns_none(0) - self.assertRaises(db.DBNotFoundError, d.get, 'bad key') + self.assertRaises(db.DBNotFoundError, d.get, self.mk('bad key')) d.set_get_returns_none(1) - d.put('new key', 'new data') - assert d.get('new key') == 'new data' - assert d['new key'] == 'new data' + d.put(self.mk('new key'), 'new data') + assert d.get(self.mk('new key')) == 'new data' + assert d[self.mk('new key')] == 'new data' @@ -165,14 +170,24 @@ assert count == len(d) - c.set('SS') + c.set(self.mk('SS')) key, value = c.current() self.checkrec(key, value) del c + def test03_append(self): + # NOTE: this is overridden in RECNO subclass, don't change its name. + if verbose: + print '\n', '-=' * 30 + print "Running %s.test03_append..." % self.__class__.__name__ + + self.assertRaises(dbshelve.DBShelveError, + self.d.append, 'unit test was here') + def checkrec(self, key, value): + # override this in a subclass if the key type is different x = key[1] if key[0] == 'S': assert type(value) == StringType @@ -281,7 +296,43 @@ #---------------------------------------------------------------------- -# TODO: Add test cases for a DBShelf in a RECNO DB. +# test cases for a DBShelf in a RECNO DB. + +class RecNoShelveTestCase(BasicShelveTestCase): + dbtype = db.DB_RECNO + dbflags = db.DB_CREATE + + def setUp(self): + BasicShelveTestCase.setUp(self) + + # pool to assign integer key values out of + self.key_pool = list(range(1, 5000)) + self.key_map = {} # map string keys to the number we gave them + self.intkey_map = {} # reverse map of above + + def mk(self, key): + if key not in self.key_map: + self.key_map[key] = self.key_pool.pop(0) + self.intkey_map[self.key_map[key]] = key + return self.key_map[key] + + def checkrec(self, intkey, value): + key = self.intkey_map[intkey] + BasicShelveTestCase.checkrec(self, key, value) + + def test03_append(self): + if verbose: + print '\n', '-=' * 30 + print "Running %s.test03_append..." % self.__class__.__name__ + + self.d[1] = 'spam' + self.d[5] = 'eggs' + self.assertEqual(6, self.d.append('spam')) + self.assertEqual(7, self.d.append('baked beans')) + self.assertEqual('spam', self.d.get(6)) + self.assertEqual('spam', self.d.get(1)) + self.assertEqual('baked beans', self.d.get(7)) + self.assertEqual('eggs', self.d.get(5)) #---------------------------------------------------------------------- @@ -298,6 +349,7 @@ suite.addTest(unittest.makeSuite(EnvHashShelveTestCase)) suite.addTest(unittest.makeSuite(EnvThreadBTreeShelveTestCase)) suite.addTest(unittest.makeSuite(EnvThreadHashShelveTestCase)) + suite.addTest(unittest.makeSuite(RecNoShelveTestCase)) return suite From buildbot at python.org Fri Oct 12 20:45:11 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 18:45:11 +0000 Subject: [Python-checkins] buildbot failure in alpha Tru64 5.1 2.5 Message-ID: <20071012184511.DB14F1E402D@bag.python.org> The Buildbot has detected a new failure of alpha Tru64 5.1 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Tru64%205.1%202.5/builds/331 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-tru64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket sincerely, -The Buildbot From python-checkins at python.org Fri Oct 12 20:49:37 2007 From: python-checkins at python.org (gregory.p.smith) Date: Fri, 12 Oct 2007 20:49:37 +0200 (CEST) Subject: [Python-checkins] r58435 - in python/branches/release25-maint: Lib/bsddb/dbshelve.py Lib/bsddb/test/test_dbshelve.py Misc/NEWS Message-ID: <20071012184937.4F8A01E4029@bag.python.org> Author: gregory.p.smith Date: Fri Oct 12 20:49:36 2007 New Revision: 58435 Modified: python/branches/release25-maint/Lib/bsddb/dbshelve.py python/branches/release25-maint/Lib/bsddb/test/test_dbshelve.py python/branches/release25-maint/Misc/NEWS Log: Merge trunk 58434: Fixes http://bugs.python.org/issue1233 - bsddb.dbshelve.DBShelf.append was useless due to inverted logic. Also adds a test case for RECNO dbs to test_dbshelve. Modified: python/branches/release25-maint/Lib/bsddb/dbshelve.py ============================================================================== --- python/branches/release25-maint/Lib/bsddb/dbshelve.py (original) +++ python/branches/release25-maint/Lib/bsddb/dbshelve.py Fri Oct 12 20:49:36 2007 @@ -75,6 +75,9 @@ #--------------------------------------------------------------------------- +class DBShelveError(db.DBError): pass + + class DBShelf(DictMixin): """A shelf to hold pickled objects, built upon a bsddb DB object. It automatically pickles/unpickles data objects going to/from the DB. @@ -150,10 +153,10 @@ return self.db.append(data, txn) def append(self, value, txn=None): - if self.get_type() != db.DB_RECNO: + if self.get_type() == db.DB_RECNO: self.append = self.__append return self.append(value, txn=txn) - raise db.DBError, "append() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO" + raise DBShelveError, "append() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO" def associate(self, secondaryDB, callback, flags=0): Modified: python/branches/release25-maint/Lib/bsddb/test/test_dbshelve.py ============================================================================== --- python/branches/release25-maint/Lib/bsddb/test/test_dbshelve.py (original) +++ python/branches/release25-maint/Lib/bsddb/test/test_dbshelve.py Fri Oct 12 20:49:36 2007 @@ -41,17 +41,22 @@ except os.error: pass + def mk(self, key): + """Turn key into an appropriate key type for this db""" + # override in child class for RECNO + return key + def populateDB(self, d): for x in string.letters: - d['S' + x] = 10 * x # add a string - d['I' + x] = ord(x) # add an integer - d['L' + x] = [x] * 10 # add a list + d[self.mk('S' + x)] = 10 * x # add a string + d[self.mk('I' + x)] = ord(x) # add an integer + d[self.mk('L' + x)] = [x] * 10 # add a list inst = DataClass() # add an instance inst.S = 10 * x inst.I = ord(x) inst.L = [x] * 10 - d['O' + x] = inst + d[self.mk('O' + x)] = inst # overridable in derived classes to affect how the shelf is created/opened @@ -85,14 +90,14 @@ print "keys:", k print "stats:", s - assert 0 == d.has_key('bad key') - assert 1 == d.has_key('IA') - assert 1 == d.has_key('OA') - - d.delete('IA') - del d['OA'] - assert 0 == d.has_key('IA') - assert 0 == d.has_key('OA') + assert 0 == d.has_key(self.mk('bad key')) + assert 1 == d.has_key(self.mk('IA')) + assert 1 == d.has_key(self.mk('OA')) + + d.delete(self.mk('IA')) + del d[self.mk('OA')] + assert 0 == d.has_key(self.mk('IA')) + assert 0 == d.has_key(self.mk('OA')) assert len(d) == l-2 values = [] @@ -115,18 +120,18 @@ for key, value in items: self.checkrec(key, value) - assert d.get('bad key') == None - assert d.get('bad key', None) == None - assert d.get('bad key', 'a string') == 'a string' - assert d.get('bad key', [1, 2, 3]) == [1, 2, 3] + assert d.get(self.mk('bad key')) == None + assert d.get(self.mk('bad key'), None) == None + assert d.get(self.mk('bad key'), 'a string') == 'a string' + assert d.get(self.mk('bad key'), [1, 2, 3]) == [1, 2, 3] d.set_get_returns_none(0) - self.assertRaises(db.DBNotFoundError, d.get, 'bad key') + self.assertRaises(db.DBNotFoundError, d.get, self.mk('bad key')) d.set_get_returns_none(1) - d.put('new key', 'new data') - assert d.get('new key') == 'new data' - assert d['new key'] == 'new data' + d.put(self.mk('new key'), 'new data') + assert d.get(self.mk('new key')) == 'new data' + assert d[self.mk('new key')] == 'new data' @@ -165,14 +170,24 @@ assert count == len(d) - c.set('SS') + c.set(self.mk('SS')) key, value = c.current() self.checkrec(key, value) del c + def test03_append(self): + # NOTE: this is overridden in RECNO subclass, don't change its name. + if verbose: + print '\n', '-=' * 30 + print "Running %s.test03_append..." % self.__class__.__name__ + + self.assertRaises(dbshelve.DBShelveError, + self.d.append, 'unit test was here') + def checkrec(self, key, value): + # override this in a subclass if the key type is different x = key[1] if key[0] == 'S': assert type(value) == StringType @@ -281,7 +296,43 @@ #---------------------------------------------------------------------- -# TODO: Add test cases for a DBShelf in a RECNO DB. +# test cases for a DBShelf in a RECNO DB. + +class RecNoShelveTestCase(BasicShelveTestCase): + dbtype = db.DB_RECNO + dbflags = db.DB_CREATE + + def setUp(self): + BasicShelveTestCase.setUp(self) + + # pool to assign integer key values out of + self.key_pool = list(range(1, 5000)) + self.key_map = {} # map string keys to the number we gave them + self.intkey_map = {} # reverse map of above + + def mk(self, key): + if key not in self.key_map: + self.key_map[key] = self.key_pool.pop(0) + self.intkey_map[self.key_map[key]] = key + return self.key_map[key] + + def checkrec(self, intkey, value): + key = self.intkey_map[intkey] + BasicShelveTestCase.checkrec(self, key, value) + + def test03_append(self): + if verbose: + print '\n', '-=' * 30 + print "Running %s.test03_append..." % self.__class__.__name__ + + self.d[1] = 'spam' + self.d[5] = 'eggs' + self.assertEqual(6, self.d.append('spam')) + self.assertEqual(7, self.d.append('baked beans')) + self.assertEqual('spam', self.d.get(6)) + self.assertEqual('spam', self.d.get(1)) + self.assertEqual('baked beans', self.d.get(7)) + self.assertEqual('eggs', self.d.get(5)) #---------------------------------------------------------------------- @@ -298,6 +349,7 @@ suite.addTest(unittest.makeSuite(EnvHashShelveTestCase)) suite.addTest(unittest.makeSuite(EnvThreadBTreeShelveTestCase)) suite.addTest(unittest.makeSuite(EnvThreadHashShelveTestCase)) + suite.addTest(unittest.makeSuite(RecNoShelveTestCase)) return suite Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Fri Oct 12 20:49:36 2007 @@ -115,6 +115,9 @@ - Bug #1721309: prevent bsddb module from freeing random memory. +- Bug #1233: fix bsddb.dbshelve.DBShelf append method to work as + intended for RECNO databases. + - Bug #1726026: Correct the field names of WIN32_FIND_DATAA and WIN32_FIND_DATAW structures in the ctypes.wintypes module. From python-checkins at python.org Fri Oct 12 21:01:19 2007 From: python-checkins at python.org (brett.cannon) Date: Fri, 12 Oct 2007 21:01:19 +0200 (CEST) Subject: [Python-checkins] r58436 - sandbox/trunk/import_in_py/Py3K/_importlib.py Message-ID: <20071012190119.4CE311E4032@bag.python.org> Author: brett.cannon Date: Fri Oct 12 21:01:19 2007 New Revision: 58436 Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py Log: Remove accidental debugging exception. Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/_importlib.py (original) +++ sandbox/trunk/import_in_py/Py3K/_importlib.py Fri Oct 12 21:01:19 2007 @@ -134,7 +134,6 @@ def open_(path, flags): """Stand-in replacement for open() in case it is not available yet.""" try: - raise NameError return open(path, flags) except NameError: return DinkyFile(path, flags) From python-checkins at python.org Fri Oct 12 21:06:58 2007 From: python-checkins at python.org (brett.cannon) Date: Fri, 12 Oct 2007 21:06:58 +0200 (CEST) Subject: [Python-checkins] r58437 - sandbox/trunk/import_in_py/Py3K/tests/mock_importlib.py sandbox/trunk/import_in_py/Py3K/tests/test_fs_loader.py Message-ID: <20071012190658.9BA0C1E4022@bag.python.org> Author: brett.cannon Date: Fri Oct 12 21:06:58 2007 New Revision: 58437 Modified: sandbox/trunk/import_in_py/Py3K/tests/mock_importlib.py sandbox/trunk/import_in_py/Py3K/tests/test_fs_loader.py Log: Fix some tests to move over newly exposed functions in marshal. Modified: sandbox/trunk/import_in_py/Py3K/tests/mock_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/tests/mock_importlib.py (original) +++ sandbox/trunk/import_in_py/Py3K/tests/mock_importlib.py Fri Oct 12 21:06:58 2007 @@ -1,8 +1,6 @@ import sys -import marshal import imp from test import test_support -from importlib import _w_long def log_call(method): Modified: sandbox/trunk/import_in_py/Py3K/tests/test_fs_loader.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/tests/test_fs_loader.py (original) +++ sandbox/trunk/import_in_py/Py3K/tests/test_fs_loader.py Fri Oct 12 21:06:58 2007 @@ -5,6 +5,7 @@ from tests.py_help import TestPyPycPackages import imp +import marshal import os import py_compile import sys @@ -251,10 +252,10 @@ log_call(loader, 'write_bytecode') with open(self.pyc_path, 'rb') as bytecode_file: data = bytecode_file.read() - timestamp = importlib._r_long(data[4:8]) + timestamp = marshal._r_long(data[4:8]) with open(self.pyc_path, 'wb') as bytecode_file: bytecode_file.write(data[:4]) - bytecode_file.write(importlib._w_long(timestamp-1)) + bytecode_file.write(marshal._w_long(timestamp-1)) bytecode_file.write(data[8:]) found = loader.load_module(self.module_name) self.assert_('write_bytecode' in loader._log) @@ -314,7 +315,7 @@ source_mtime = int(os.stat(self.py_path).st_mtime) with open(self.pyc_path, 'wb') as bytecode_file: bytecode_file.write(imp.get_magic()) - bytecode_file.write(importlib._w_long(source_mtime)) + bytecode_file.write(marshal._w_long(source_mtime)) loader = importlib._PyFileLoader(self.module_name, self.py_path, False) self.assertRaises(Exception, loader.load_module, self.module_name) From buildbot at python.org Fri Oct 12 21:14:49 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 19:14:49 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 trunk Message-ID: <20071012191449.8EDE71E4023@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%20trunk/builds/317 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_csv ====================================================================== ERROR: test_create_read (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\work\trunk.heller-windows\build\lib\test\test_csv.py", line 914, in test_create_read self.assertEqual(gc.garbage, []) File "C:\buildbot\work\trunk.heller-windows\build\lib\unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot\work\trunk.heller-windows\build\lib\bsddb\dbshelve.py", line 138, in keys return self.db.keys() DBError: (0, 'DB object has been closed') ====================================================================== ERROR: test_create_write (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\work\trunk.heller-windows\build\lib\test\test_csv.py", line 930, in test_create_write self.assertEqual(gc.garbage, []) File "C:\buildbot\work\trunk.heller-windows\build\lib\unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot\work\trunk.heller-windows\build\lib\bsddb\dbshelve.py", line 138, in keys return self.db.keys() DBError: (0, 'DB object has been closed') ====================================================================== ERROR: test_read (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\work\trunk.heller-windows\build\lib\test\test_csv.py", line 946, in test_read self.assertEqual(gc.garbage, []) File "C:\buildbot\work\trunk.heller-windows\build\lib\unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot\work\trunk.heller-windows\build\lib\bsddb\dbshelve.py", line 138, in keys return self.db.keys() DBError: (0, 'DB object has been closed') ====================================================================== ERROR: test_write (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\work\trunk.heller-windows\build\lib\test\test_csv.py", line 963, in test_write self.assertEqual(gc.garbage, []) File "C:\buildbot\work\trunk.heller-windows\build\lib\unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot\work\trunk.heller-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot\work\trunk.heller-windows\build\lib\bsddb\dbshelve.py", line 138, in keys return self.db.keys() DBError: (0, 'DB object has been closed') sincerely, -The Buildbot From buildbot at python.org Fri Oct 12 21:15:54 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 19:15:54 +0000 Subject: [Python-checkins] buildbot failure in x86 mvlgcc trunk Message-ID: <20071012191554.44E541E4022@bag.python.org> The Buildbot has detected a new failure of x86 mvlgcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20mvlgcc%20trunk/builds/880 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-linux Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Oct 12 21:35:52 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 19:35:52 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 2.5 Message-ID: <20071012193552.4C31B1E402B@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%202.5/builds/77 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_csv ====================================================================== ERROR: test_create_read (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\work\2.5.heller-windows\build\lib\test\test_csv.py", line 910, in test_create_read self.assertEqual(gc.garbage, []) File "C:\buildbot\work\2.5.heller-windows\build\lib\unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot\work\2.5.heller-windows\build\lib\bsddb\dbshelve.py", line 126, in keys return self.db.keys() DBError: (0, 'DB object has been closed') ====================================================================== ERROR: test_create_write (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\work\2.5.heller-windows\build\lib\test\test_csv.py", line 926, in test_create_write self.assertEqual(gc.garbage, []) File "C:\buildbot\work\2.5.heller-windows\build\lib\unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot\work\2.5.heller-windows\build\lib\bsddb\dbshelve.py", line 126, in keys return self.db.keys() DBError: (0, 'DB object has been closed') ====================================================================== ERROR: test_read (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\work\2.5.heller-windows\build\lib\test\test_csv.py", line 942, in test_read self.assertEqual(gc.garbage, []) File "C:\buildbot\work\2.5.heller-windows\build\lib\unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot\work\2.5.heller-windows\build\lib\bsddb\dbshelve.py", line 126, in keys return self.db.keys() DBError: (0, 'DB object has been closed') ====================================================================== ERROR: test_write (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\work\2.5.heller-windows\build\lib\test\test_csv.py", line 959, in test_write self.assertEqual(gc.garbage, []) File "C:\buildbot\work\2.5.heller-windows\build\lib\unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot\work\2.5.heller-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot\work\2.5.heller-windows\build\lib\bsddb\dbshelve.py", line 126, in keys return self.db.keys() DBError: (0, 'DB object has been closed') sincerely, -The Buildbot From buildbot at python.org Fri Oct 12 21:39:46 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 19:39:46 +0000 Subject: [Python-checkins] buildbot failure in x86 XP 2.5 Message-ID: <20071012193946.D3A141E4022@bag.python.org> The Buildbot has detected a new failure of x86 XP 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP%202.5/builds/302 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: mcintyre-windows Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 460, in __bootstrap self.run() File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\test\test_thread.py", line 245, in writerThread self.assertEqual(data, self.makeData(key)) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '1203-1203-1203-1203-1203' Traceback (most recent call last): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 460, in __bootstrap self.run() File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\test\test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 460, in __bootstrap self.run() File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\test\test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 460, in __bootstrap self.run() File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\test\test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 460, in __bootstrap self.run() File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\test\test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '0002-0002-0002-0002-0002' Traceback (most recent call last): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 460, in __bootstrap self.run() File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\test\test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "C:\test_pow test_calendar 2 tests failed: test_csv test_gc ====================================================================== ERROR: test_create_read (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\test\test_csv.py", line 910, in test_create_read self.assertEqual(gc.garbage, []) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\dbshelve.py", line 126, in keys return self.db.keys() DBError: (0, 'DB object has been closed') ====================================================================== ERROR: test_create_write (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\test\test_csv.py", line 926, in test_create_write self.assertEqual(gc.garbage, []) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\dbshelve.py", line 126, in keys return self.db.keys() DBError: (0, 'DB object has been closed') ====================================================================== ERROR: test_read (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\test\test_csv.py", line 942, in test_read self.assertEqual(gc.garbage, []) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\dbshelve.py", line 126, in keys return self.db.keys() DBError: (0, 'DB object has been closed') ====================================================================== ERROR: test_write (test.test_csv.TestLeaks) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\test\test_csv.py", line 959, in test_write self.assertEqual(gc.garbage, []) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 167, in __repr__ return repr(dict(self.iteritems())) File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\dbshelve.py", line 126, in keys return self.db.keys() DBError: (0, 'DB object has been closed') Traceback (most recent call last): File "../lib/test/regrtest.py", line 549, in runtest_inner the_package = __import__(abstest, globals(), locals(), []) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\test\test_gc.py", line 636, in test() File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\test\test_gc.py", line 623, in test test_all() File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\test\test_gc.py", line 586, in test_all run_test("finalizers", test_finalizer) File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\test\test_gc.py", line 18, in run_test thunk() File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\test\test_gc.py", line 126, in test_finalizer gc.garbage.remove(obj) File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 173, in __cmp__ return cmp(dict(self.iteritems()), other) File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 105, in iteritems for k in self: File "c:\buildbot_py25\2.5.mcintyre-windows\build\lib\UserDict.py", line 92, in __iter__ for k in self.keys(): File "C:\buildbot_py25\2.5.mcintyre-windows\build\lib\bsddb\dbshelve.py", line 126, in keys return self.db.keys() DBError: (0, 'DB object has been closed') sincerely, -The Buildbot From python-checkins at python.org Fri Oct 12 22:25:27 2007 From: python-checkins at python.org (guido.van.rossum) Date: Fri, 12 Oct 2007 22:25:27 +0200 (CEST) Subject: [Python-checkins] r58440 - peps/trunk/pep-3105.txt Message-ID: <20071012202527.9B31F1E4024@bag.python.org> Author: guido.van.rossum Date: Fri Oct 12 22:25:27 2007 New Revision: 58440 Modified: peps/trunk/pep-3105.txt Log: Clarify backwards compatibility. Modified: peps/trunk/pep-3105.txt ============================================================================== --- peps/trunk/pep-3105.txt (original) +++ peps/trunk/pep-3105.txt Fri Oct 12 22:25:27 2007 @@ -93,9 +93,23 @@ ======================= The changes proposed in this PEP will render most of today's ``print`` -statements invalid, only those which incidentally feature parentheses +statements invalid. Only those which incidentally feature parentheses around all of their arguments will continue to be valid Python syntax -in version 3.0. +in version 3.0, and of those, only the ones printing a single +parenthesized value will continue to do the same thing. For example, +in 2.x:: + + >>> print ("Hello") + Hello + >>> print ("Hello", "world") + ('Hello', 'world') + +whereas in 3.0:: + + >>> print ("Hello") + Hello + >>> print ("Hello", "world") + Hello world Luckily, as it is a statement in Python 2, ``print`` can be detected and replaced reliably and non-ambiguously by an automated tool, so From nnorwitz at gmail.com Fri Oct 12 23:44:28 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 12 Oct 2007 17:44:28 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20071012214428.GA10940@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 /tmp/python-test/local/lib/python2.6/bsddb/test/test_1413192.py:32: RuntimeWarning: DBTxn aborted in destructor. No prior commit() or abort(). del self.the_txn Exception in thread reader 2: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Exception in thread reader 3: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Exception in thread reader 0: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Exception in thread writer 1: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/tmp/python-test/local/lib/python2.6/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '1006-1006-1006-1006-1006' Exception in thread writer 2: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/tmp/python-test/local/lib/python2.6/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '2002-2002-2002-2002-2002' Exception in thread writer 0: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/tmp/python-test/local/lib/python2.6/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '0004-0004-0004-0004-0004' test test_bsddb3 failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_dbtables.py", line 182, in test03 assert len(values) == 1 AssertionError test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test test_csv failed -- errors occurred; run in verbose mode for details test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test test_gc failed -- errors occurred; run in verbose mode for details test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:60: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ss = socket.ssl(s) test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7359 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 305 tests OK. 3 tests failed: test_bsddb3 test_csv test_gc 21 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_gl test_imageop test_imgfile test_ioctl test_macostools test_pep277 test_plistlib test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [517421 refs] From buildbot at python.org Sat Oct 13 00:32:33 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 22:32:33 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071012223234.3942A1E4016@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/214 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Oct 13 01:55:22 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Oct 2007 23:55:22 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu 3.0 Message-ID: <20071012235522.D05701E4025@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%203.0/builds/113 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: travis.oliphant BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 37 sincerely, -The Buildbot From buildbot at python.org Sat Oct 13 03:40:12 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Oct 2007 01:40:12 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux trunk Message-ID: <20071013014013.0BE051E4024@bag.python.org> The Buildbot has detected a new failure of ARM Linux trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20trunk/builds/27 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-arm Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Aborted sincerely, -The Buildbot From buildbot at python.org Sat Oct 13 04:41:45 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Oct 2007 02:41:45 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux 3.0 Message-ID: <20071013024145.421911E4024@bag.python.org> The Buildbot has detected a new failure of ARM Linux 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%203.0/builds/19 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-arm Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon,travis.oliphant BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "./Lib/test/regrtest.py", line 133, in import random File "/home/pybot/buildarea-arm/3.0.klose-linux-arm/build/Lib/random.py", line 43, in from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil ImportError: No module named math make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Oct 13 05:48:25 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Oct 2007 03:48:25 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 3.0 Message-ID: <20071013034825.6B05A1E4025@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%203.0/builds/17 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon,travis.oliphant BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From nnorwitz at gmail.com Sat Oct 13 07:55:04 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 12 Oct 2007 22:55:04 -0700 Subject: [Python-checkins] r58434 - in python/trunk/Lib/bsddb: dbshelve.py test/test_dbshelve.py In-Reply-To: <20071012184406.DE9FA1E4022@bag.python.org> References: <20071012184406.DE9FA1E4022@bag.python.org> Message-ID: Gregory, After this change, one of the buildbots had a failure when checking gc.garbage: http://python.org/dev/buildbot/trunk/x86%20XP-3%20trunk/builds/317/step-test/0 It could be the change just triggered an existing issue with a new test. Also, another buildbot failed with this message: test test_bsddb3 failed -- errors occurred; run in verbose mode for details Warning: test created 1 uncollectable object(s). http://python.org/dev/buildbot/trunk/amd64%20gentoo%20trunk/builds/2249/step-test/0 Could you take a look? Thanks, n -- On Oct 12, 2007 11:44 AM, gregory.p.smith wrote: > Author: gregory.p.smith > Date: Fri Oct 12 20:44:06 2007 > New Revision: 58434 > > Modified: > python/trunk/Lib/bsddb/dbshelve.py > python/trunk/Lib/bsddb/test/test_dbshelve.py > Log: > Fixes http://bugs.python.org/issue1233 - bsddb.dbshelve.DBShelf.append > was useless due to inverted logic. Also adds a test case for RECNO dbs > to test_dbshelve. > > > Modified: python/trunk/Lib/bsddb/dbshelve.py > ============================================================================== > --- python/trunk/Lib/bsddb/dbshelve.py (original) > +++ python/trunk/Lib/bsddb/dbshelve.py Fri Oct 12 20:44:06 2007 > @@ -84,6 +84,9 @@ > > #--------------------------------------------------------------------------- > > +class DBShelveError(db.DBError): pass > + > + > class DBShelf(DictMixin): > """A shelf to hold pickled objects, built upon a bsddb DB object. It > automatically pickles/unpickles data objects going to/from the DB. > @@ -162,10 +165,10 @@ > return self.db.append(data, txn) > > def append(self, value, txn=None): > - if self.get_type() != db.DB_RECNO: > + if self.get_type() == db.DB_RECNO: > self.append = self.__append > return self.append(value, txn=txn) > - raise db.DBError, "append() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO" > + raise DBShelveError, "append() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO" > > > def associate(self, secondaryDB, callback, flags=0): > > Modified: python/trunk/Lib/bsddb/test/test_dbshelve.py > ============================================================================== > --- python/trunk/Lib/bsddb/test/test_dbshelve.py (original) > +++ python/trunk/Lib/bsddb/test/test_dbshelve.py Fri Oct 12 20:44:06 2007 > @@ -41,17 +41,22 @@ > except os.error: > pass > > + def mk(self, key): > + """Turn key into an appropriate key type for this db""" > + # override in child class for RECNO > + return key > + > def populateDB(self, d): > for x in string.letters: > - d['S' + x] = 10 * x # add a string > - d['I' + x] = ord(x) # add an integer > - d['L' + x] = [x] * 10 # add a list > + d[self.mk('S' + x)] = 10 * x # add a string > + d[self.mk('I' + x)] = ord(x) # add an integer > + d[self.mk('L' + x)] = [x] * 10 # add a list > > inst = DataClass() # add an instance > inst.S = 10 * x > inst.I = ord(x) > inst.L = [x] * 10 > - d['O' + x] = inst > + d[self.mk('O' + x)] = inst > > > # overridable in derived classes to affect how the shelf is created/opened > @@ -85,14 +90,14 @@ > print "keys:", k > print "stats:", s > > - assert 0 == d.has_key('bad key') > - assert 1 == d.has_key('IA') > - assert 1 == d.has_key('OA') > - > - d.delete('IA') > - del d['OA'] > - assert 0 == d.has_key('IA') > - assert 0 == d.has_key('OA') > + assert 0 == d.has_key(self.mk('bad key')) > + assert 1 == d.has_key(self.mk('IA')) > + assert 1 == d.has_key(self.mk('OA')) > + > + d.delete(self.mk('IA')) > + del d[self.mk('OA')] > + assert 0 == d.has_key(self.mk('IA')) > + assert 0 == d.has_key(self.mk('OA')) > assert len(d) == l-2 > > values = [] > @@ -115,18 +120,18 @@ > for key, value in items: > self.checkrec(key, value) > > - assert d.get('bad key') == None > - assert d.get('bad key', None) == None > - assert d.get('bad key', 'a string') == 'a string' > - assert d.get('bad key', [1, 2, 3]) == [1, 2, 3] > + assert d.get(self.mk('bad key')) == None > + assert d.get(self.mk('bad key'), None) == None > + assert d.get(self.mk('bad key'), 'a string') == 'a string' > + assert d.get(self.mk('bad key'), [1, 2, 3]) == [1, 2, 3] > > d.set_get_returns_none(0) > - self.assertRaises(db.DBNotFoundError, d.get, 'bad key') > + self.assertRaises(db.DBNotFoundError, d.get, self.mk('bad key')) > d.set_get_returns_none(1) > > - d.put('new key', 'new data') > - assert d.get('new key') == 'new data' > - assert d['new key'] == 'new data' > + d.put(self.mk('new key'), 'new data') > + assert d.get(self.mk('new key')) == 'new data' > + assert d[self.mk('new key')] == 'new data' > > > > @@ -165,14 +170,24 @@ > > assert count == len(d) > > - c.set('SS') > + c.set(self.mk('SS')) > key, value = c.current() > self.checkrec(key, value) > del c > > > + def test03_append(self): > + # NOTE: this is overridden in RECNO subclass, don't change its name. > + if verbose: > + print '\n', '-=' * 30 > + print "Running %s.test03_append..." % self.__class__.__name__ > + > + self.assertRaises(dbshelve.DBShelveError, > + self.d.append, 'unit test was here') > + > > def checkrec(self, key, value): > + # override this in a subclass if the key type is different > x = key[1] > if key[0] == 'S': > assert type(value) == StringType > @@ -281,7 +296,43 @@ > > > #---------------------------------------------------------------------- > -# TODO: Add test cases for a DBShelf in a RECNO DB. > +# test cases for a DBShelf in a RECNO DB. > + > +class RecNoShelveTestCase(BasicShelveTestCase): > + dbtype = db.DB_RECNO > + dbflags = db.DB_CREATE > + > + def setUp(self): > + BasicShelveTestCase.setUp(self) > + > + # pool to assign integer key values out of > + self.key_pool = list(range(1, 5000)) > + self.key_map = {} # map string keys to the number we gave them > + self.intkey_map = {} # reverse map of above > + > + def mk(self, key): > + if key not in self.key_map: > + self.key_map[key] = self.key_pool.pop(0) > + self.intkey_map[self.key_map[key]] = key > + return self.key_map[key] > + > + def checkrec(self, intkey, value): > + key = self.intkey_map[intkey] > + BasicShelveTestCase.checkrec(self, key, value) > + > + def test03_append(self): > + if verbose: > + print '\n', '-=' * 30 > + print "Running %s.test03_append..." % self.__class__.__name__ > + > + self.d[1] = 'spam' > + self.d[5] = 'eggs' > + self.assertEqual(6, self.d.append('spam')) > + self.assertEqual(7, self.d.append('baked beans')) > + self.assertEqual('spam', self.d.get(6)) > + self.assertEqual('spam', self.d.get(1)) > + self.assertEqual('baked beans', self.d.get(7)) > + self.assertEqual('eggs', self.d.get(5)) > > > #---------------------------------------------------------------------- > @@ -298,6 +349,7 @@ > suite.addTest(unittest.makeSuite(EnvHashShelveTestCase)) > suite.addTest(unittest.makeSuite(EnvThreadBTreeShelveTestCase)) > suite.addTest(unittest.makeSuite(EnvThreadHashShelveTestCase)) > + suite.addTest(unittest.makeSuite(RecNoShelveTestCase)) > > return suite > > _______________________________________________ > Python-checkins mailing list > Python-checkins at python.org > http://mail.python.org/mailman/listinfo/python-checkins > From nnorwitz at gmail.com Sat Oct 13 11:44:02 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 13 Oct 2007 05:44:02 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20071013094402.GA27186@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 /tmp/python-test/local/lib/python2.6/bsddb/test/test_1413192.py:32: RuntimeWarning: DBTxn aborted in destructor. No prior commit() or abort(). del self.the_txn test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test test_csv failed -- errors occurred; run in verbose mode for details test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test test_gc failed -- errors occurred; run in verbose mode for details test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:60: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ss = socket.ssl(s) test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7359 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 306 tests OK. 2 tests failed: test_csv test_gc 21 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_gl test_imageop test_imgfile test_ioctl test_macostools test_pep277 test_plistlib test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [517422 refs] From python-checkins at python.org Sat Oct 13 15:19:45 2007 From: python-checkins at python.org (georg.brandl) Date: Sat, 13 Oct 2007 15:19:45 +0200 (CEST) Subject: [Python-checkins] r58444 - python/branches/release25-maint/Doc/lib/email-unpack.py Message-ID: <20071013131945.5F0061E401A@bag.python.org> Author: georg.brandl Date: Sat Oct 13 15:19:45 2007 New Revision: 58444 Modified: python/branches/release25-maint/Doc/lib/email-unpack.py Log: Fix email example. Modified: python/branches/release25-maint/Doc/lib/email-unpack.py ============================================================================== --- python/branches/release25-maint/Doc/lib/email-unpack.py (original) +++ python/branches/release25-maint/Doc/lib/email-unpack.py Sat Oct 13 15:19:45 2007 @@ -53,7 +53,7 @@ # email message can't be used to overwrite important files filename = part.get_filename() if not filename: - ext = mimetypes.guess_extension(part.get_type()) + ext = mimetypes.guess_extension(part.get_content_type()) if not ext: # Use a generic bag-of-bits extension ext = '.bin' From python-checkins at python.org Sat Oct 13 15:20:03 2007 From: python-checkins at python.org (georg.brandl) Date: Sat, 13 Oct 2007 15:20:03 +0200 (CEST) Subject: [Python-checkins] r58445 - python/trunk/Doc/includes/email-unpack.py Message-ID: <20071013132003.BA9451E401A@bag.python.org> Author: georg.brandl Date: Sat Oct 13 15:20:03 2007 New Revision: 58445 Modified: python/trunk/Doc/includes/email-unpack.py Log: Fix email example. Modified: python/trunk/Doc/includes/email-unpack.py ============================================================================== --- python/trunk/Doc/includes/email-unpack.py (original) +++ python/trunk/Doc/includes/email-unpack.py Sat Oct 13 15:20:03 2007 @@ -53,7 +53,7 @@ # email message can't be used to overwrite important files filename = part.get_filename() if not filename: - ext = mimetypes.guess_extension(part.get_type()) + ext = mimetypes.guess_extension(part.get_content_type()) if not ext: # Use a generic bag-of-bits extension ext = '.bin' From python-checkins at python.org Sat Oct 13 23:18:24 2007 From: python-checkins at python.org (travis.oliphant) Date: Sat, 13 Oct 2007 23:18:24 +0200 (CEST) Subject: [Python-checkins] r58449 - peps/trunk/pep-3118.txt Message-ID: <20071013211824.4D5061E4007@bag.python.org> Author: travis.oliphant Date: Sat Oct 13 23:18:23 2007 New Revision: 58449 Modified: peps/trunk/pep-3118.txt Log: Improve the text about the readonly member of the Py_buffer structure and how it relates to locked views. Modified: peps/trunk/pep-3118.txt ============================================================================== --- peps/trunk/pep-3118.txt (original) +++ peps/trunk/pep-3118.txt Sat Oct 13 23:18:23 2007 @@ -344,13 +344,13 @@ ``readonly`` an integer variable to hold whether or not the memory is readonly. 1 means the memory is readonly, zero means the memory is writable, - -1 means the memory was "locked" (changed from writable to - readonly) when this Py_buffer structure was filled-in after a - readable request and therefore should be unlocked when this - Py_buffer structure is "released" (this is supported only by some - exporters). A -2 means this Py_buffer structure has an - exclusive-write lock on the memory. This should be unlocked when - the Py_buffer structure is released. + -1 means the memory was read "locked" when this Py_buffer + structure was filled-in therefore should be unlocked when this + Py_buffer structure is "released." A -2 means this Py_buffer + structure has an exclusive-write lock on the memory. This should + be unlocked when the Py_buffer structure is released. The concept + of locking is not supported by all objects that expose the buffer + protocol. ``format`` a NULL-terminated format-string (following the struct-style syntax From buildbot at python.org Sun Oct 14 00:09:48 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Oct 2007 22:09:48 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu 3.0 Message-ID: <20071013220948.788351E4006@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%203.0/builds/115 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum,travis.oliphant BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 37 sincerely, -The Buildbot From python-checkins at python.org Sun Oct 14 01:02:05 2007 From: python-checkins at python.org (gregory.p.smith) Date: Sun, 14 Oct 2007 01:02:05 +0200 (CEST) Subject: [Python-checkins] r58450 - python/trunk/Lib/bsddb/dbshelve.py Message-ID: <20071013230205.9CA451E4006@bag.python.org> Author: gregory.p.smith Date: Sun Oct 14 01:02:05 2007 New Revision: 58450 Modified: python/trunk/Lib/bsddb/dbshelve.py Log: Fix an uncollectable reference leak in bsddb.db.DBShelf.append Modified: python/trunk/Lib/bsddb/dbshelve.py ============================================================================== --- python/trunk/Lib/bsddb/dbshelve.py (original) +++ python/trunk/Lib/bsddb/dbshelve.py Sun Oct 14 01:02:05 2007 @@ -93,6 +93,7 @@ """ def __init__(self, dbenv=None): self.db = db.DB(dbenv) + self._closed = True if HIGHEST_PROTOCOL: self.protocol = HIGHEST_PROTOCOL else: @@ -138,6 +139,23 @@ return self.db.keys() + def open(self, *args, **kwargs): + self.db.open(*args, **kwargs) + self._closed = False + + + def close(self, *args, **kwargs): + self.db.close(*args, **kwargs) + self._closed = True + + + def __repr__(self): + if self._closed: + return '' % (id(self)) + else: + return repr(dict(self.iteritems())) + + def items(self, txn=None): if txn != None: items = self.db.items(txn) @@ -166,8 +184,7 @@ def append(self, value, txn=None): if self.get_type() == db.DB_RECNO: - self.append = self.__append - return self.append(value, txn=txn) + return self.__append(value, txn=txn) raise DBShelveError, "append() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO" From python-checkins at python.org Sun Oct 14 01:05:54 2007 From: python-checkins at python.org (gregory.p.smith) Date: Sun, 14 Oct 2007 01:05:54 +0200 (CEST) Subject: [Python-checkins] r58451 - python/branches/release25-maint/Lib/bsddb/dbshelve.py Message-ID: <20071013230554.CE2251E4006@bag.python.org> Author: gregory.p.smith Date: Sun Oct 14 01:05:54 2007 New Revision: 58451 Modified: python/branches/release25-maint/Lib/bsddb/dbshelve.py Log: Backport 58450: fix uncollectable reference leak in bsddb.db.DBShelf.append Modified: python/branches/release25-maint/Lib/bsddb/dbshelve.py ============================================================================== --- python/branches/release25-maint/Lib/bsddb/dbshelve.py (original) +++ python/branches/release25-maint/Lib/bsddb/dbshelve.py Sun Oct 14 01:05:54 2007 @@ -154,8 +154,7 @@ def append(self, value, txn=None): if self.get_type() == db.DB_RECNO: - self.append = self.__append - return self.append(value, txn=txn) + return self.__append(value, txn=txn) raise DBShelveError, "append() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO" From nnorwitz at gmail.com Sun Oct 14 01:39:48 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 13 Oct 2007 19:39:48 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20071013233948.GA29764@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-1: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-2: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-4: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-6: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-16: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-18: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-19: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-26: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-28: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-30: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another Exception in thread Thread-32: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/tmp/python-test/local/lib/python2.6/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on test test_asynchat failed -- errors occurred; run in verbose mode for details test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 /tmp/python-test/local/lib/python2.6/bsddb/test/test_1413192.py:32: RuntimeWarning: DBTxn aborted in destructor. No prior commit() or abort(). del self.the_txn test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test test_csv failed -- errors occurred; run in verbose mode for details test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test test_gc failed -- errors occurred; run in verbose mode for details test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test test_poplib failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_poplib.py", line 39, in testBasic pop = poplib.POP3("localhost", 9091) File "/tmp/python-test/local/lib/python2.6/poplib.py", line 82, in __init__ self.sock = socket.create_connection((host, port), timeout) File "/tmp/python-test/local/lib/python2.6/socket.py", line 462, in create_connection raise error, msg error: [Errno 111] Connection refused test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:60: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ss = socket.ssl(s) test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7362 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 304 tests OK. 4 tests failed: test_asynchat test_csv test_gc test_poplib 21 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_gl test_imageop test_imgfile test_ioctl test_macostools test_pep277 test_plistlib test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [517420 refs] From buildbot at python.org Sun Oct 14 02:07:45 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 00:07:45 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20071014000745.C17EA1E4006@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/2541 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_asynchat.py", line 22, in run PORT = test_support.bind_port(sock, HOST, PORT) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_support.py", line 113, in bind_port raise TestFailed('unable to find port to listen on') TestFailed: unable to find port to listen on 1 test failed: test_asynchat sincerely, -The Buildbot From python-checkins at python.org Sun Oct 14 02:18:41 2007 From: python-checkins at python.org (neal.norwitz) Date: Sun, 14 Oct 2007 02:18:41 +0200 (CEST) Subject: [Python-checkins] r58453 - python/trunk/Lib/test/test_support.py Message-ID: <20071014001841.0BE861E4006@bag.python.org> Author: neal.norwitz Date: Sun Oct 14 02:18:40 2007 New Revision: 58453 Modified: python/trunk/Lib/test/test_support.py Log: Let the O/S supply a port if none of the default ports can be used. This should make the tests more robust at the expense of allowing tests to be sloppier by not requiring them to cleanup after themselves. (It will legitamitely help when running two test suites simultaneously or if another process is already using one of the predefined ports.) Also simplifies (slightLy) the exception handling elsewhere. Modified: python/trunk/Lib/test/test_support.py ============================================================================== --- python/trunk/Lib/test/test_support.py (original) +++ python/trunk/Lib/test/test_support.py Sun Oct 14 02:18:40 2007 @@ -100,10 +100,19 @@ tests and we don't try multiple ports, the test can fails. This makes the test more robust.""" - # some random ports that hopefully no one is listening on. - for port in [preferred_port, 9907, 10243, 32999]: + # Find some random ports that hopefully no one is listening on. + # Ideally each test would clean up after itself and not continue listening + # on any ports. However, this isn't the case. The last port (0) is + # a stop-gap that asks the O/S to assign a port. Whenever the warning + # message below is printed, the test that is listening on the port should + # be fixed to close the socket at the end of the test. + # Another reason why we can't use a port is another process (possibly + # another instance of the test suite) is using the same port. + for port in [preferred_port, 9907, 10243, 32999, 0]: try: sock.bind((host, port)) + if port == 0: + port = sock.getsockname()[1] return port except socket.error, (err, msg): if err != errno.EADDRINUSE: @@ -535,8 +544,7 @@ elif len(result.failures) == 1 and not result.errors: err = result.failures[0][1] else: - msg = "errors occurred; run in verbose mode for details" - raise TestFailed(msg) + err = "errors occurred; run in verbose mode for details" raise TestFailed(err) From buildbot at python.org Sun Oct 14 02:24:48 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 00:24:48 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20071014002448.AAAE61E4006@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/110 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllib2net sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 02:28:16 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 00:28:16 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo 2.5 Message-ID: <20071014002816.A03C31E4006@bag.python.org> The Buildbot has detected a new failure of x86 gentoo 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%202.5/builds/438 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: georg.brandl,gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== FAIL: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildslave/python-trunk/2.5.norwitz-x86/build/Lib/bsddb/test/test_dbtables.py", line 187, in test03 assert values[0]['b'] == "bad" AssertionError make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 02:40:38 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 00:40:38 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071014004038.3EF221E4006@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/111 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_dbtables.py", line 341, in test_Modify mappings={'Access': increment_access}) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/dbtables.py", line 455, in Modify dataitem = mappings[column](dataitem) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_dbtables.py", line 328, in increment_access return str(int(count)+1) TypeError: int() argument must be a string or a number, not 'NoneType' sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 02:52:14 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 00:52:14 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20071014005214.746E51E4006@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/2251 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From nnorwitz at gmail.com Sun Oct 14 10:00:07 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sun, 14 Oct 2007 04:00:07 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071014080007.GA28481@python.psfb.org> svn update tools/sphinx svn: PROPFIND request failed on '/projects/doctools/trunk/sphinx' svn: PROPFIND of '/projects/doctools/trunk/sphinx': could not connect to server (http://svn.python.org) make: *** [update] Error 1 From buildbot at python.org Sun Oct 14 13:01:36 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 11:01:36 +0000 Subject: [Python-checkins] buildbot failure in 2.5.msi Message-ID: <20071014110136.C0A1B1E4026@bag.python.org> The Buildbot has detected a new failure of 2.5.msi. Full details are available at: http://www.python.org/dev/buildbot/all/2.5.msi/builds/37 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: The Nightly scheduler named '2.5.msi' triggered this build Build Source Stamp: HEAD Blamelist: BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 14:01:38 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 12:01:38 +0000 Subject: [Python-checkins] buildbot failure in 2.6.msi Message-ID: <20071014120138.87F051E4026@bag.python.org> The Buildbot has detected a new failure of 2.6.msi. Full details are available at: http://www.python.org/dev/buildbot/all/2.6.msi/builds/40 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: The Nightly scheduler named '2.6.msi' triggered this build Build Source Stamp: HEAD Blamelist: BUILD FAILED: failed svn sincerely, -The Buildbot From python-checkins at python.org Sun Oct 14 16:01:30 2007 From: python-checkins at python.org (erik.forsberg) Date: Sun, 14 Oct 2007 16:01:30 +0200 (CEST) Subject: [Python-checkins] r58458 - tracker/instances/python-dev/detectors/busybody.py tracker/instances/python-dev/detectors/nosyreaction.py tracker/instances/python-dev/detectors/sendmail.py tracker/instances/python-dev/detectors/tellteam.py Message-ID: <20071014140130.990021E4008@bag.python.org> Author: erik.forsberg Date: Sun Oct 14 16:01:30 2007 New Revision: 58458 Added: tracker/instances/python-dev/detectors/sendmail.py Removed: tracker/instances/python-dev/detectors/busybody.py tracker/instances/python-dev/detectors/tellteam.py Modified: tracker/instances/python-dev/detectors/nosyreaction.py Log: Modify how mail are sent at changes to issues. Fixes http://psf.upfronthosting.co.za/roundup/meta/issue141. Details: * All message sending now in sendmail.py for clarity- removed busybody.py and tellteam.py. Moved nosy sending from nosyreaction.py into sendmail.py. * Send mail on all changes to busybody and nosy. * Send mail for new issues only, to triage. * Modified nosyreaction to always add current user to nosy list when creating new issues. This didn't happen before, if the issue lacked messges. Deleted: /tracker/instances/python-dev/detectors/busybody.py ============================================================================== --- /tracker/instances/python-dev/detectors/busybody.py Sun Oct 14 16:01:30 2007 +++ (empty file) @@ -1,90 +0,0 @@ -# -# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) -# This module is free software, and you may redistribute it and/or modify -# under the same terms as Python, so long as this copyright message and -# disclaimer are retained in their original form. -# -# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR -# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING -# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, -# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" -# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, -# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -# -# Modified from nosyreaction by P. Dubois to send mail to a busybody list -# that wants to know about EVERY change. - -import sets - -from roundup import roundupdb, hyperdb - -def is_spam(db, msgid): - cutoff_score = float(db.config.detectors['SPAMBAYES_SPAM_CUTOFF']) - - msg = db.getnode("msg", msgid) - if msg.has_key('spambayes_score') and \ - msg['spambayes_score'] > cutoff_score: - return False - return True - - -def busyreaction(db, cl, nodeid, oldvalues): - ''' busybody mail - ''' - try: - sendto = db.config.detectors['BUSYBODY_EMAIL'].split(",") - except KeyError: - return - - msgIDS = determineNewMessages(cl, nodeid, oldvalues) - if oldvalues is None: # a create - note = cl.generateCreateNote(nodeid) - else: - note = cl.generateChangeNote(nodeid, oldvalues) - - for msgid in filter(lambda x: is_spam(db, x), msgIDS): - try: - cl.send_message(nodeid, msgid, note, sendto) - except roundupdb.MessageSendError, message: - raise roundupdb.DetectorError, message - if not msgIDS: - # Find author associated with the last journal entry - journal = db.getjournal(cl.classname, nodeid) - authid = None - if [] != journal: - authid = journal[-1][2] - try: - cl.send_message(nodeid, None, note, sendto, authid=authid) - except roundupdb.MessageSendError, message: - raise roundupdb.DetectorError, message - - -def determineNewMessages(cl, nodeid, oldvalues): - ''' Figure a list of the messages that are being added to the given - node in this transaction. - ''' - messages = [] - if oldvalues is None: - # the action was a create, so use all the messages in the create - messages = cl.get(nodeid, 'messages') - elif oldvalues.has_key('messages'): - # the action was a set (so adding new messages to an existing issue) - m = {} - for msgid in oldvalues['messages']: - m[msgid] = 1 - messages = [] - # figure which of the messages now on the issue weren't there before - for msgid in cl.get(nodeid, 'messages'): - if not m.has_key(msgid): - messages.append(msgid) - return messages - -def init(db): - db.issue.react('create', busyreaction) - db.issue.react('set', busyreaction) - -# vim: set filetype=python ts=4 sw=4 et si Modified: tracker/instances/python-dev/detectors/nosyreaction.py ============================================================================== --- tracker/instances/python-dev/detectors/nosyreaction.py (original) +++ tracker/instances/python-dev/detectors/nosyreaction.py Sun Oct 14 16:01:30 2007 @@ -1,48 +1,6 @@ import sets from roundup import roundupdb, hyperdb -def nosyreaction(db, cl, nodeid, oldvalues): - ''' A standard detector is provided that watches for additions to the - "messages" property. - - When a new message is added, the detector sends it to all the users on - the "nosy" list for the issue that are not already on the "recipients" - list of the message. - - Those users are then appended to the "recipients" property on the - message, so multiple copies of a message are never sent to the same - user. - - The journal recorded by the hyperdatabase on the "recipients" property - then provides a log of when the message was sent to whom. - ''' - # send a copy of all new messages to the nosy list - for msgid in determineNewMessages(cl, nodeid, oldvalues): - try: - cl.nosymessage(nodeid, msgid, oldvalues) - except roundupdb.MessageSendError, message: - raise roundupdb.DetectorError, message - -def determineNewMessages(cl, nodeid, oldvalues): - ''' Figure a list of the messages that are being added to the given - node in this transaction. - ''' - messages = [] - if oldvalues is None: - # the action was a create, so use all the messages in the create - messages = cl.get(nodeid, 'messages') - elif oldvalues.has_key('messages'): - # the action was a set (so adding new messages to an existing issue) - m = {} - for msgid in oldvalues['messages']: - m[msgid] = 1 - messages = [] - # figure which of the messages now on the issue weren't there before - for msgid in cl.get(nodeid, 'messages'): - if not m.has_key(msgid): - messages.append(msgid) - return messages - def updatenosy(db, cl, nodeid, newvalues): '''Update the nosy list for changes to the assignee ''' @@ -59,7 +17,8 @@ for value in nosy: current_nosy.add(value) - # if the nosy list changed in this transaction, init from the new value + # if the nosy list changed in this transaction, init from the new + # value if newvalues.has_key('nosy'): nosy = newvalues.get('nosy', []) for value in nosy: @@ -114,8 +73,17 @@ # that's it, save off the new nosy list newvalues['nosy'] = list(new_nosy) +def addcreator(db, cl, nodeid, newvalues): + assert None == nodeid, "addcreator called for existing node" + nosy = newvalues.get('nosy', []) + if not db.getuid() in nosy: + nosy.append(db.getuid()) + newvalues['nosy'] = nosy + + def init(db): - db.issue.react('create', nosyreaction) - db.issue.react('set', nosyreaction) db.issue.audit('create', updatenosy) db.issue.audit('set', updatenosy) + + # Make sure creator of issue is added. Do this after 'updatenosy'. + db.issue.audit('create', addcreator, priority=110) Added: tracker/instances/python-dev/detectors/sendmail.py ============================================================================== --- (empty file) +++ tracker/instances/python-dev/detectors/sendmail.py Sun Oct 14 16:01:30 2007 @@ -0,0 +1,91 @@ +def determineNewMessages(cl, nodeid, oldvalues): + ''' Figure a list of the messages that are being added to the given + node in this transaction. + ''' + messages = [] + if oldvalues is None: + # the action was a create, so use all the messages in the create + messages = cl.get(nodeid, 'messages') + elif oldvalues.has_key('messages'): + # the action was a set (so adding new messages to an existing issue) + m = {} + for msgid in oldvalues['messages']: + m[msgid] = 1 + messages = [] + # figure which of the messages now on the issue weren't there before + for msgid in cl.get(nodeid, 'messages'): + if not m.has_key(msgid): + messages.append(msgid) + return messages + + +def is_spam(db, msgid): + """Return true if message has a spambayes score above + db.config.detectors['SPAMBAYES_SPAM_CUTOFF']. Also return true if + msgid is None, which happens when there are no messages (i.e., a + property-only change)""" + if not msgid: + return False + cutoff_score = float(db.config.detectors['SPAMBAYES_SPAM_CUTOFF']) + + msg = db.getnode("msg", msgid) + if msg.has_key('spambayes_score') and \ + msg['spambayes_score'] > cutoff_score: + return True + return False + + +def sendmail(db, cl, nodeid, oldvalues): + """Send mail to various recipients, when changes occur: + + * For all changes (property-only, or with new message), send mail + to all e-mail addresses defined in + db.config.detectors['BUSYBODY_EMAIL'] + + * For all changes (property-only, or with new message), send mail + to all members of the nosy list. + + * For new issues, and only for new issue, send mail to + db.config.detectors['TRIAGE_EMAIL'] + + """ + + sendto = [] + + # The busybody addresses always get mail. + try: + sendto += db.config.detectors['BUSYBODY_EMAIL'].split(",") + except KeyError: + pass + + # New submission? + if None == oldvalues: + changenote = cl.generateCreateNote(nodeid) + try: + # Add triage addresses + sendto += db.config.detectors['TRIAGE_EMAIL'].split(",") + except KeyError: + pass + else: + changenote = cl.generateChangeNote(nodeid, oldvalues) + + authid = db.getuid() + + new_messages = determineNewMessages(cl, nodeid, oldvalues) + + # Make sure we send a nosy mail even for property-only + # changes. + if not new_messages: + new_messages = [None] + + for msgid in [msgid for msgid in new_messages if not is_spam(db, msgid)]: + try: + cl.send_message(nodeid, msgid, changenote, sendto, + authid=authid) + cl.nosymessage(nodeid, msgid, oldvalues) + except roundupdb.MessageSendError, message: + raise roundupdb.DetectorError, message + +def init(db): + db.issue.react('set', sendmail) + db.issue.react('create', sendmail) Deleted: /tracker/instances/python-dev/detectors/tellteam.py ============================================================================== --- /tracker/instances/python-dev/detectors/tellteam.py Sun Oct 14 16:01:30 2007 +++ (empty file) @@ -1,37 +0,0 @@ -from roundup import roundupdb - -def is_spam(db, msgid): - cutoff_score = float(db.config.detectors['SPAMBAYES_SPAM_CUTOFF']) - - msg = db.getnode("msg", msgid) - if msg.has_key('spambayes_score') and \ - msg['spambayes_score'] > cutoff_score: - return False - return True - -def newissuetriage(db, cl, nodeid, oldvalues): - ''' Copy a message about new issues to a triage address, - set in detectors/config.ini - ''' - # so use all the messages in the create - change_note = cl.generateCreateNote(nodeid) - - # send a copy to the nosy list - try: - triage_email = db.config.detectors['TRIAGE_EMAIL'].split(",") - except KeyError: - triage_email = [] - if not triage_email: - return - for msgid in filter(lambda x: is_spam(db, x), cl.get(nodeid, 'messages')): - try: - # note: last arg must be a list - - cl.send_message(nodeid, msgid, change_note, triage_email) - except roundupdb.MessageSendError, message: - raise roundupdb.DetectorError, message - -def init(db): - db.issue.react('create', newissuetriage) - -# vim: set filetype=python ts=4 sw=4 et si From python-checkins at python.org Sun Oct 14 20:30:21 2007 From: python-checkins at python.org (neal.norwitz) Date: Sun, 14 Oct 2007 20:30:21 +0200 (CEST) Subject: [Python-checkins] r58459 - python/trunk/Lib/bsddb/test/test_dbtables.py Message-ID: <20071014183021.6673F1E4026@bag.python.org> Author: neal.norwitz Date: Sun Oct 14 20:30:21 2007 New Revision: 58459 Modified: python/trunk/Lib/bsddb/test/test_dbtables.py Log: Don't raise a string exception, they don't work anymore. Modified: python/trunk/Lib/bsddb/test/test_dbtables.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_dbtables.py (original) +++ python/trunk/Lib/bsddb/test/test_dbtables.py Sun Oct 14 20:30:21 2007 @@ -111,7 +111,7 @@ else : if verbose: print "values= %r" % (values,) - raise "Wrong values returned!" + raise RuntimeError("Wrong values returned!") def test03(self): tabname = "test03" From python-checkins at python.org Sun Oct 14 20:40:37 2007 From: python-checkins at python.org (neal.norwitz) Date: Sun, 14 Oct 2007 20:40:37 +0200 (CEST) Subject: [Python-checkins] r58460 - python/trunk/Lib/bsddb/test/test_dbtables.py Message-ID: <20071014184037.7A58C1E4011@bag.python.org> Author: neal.norwitz Date: Sun Oct 14 20:40:37 2007 New Revision: 58460 Modified: python/trunk/Lib/bsddb/test/test_dbtables.py Log: Use unittest for assertions Modified: python/trunk/Lib/bsddb/test/test_dbtables.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_dbtables.py (original) +++ python/trunk/Lib/bsddb/test/test_dbtables.py Sun Oct 14 20:40:37 2007 @@ -78,7 +78,8 @@ tabname, [colname], conditions={colname: None}) colval = pickle.loads(values[0][colname]) - assert(colval > 3.141 and colval < 3.142) + self.assert_(colval > 3.141) + self.assert_(colval < 3.142) def test02(self): @@ -103,11 +104,11 @@ values = self.tdb.Select(tabname, [col2], conditions={col0: lambda x: pickle.loads(x) >= 8}) - assert len(values) == 2 + self.assertEqual(len(values), 2) if values[0]['Species'] == 'Penguin' : - assert values[1]['Species'] == 'SR-71A Blackbird' + self.assertEqual(values[1]['Species'], 'SR-71A Blackbird') elif values[0]['Species'] == 'SR-71A Blackbird' : - assert values[1]['Species'] == 'Penguin' + self.assertEqual(values[1]['Species'], 'Penguin') else : if verbose: print "values= %r" % (values,) @@ -137,13 +138,13 @@ {'a': "", 'e': pickle.dumps([{4:5, 6:7}, 'foo'], 1), 'f': "Zero"}) - assert 0 + self.fail('Expected an exception') except dbtables.TableDBError: pass try: self.tdb.Select(tabname, [], conditions={'foo': '123'}) - assert 0 + self.fail('Expected an exception') except dbtables.TableDBError: pass @@ -172,20 +173,20 @@ values = self.tdb.Select(tabname, ['b', 'a', 'd'], conditions={'e': re.compile('wuzzy').search, 'a': re.compile('^[0-9]+$').match}) - assert len(values) == 2 + self.assertEqual(len(values), 2) # now lets delete one of them and try again self.tdb.Delete(tabname, conditions={'b': dbtables.ExactCond('good')}) values = self.tdb.Select( tabname, ['a', 'd', 'b'], conditions={'e': dbtables.PrefixCond('Fuzzy')}) - assert len(values) == 1 - assert values[0]['d'] == None + self.assertEqual(len(values), 1) + self.assertEqual(values[0]['d'], None) values = self.tdb.Select(tabname, ['b'], conditions={'c': lambda c: c == 'meep'}) - assert len(values) == 1 - assert values[0]['b'] == "bad" + self.assertEqual(len(values), 1) + self.assertEqual(values[0]['b'], "bad") def test04_MultiCondSelect(self): @@ -201,7 +202,7 @@ {'a': "", 'e': pickle.dumps([{4:5, 6:7}, 'foo'], 1), 'f': "Zero"}) - assert 0 + self.fail('Expected an exception') except dbtables.TableDBError: pass @@ -225,7 +226,7 @@ 'a': dbtables.ExactCond('A'), 'd': dbtables.PrefixCond('-') } ) - assert len(values) == 0, values + self.assertEqual(len(values), 0, values) def test_CreateOrExtend(self): @@ -238,7 +239,7 @@ {'taste': 'crap', 'filling': 'no', 'is it Guinness?': 'no'}) - assert 0, "Insert should've failed due to bad column name" + self.fail("Insert should've failed due to bad column name") except: pass self.tdb.CreateOrExtendTable(tabname, @@ -272,16 +273,16 @@ values = self.tdb.Select( tabname, ['p', 'e'], conditions={'e': dbtables.PrefixCond('the l')}) - assert len(values) == 2, values - assert values[0]['e'] == values[1]['e'], values - assert values[0]['p'] != values[1]['p'], values + self.assertEqual(len(values), 2, values) + self.assertEqual(values[0]['e'], values[1]['e'], values) + self.assertNotEqual(values[0]['p'], values[1]['p'], values) values = self.tdb.Select( tabname, ['d', 'a'], conditions={'a': dbtables.LikeCond('%aardvark%')}) - assert len(values) == 1, values - assert values[0]['d'] == "is for dog", values - assert values[0]['a'] == "is for aardvark", values + self.assertEqual(len(values), 1, values) + self.assertEqual(values[0]['d'], "is for dog", values) + self.assertEqual(values[0]['a'], "is for aardvark", values) values = self.tdb.Select(tabname, None, {'b': dbtables.Cond(), @@ -290,9 +291,9 @@ 'd':dbtables.ExactCond('is for dog'), 'c':dbtables.PrefixCond('is for'), 'p':lambda s: not s}) - assert len(values) == 1, values - assert values[0]['d'] == "is for dog", values - assert values[0]['a'] == "is for aardvark", values + self.assertEqual(len(values), 1, values) + self.assertEqual(values[0]['d'], "is for dog", values) + self.assertEqual(values[0]['a'], "is for aardvark", values) def test_Delete(self): tabname = "test_Delete" @@ -308,7 +309,7 @@ self.tdb.Delete(tabname, conditions={'x': dbtables.PrefixCond('X')}) values = self.tdb.Select(tabname, ['y'], conditions={'x': dbtables.PrefixCond('X')}) - assert len(values) == 0 + self.assertEqual(len(values), 0) def test_Modify(self): tabname = "test_Modify" @@ -354,24 +355,24 @@ values = self.tdb.Select( tabname, None, conditions={'Type': dbtables.ExactCond('Unknown')}) - assert len(values) == 1, values - assert values[0]['Name'] == None, values - assert values[0]['Access'] == None, values + self.assertEqual(len(values), 1, values) + self.assertEqual(values[0]['Name'], None, values) + self.assertEqual(values[0]['Access'], None, values) # Modify value by select conditions values = self.tdb.Select( tabname, None, conditions={'Name': dbtables.ExactCond('Nifty.MP3')}) - assert len(values) == 1, values - assert values[0]['Type'] == "MP3", values - assert values[0]['Access'] == "2", values + self.assertEqual(len(values), 1, values) + self.assertEqual(values[0]['Type'], "MP3", values) + self.assertEqual(values[0]['Access'], "2", values) # Make sure change applied only to select conditions values = self.tdb.Select( tabname, None, conditions={'Name': dbtables.LikeCond('%doc%')}) - assert len(values) == 1, values - assert values[0]['Type'] == "Word", values - assert values[0]['Access'] == "9", values + self.assertEqual(len(values), 1, values) + self.assertEqual(values[0]['Type'], "Word", values) + self.assertEqual(values[0]['Access'], "9", values) def test_suite(): From buildbot at python.org Sun Oct 14 21:23:10 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 19:23:10 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI trunk Message-ID: <20071014192310.4A0901E4028@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%20trunk/builds/27 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 21:26:23 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 19:26:23 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20071014192623.AF5B81E402C@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/2253 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '0002-0002-0002-0002-0002' Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '2000-2000-2000-2000-2000' Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '1001-1001-1001-1001-1001' ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_dbtables.py", line 115, in test02 raise RuntimeError("Wrong values returned!") RuntimeError: Wrong values returned! ====================================================================== FAIL: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_dbtables.py", line 189, in test03 self.assertEqual(values[0]['b'], "bad") AssertionError: None != 'bad' make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 21:36:52 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 19:36:52 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071014193652.5AC5A1E4011@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/113 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 523, in __init__ self.handle() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 299, in handle_one_request self.raw_requestline = self.rfile.readline() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/socket.py", line 366, in readline data = self._sock.recv(self._rbufsize) error: [Errno 35] Resource temporarily unavailable Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 523, in __init__ self.handle() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 299, in handle_one_request self.raw_requestline = self.rfile.readline() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/socket.py", line 366, in readline data = self._sock.recv(self._rbufsize) error: [Errno 35] Resource temporarily unavailable 1 test failed: test_bsddb3 ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_dbtables.py", line 341, in test_Modify mappings={'Access': increment_access}) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/dbtables.py", line 455, in Modify dataitem = mappings[column](dataitem) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/bsddb/test/test_dbtables.py", line 328, in increment_access return str(int(count)+1) TypeError: int() argument must be a string or a number, not 'NoneType' sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 21:56:07 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 19:56:07 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071014195607.5764F1E402C@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/217 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sun Oct 14 23:07:47 2007 From: python-checkins at python.org (mateusz.rukowicz) Date: Sun, 14 Oct 2007 23:07:47 +0200 (CEST) Subject: [Python-checkins] r58462 - sandbox/trunk/decimal-c/_decimal.c Message-ID: <20071014210747.B375F1E4026@bag.python.org> Author: mateusz.rukowicz Date: Sun Oct 14 23:07:47 2007 New Revision: 58462 Modified: sandbox/trunk/decimal-c/_decimal.c Log: Added 05up rounding. Fixed some issues with NaNs and precision (now NaNs diagnostics are truncated to context precision digits). Modified: sandbox/trunk/decimal-c/_decimal.c ============================================================================== --- sandbox/trunk/decimal-c/_decimal.c (original) +++ sandbox/trunk/decimal-c/_decimal.c Sun Oct 14 23:07:47 2007 @@ -1157,7 +1157,8 @@ #define ROUND_HALF_UP 4 #define ROUND_FLOOR 5 #define ROUND_CEILING 6 -#define VALID_ROUND(x) ((x) <= ROUND_CEILING && (x) >= ROUND_DOWN) +#define ROUND_05UP 7 +#define VALID_ROUND(x) ((x) <= ROUND_05UP && (x) >= ROUND_DOWN) /* for context->rounding_dec */ #define ALWAYS_ROUND 0 @@ -1277,6 +1278,7 @@ static decimalobject *_do_decimal_subtract(decimalobject *, decimalobject *, contextobject *); static PyObject *context_ignore_flags(contextobject *self, PyObject *args); static decimalobject *_do_decimal_power(decimalobject *, decimalobject *, decimalobject *, contextobject *); +static decimalobject *_decimal_fix_nan(decimalobject *self, contextobject *ctx); static int _decimal_isint(decimalobject*); /* Exception handlers *********************************************************/ @@ -1306,7 +1308,7 @@ handle_InvalidOperation(PyTypeObject *type, contextobject *ctx, char *expl, decimalobject *thing) { - decimalobject *res; + decimalobject *res, *res2; long sign, i; HANDLE_ERROR(ctx, S_INV_OPERATION, expl, NULL); @@ -1320,13 +1322,16 @@ sign = SIGN_NEGNAN; else sign = SIGN_POSNAN; - + /* TODO actually, we don't need to call fixnan, but we do in case it will change */ res = _new_decimalobj(type, thing->ob_size, sign, exp_from_i(0)); if (!res) return NULL; for (i = 0; i< res->limb_count;i++) res->limbs[i] = thing->limbs[i]; - return res; + res2 = _decimal_fix_nan(res, ctx); + if(!res2) return NULL; + Py_DECREF(res); + return res2; } static decimalobject * @@ -1545,14 +1550,11 @@ return -1; return 1; } - + /* decimal_fix gives us new reference, no INCREF requiered */ if (nan1) - *res = x; + *res = _decimal_fix_nan(x, ctx); else - *res = y; - /* since handle_InvalidOperation above returns new references, to be - * consistent we must incref the returns here too. */ - Py_INCREF(*res); + *res = _decimal_fix_nan(y, ctx); return 1; } return 0; @@ -1743,12 +1745,21 @@ return _round_down(self, prec, expdiff, ctx); } +/* Round up if digit prec-1 (0 based) is 0 or 5, otherwise round down*/ +static decimalobject * +_round_05up(decimalobject *self, long prec, exp_t expdiff, contextobject *ctx) { + long dig = _limb_get_digit(self->limbs, self->ob_size, prec-1); + if(dig == 0 || dig == 5) + return _round_up(self, prec, expdiff, ctx); + else return _round_down(self, prec, expdiff, ctx); +} + /* Mapping rounding constants to functions. Since in C this can be indexed with any value, it's important to check the rounding constants before! */ typedef decimalobject*(*round_func)(decimalobject *, long, exp_t, contextobject *); static round_func round_funcs[] = { _round_down, _round_up, _round_half_down, _round_half_even, - _round_half_up, _round_floor, _round_ceiling + _round_half_up, _round_floor, _round_ceiling, _round_05up }; /* default: prec=-1, rounding=-1 (use context values), see the ROUND_* constants */ @@ -2116,12 +2127,35 @@ return NULL; } + +static decimalobject * +_decimal_fix_nan(decimalobject *self, contextobject *ctx) { + long max_diagnostic_len = ctx->prec - ctx->clamp; + long limbs = (max_diagnostic_len + LOG - 1) / LOG; + int i; + if(self->ob_size <= max_diagnostic_len) { + Py_INCREF(self); + return self; + } + /* we need to copy first ceil(self->ob_size / LOG) limbs, and set size + * because we truncate most significant limbs */ + decimalobject *ans = _new_decimalobj(self->ob_type, max_diagnostic_len, self->sign, self->exp); + if(!ans) + return NULL; + for(i = 0; i < limbs; i ++) { + ans->limbs[i] = self->limbs[i]; + } + return ans; +} + static decimalobject * _decimal_fix(decimalobject *self, contextobject *ctx) { decimalobject *ans = NULL; if (ISSPECIAL(self)) { + if(GETNAN(self)) + return _decimal_fix_nan(self, ctx); Py_INCREF(self); return self; } @@ -2144,6 +2178,8 @@ return ans; } +//this one cuts off diagnostic information + static PyObject * decimal_fix(decimalobject *self, PyObject *args, PyObject *kwds) { @@ -6633,8 +6669,9 @@ return NULL; finish: - if (size > ctx->prec) - return handle_ConversionSyntax(type, ctx, "diagnostic info too long"); + /* not used anymore */ +/* if (size > ctx->prec) + return handle_ConversionSyntax(type, ctx, "diagnostic info too long"); */ new = _new_decimalobj(type, size, sign, exp_from_i(0)); if (!new) @@ -8297,6 +8334,9 @@ case ROUND_CEILING: strcat(roundstr, "CEILING"); break; + case ROUND_05UP: + strcat(roundstr, "05UP"); + break; default: strcpy(roundstr, "None"); } @@ -8553,19 +8593,21 @@ if (PyString_Check(value)) { char *buffer = PyString_AS_STRING(value); if (!strcmp("ROUND_DOWN", buffer)) - new_round = 0; + new_round = ROUND_DOWN; else if (!strcmp("ROUND_UP", buffer)) - new_round = 1; + new_round = ROUND_UP; else if (!strcmp("ROUND_HALF_DOWN", buffer)) - new_round = 2; + new_round = ROUND_HALF_DOWN; else if (!strcmp("ROUND_HALF_EVEN", buffer)) - new_round = 3; + new_round = ROUND_HALF_EVEN; else if (!strcmp("ROUND_HALF_UP", buffer)) - new_round = 4; + new_round = ROUND_HALF_UP; else if (!strcmp("ROUND_FLOOR", buffer)) - new_round = 5; + new_round = ROUND_FLOOR; else if (!strcmp("ROUND_CEILING", buffer)) - new_round = 6; + new_round = ROUND_CEILING; + else if (!strcmp("ROUND_05UP", buffer)) + new_round = ROUND_05UP; } else if (new_round == -1) { PyErr_SetString(PyExc_TypeError, "Rounding should be int or string"); @@ -8813,6 +8855,7 @@ ADD_CONST(m, ROUND_HALF_UP); ADD_CONST(m, ROUND_FLOOR); ADD_CONST(m, ROUND_CEILING); + ADD_CONST(m, ROUND_05UP); ADD_CONST(m, ALWAYS_ROUND); ADD_CONST(m, NEVER_ROUND); From buildbot at python.org Sun Oct 14 23:28:04 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 21:28:04 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20071014212805.1B6FA1E4026@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/152 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test__locale test_pwd ====================================================================== ERROR: test_float_parsing (test.test__locale._LocaleTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/3.0.loewis-sun/build/Lib/test/test__locale.py", line 116, in test_float_parsing if localeconv()['decimal_point'] != '.': UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 0: unexpected code byte ====================================================================== ERROR: test_lc_numeric_basic (test.test__locale._LocaleTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/3.0.loewis-sun/build/Lib/test/test__locale.py", line 88, in test_lc_numeric_basic li_radixchar = localeconv()[lc] UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 0: unexpected code byte ====================================================================== ERROR: test_lc_numeric_localeconv (test.test__locale._LocaleTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/3.0.loewis-sun/build/Lib/test/test__locale.py", line 76, in test_lc_numeric_localeconv self.numeric_tester('localeconv', localeconv()[lc], lc, loc) UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 0: unexpected code byte ====================================================================== ERROR: test_lc_numeric_nl_langinfo (test.test__locale._LocaleTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/3.0.loewis-sun/build/Lib/test/test__locale.py", line 65, in test_lc_numeric_nl_langinfo self.numeric_tester('nl_langinfo', nl_langinfo(li), lc, loc) UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 0: unexpected code byte ====================================================================== ERROR: test_errors (test.test_pwd.PwdTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_pwd.py", line 54, in test_errors for (n, p, u, g, gecos, d, s) in pwd.getpwall(): UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1-6: unsupported Unicode code range ====================================================================== ERROR: test_values (test.test_pwd.PwdTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_pwd.py", line 9, in test_values entries = pwd.getpwall() UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1-6: unsupported Unicode code range sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 23:33:01 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 21:33:01 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20071014213301.1D9E21E402C@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/144 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_email test_socket ====================================================================== ERROR: test_same_boundary_inner_outer (email.test.test_email.TestNonConformant) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/email/test/test_email.py", line 1445, in test_same_boundary_inner_outer msg = self._msgobj('msg_15.txt') File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/email/test/test_email.py", line 67, in _msgobj return email.message_from_file(fp) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/email/__init__.py", line 46, in message_from_file return Parser(*args, **kws).parse(fp) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/email/parser.py", line 68, in parse data = fp.read(8192) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/io.py", line 1230, in read readahead, pending = self._read_chunk() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/io.py", line 1126, in _read_chunk pending = self._decoder.decode(readahead, not readahead) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xbe in position 86: ordinal not in range(128) ====================================================================== ERROR: testGetServBy (test.test_socket.GeneralModuleTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_socket.py", line 354, in testGetServBy raise socket.error socket.error make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 23:37:15 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 21:37:15 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 3.0 Message-ID: <20071014213715.8CD5C1E402C@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%203.0/builds/80 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: 12 tests failed: test_csv test_dumbdbm test_file test_fileinput test_gettext test_io test_largefile test_mailbox test_netrc test_pep277 test_subprocess test_tempfile ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_csv.py", line 500, in test_read_escape_fieldsep self.readerAssertEqual('abc\\,def\r\n', [['abc,def']]) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestQuotedEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_csv.py", line 513, in test_read_escape_fieldsep self.readerAssertEqual('"abc\\,def"\r\n', [['abc,def']]) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== ERROR: test_line_endings (test.test_dumbdbm.DumbDBMTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_dumbdbm.py", line 121, in test_line_endings f = dumbdbm.open(_fname) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\dumbdbm.py", line 256, in open return _Database(file, mode) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\dumbdbm.py", line 73, in __init__ self._update() File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\dumbdbm.py", line 85, in _update key, pos_and_siz_pair = eval(line) File "", line 0 ^ SyntaxError: unexpected EOF while parsing ====================================================================== ERROR: testTruncateOnWindows (test.test_file.OtherFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_file.py", line 212, in testTruncateOnWindows os.unlink(TESTFN) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== FAIL: test_buffer_sizes (test.test_fileinput.BufferSizesTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_fileinput.py", line 42, in test_buffer_sizes self.buffer_size_test(t1, t2, t3, t4, bs, round) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_fileinput.py", line 119, in buffer_size_test self.assertNotEqual(m, None) AssertionError: None == None ====================================================================== ERROR: test_weird_metadata (test.test_gettext.WeirdMetadataTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_gettext.py", line 335, in test_weird_metadata self.assertEqual(info['last-translator'], KeyError: 'last-translator' ====================================================================== FAIL: test_buffered_file_io (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 163, in test_buffered_file_io self.write_ops(f) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 97, in write_ops self.assertEqual(f.tell(), 13) AssertionError: 12 != 13 ====================================================================== FAIL: test_large_file_ops (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 206, in test_large_file_ops self.large_file_ops(f) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 139, in large_file_ops self.assertEqual(f.tell(), self.LARGE + 2) AssertionError: 2147483649 != 2147483650 ====================================================================== FAIL: test_raw_file_io (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 149, in test_raw_file_io self.write_ops(f) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_io.py", line 97, in write_ops self.assertEqual(f.tell(), 13) AssertionError: 12 != 13 ====================================================================== ERROR: test_add (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 697, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_close (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_from_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_mbox_or_mmdf_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_conflict (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_open_close_open (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_relock (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_close (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_from_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_mbox_or_mmdf_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_conflict (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_open_close_open (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_relock (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_remove_folders (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_folder (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_list_folders (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pack (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_sequences (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_labels (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_date (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_info (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_info_and_flags (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_subdir (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_from (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_unixfrom (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_sequences (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_labels (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_visible (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_from (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_unixfrom (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteration (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_read (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readline (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readlines (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_seek_and_tell (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteration (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_read (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readline (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readlines (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_seek_and_tell (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: Test an empty maildir mailbox ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_both (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_cur (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_new (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_unix_mbox (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMaildir) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 407, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: None ====================================================================== FAIL: test_add (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_mailbox.py", line 76, in test_add self.assertEqual(self._box.get_string(keys[0]), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== ERROR: test_case_1 (test.test_netrc.NetrcTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_netrc.py", line 31, in setUp self.netrc = netrc.netrc(temp_filename) File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\netrc.py", line 56, in __init__ "bad toplevel token %r" % tt, file, lexer.lineno) netrc.NetrcParseError: bad toplevel token 'line1' (@test, line 9) ====================================================================== ERROR: test_directory (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1097, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_failures (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1097, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_listdir (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1097, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_open (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1097, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_rename (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1097, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_communicate (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_subprocess.py", line 303, in test_communicate (stdout, stderr) = p.communicate("banana") File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\subprocess.py", line 597, in communicate return self._communicate(input) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\subprocess.py", line 812, in _communicate self.stdin.write(input) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 806, in write raise TypeError("can't write str to binary stream") TypeError: can't write str to binary stream ====================================================================== ERROR: test_no_leaking (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_subprocess.py", line 404, in test_no_leaking data = p.communicate("lime")[0] File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\subprocess.py", line 597, in communicate return self._communicate(input) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\subprocess.py", line 812, in _communicate self.stdin.write(input) File "c:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 806, in write raise TypeError("can't write str to binary stream") TypeError: can't write str to binary stream ====================================================================== ERROR: test_shell_sequence (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_subprocess.py", line 633, in test_shell_sequence self.assertNotEqual(p.stdout.read().find("physalis"), -1) TypeError: Type str doesn't support the buffer API ====================================================================== ERROR: test_shell_string (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_subprocess.py", line 642, in test_shell_string self.assertNotEqual(p.stdout.read().find("physalis"), -1) TypeError: Type str doesn't support the buffer API ====================================================================== FAIL: test_text_mode (test.test_tempfile.test_SpooledTemporaryFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_tempfile.py", line 747, in test_text_mode self.assertEqual(f.read(), "abc\ndef\nxyzzy\n") AssertionError: 'abc\n\ndef\n\nxyzzy\n\n' != 'abc\ndef\nxyzzy\n' sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 23:40:12 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 21:40:12 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20071014214012.A6B6E1E402D@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/116 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/bsddb/test/test_thread.py", line 80, in writerThread self._writerThread(*args, **kwargs) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/bsddb/test/test_thread.py", line 269, in _writerThread self.assertEqual(data, self.makeData(key)) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/unittest.py", line 325, in failUnlessEqual raise self.failureException(msg or '%r != %r' % (first, second)) AssertionError: None != b'0009-0009-0009-0009-0009' Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/bsddb/test/test_thread.py", line 80, in writerThread self._writerThread(*args, **kwargs) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/bsddb/test/test_thread.py", line 269, in _writerThread self.assertEqual(data, self.makeData(key)) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/unittest.py", line 325, in failUnlessEqual raise self.failureException(msg or '%r != %r' % (first, second)) AssertionError: None != b'1002-1002-1002-1002-1002' Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/bsddb/test/test_thread.py", line 80, in writerThread self._writerThread(*args, **kwargs) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/bsddb/test/test_thread.py", line 269, in _writerThread self.assertEqual(data, self.makeData(key)) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/unittest.py", line 325, in failUnlessEqual raise self.failureException(msg or '%r != %r' % (first, second)) AssertionError: None != b'2010-2010-2010-2010-2010' 2 tests failed: test_logging test_xmlrpc ====================================================================== FAIL: test_introspection1 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 354, in test_introspection1 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_introspection2 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 365, in test_introspection2 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_introspection3 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 378, in test_introspection3 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_multicall (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 395, in test_multicall self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_simple1 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 341, in test_simple1 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_basic (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/test/test_xmlrpc.py", line 447, in test_basic self.fail("%s\n%s" % (e, e.headers)) AssertionError: make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 23:41:58 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 21:41:58 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD 3.0 Message-ID: <20071014214158.63BAB1E402D@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%203.0/builds/72 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/SocketServer.py", line 522, in __init__ self.handle() File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 330, in handle self.handle_one_request() File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 313, in handle_one_request self.raw_requestline = self.rfile.readline() File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/io.py", line 379, in readline b = self.read(nreadahead()) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/io.py", line 365, in nreadahead readahead = self.peek(1, unsafe=True) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/io.py", line 757, in peek current = self.raw.read(to_read) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/io.py", line 441, in read n = self.readinto(b) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/socket.py", line 292, in readinto return self._sock.recv_into(b) socket.error: [Errno 35] Resource temporarily unavailable 3 tests failed: test_asynchat test_email test_xmlrpc ====================================================================== FAIL: test_close_when_done (test.test_asynchat.TestAsynchat) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/test/test_asynchat.py", line 211, in test_close_when_done self.assertTrue(len(s.buffer) > 0) AssertionError: None ====================================================================== FAIL: test_close_when_done (test.test_asynchat.TestAsynchat_WithPoll) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/test/test_asynchat.py", line 211, in test_close_when_done self.assertTrue(len(s.buffer) > 0) AssertionError: None ====================================================================== ERROR: test_same_boundary_inner_outer (email.test.test_email.TestNonConformant) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/email/test/test_email.py", line 1445, in test_same_boundary_inner_outer msg = self._msgobj('msg_15.txt') File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/email/test/test_email.py", line 67, in _msgobj return email.message_from_file(fp) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/email/__init__.py", line 46, in message_from_file return Parser(*args, **kws).parse(fp) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/email/parser.py", line 68, in parse data = fp.read(8192) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/io.py", line 1230, in read readahead, pending = self._read_chunk() File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/io.py", line 1126, in _read_chunk pending = self._decoder.decode(readahead, not readahead) File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xbe in position 86: ordinal not in range(128) ====================================================================== FAIL: test_introspection1 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/test/test_xmlrpc.py", line 354, in test_introspection1 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_introspection2 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/test/test_xmlrpc.py", line 365, in test_introspection2 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_introspection3 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/test/test_xmlrpc.py", line 378, in test_introspection3 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_multicall (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/test/test_xmlrpc.py", line 395, in test_multicall self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_simple1 (test.test_xmlrpc.SimpleServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/test/test_xmlrpc.py", line 341, in test_simple1 self.fail("%s\n%s" % (e, e.headers)) AssertionError: ====================================================================== FAIL: test_basic (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.0.bolen-freebsd/build/Lib/test/test_xmlrpc.py", line 447, in test_basic self.fail("%s\n%s" % (e, e.headers)) AssertionError: sincerely, -The Buildbot From buildbot at python.org Sun Oct 14 23:47:28 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 21:47:28 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian 3.0 Message-ID: <20071014214728.2C36A1E4026@bag.python.org> The Buildbot has detected a new failure of S-390 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%203.0/builds/142 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_ctypes test_email ====================================================================== FAIL: test_longdouble (ctypes.test.test_callbacks.Callbacks) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-s390/build/Lib/ctypes/test/test_callbacks.py", line 81, in test_longdouble self.check_type(c_longdouble, 3.14) File "/home/pybot/buildarea/3.0.klose-debian-s390/build/Lib/ctypes/test/test_callbacks.py", line 22, in check_type self.failUnlessEqual(self.got_args, (arg,)) AssertionError: (-inf,) != (3.1400000000000001,) ====================================================================== ERROR: test_same_boundary_inner_outer (email.test.test_email.TestNonConformant) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-s390/build/Lib/email/test/test_email.py", line 1445, in test_same_boundary_inner_outer msg = self._msgobj('msg_15.txt') File "/home/pybot/buildarea/3.0.klose-debian-s390/build/Lib/email/test/test_email.py", line 67, in _msgobj return email.message_from_file(fp) File "/home/pybot/buildarea/3.0.klose-debian-s390/build/Lib/email/__init__.py", line 46, in message_from_file return Parser(*args, **kws).parse(fp) File "/home/pybot/buildarea/3.0.klose-debian-s390/build/Lib/email/parser.py", line 68, in parse data = fp.read(8192) File "/home/pybot/buildarea/3.0.klose-debian-s390/build/Lib/io.py", line 1230, in read readahead, pending = self._read_chunk() File "/home/pybot/buildarea/3.0.klose-debian-s390/build/Lib/io.py", line 1126, in _read_chunk pending = self._decoder.decode(readahead, not readahead) File "/home/pybot/buildarea/3.0.klose-debian-s390/build/Lib/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xbe in position 86: ordinal not in range(128) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Oct 15 00:47:44 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 22:47:44 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux 3.0 Message-ID: <20071014224744.4C4D51E4026@bag.python.org> The Buildbot has detected a new failure of ARM Linux 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%203.0/builds/24 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-arm Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Mon Oct 15 01:02:14 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Oct 2007 23:02:14 +0000 Subject: [Python-checkins] buildbot failure in MIPS Debian trunk Message-ID: <20071014230214.9330F1E4026@bag.python.org> The Buildbot has detected a new failure of MIPS Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/MIPS%20Debian%20trunk/builds/78 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-mips Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllib2net ====================================================================== ERROR: test_ftp (test.test_urllib2net.OtherNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 175, in test_ftp self._test_urls(urls, self._extra_handlers()) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 244, in _test_urls f = urllib2.urlopen(url, req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 380, in open response = self._open(req, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 398, in _open '_open', req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 358, in _call_chain result = func(*args) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1277, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1323, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 842, in __init__ self.init() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 848, in init self.ftp.connect(self.host, self.port, self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg TypeError: __init__() takes exactly 2 arguments (3 given) ====================================================================== ERROR: test_ftp_NoneNodefault (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 304, in test_ftp_NoneNodefault u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/", timeout=None) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 380, in open response = self._open(req, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 398, in _open '_open', req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 358, in _call_chain result = func(*args) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1277, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1323, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 842, in __init__ self.init() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 848, in init self.ftp.connect(self.host, self.port, self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg TypeError: __init__() takes exactly 2 arguments (3 given) ====================================================================== ERROR: test_ftp_NoneWithdefault (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 298, in test_ftp_NoneWithdefault u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/", timeout=None) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 380, in open response = self._open(req, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 398, in _open '_open', req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 358, in _call_chain result = func(*args) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1277, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1323, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 842, in __init__ self.init() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 848, in init self.ftp.connect(self.host, self.port, self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg TypeError: __init__() takes exactly 2 arguments (3 given) ====================================================================== ERROR: test_ftp_Value (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 308, in test_ftp_Value u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/", timeout=60) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 380, in open response = self._open(req, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 398, in _open '_open', req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 358, in _call_chain result = func(*args) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1277, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1323, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 842, in __init__ self.init() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 848, in init self.ftp.connect(self.host, self.port, self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg TypeError: __init__() takes exactly 2 arguments (3 given) ====================================================================== ERROR: test_ftp_basic (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/test/test_urllib2net.py", line 291, in test_ftp_basic u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/") File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 380, in open response = self._open(req, data) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 398, in _open '_open', req) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 358, in _call_chain result = func(*args) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1277, in ftp_open fw = self.connect_ftp(user, passwd, host, port, dirs, req.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib2.py", line 1323, in connect_ftp self.cache[key] = ftpwrapper(user, passwd, host, port, dirs, timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 842, in __init__ self.init() File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/urllib.py", line 848, in init self.ftp.connect(self.host, self.port, self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/home/pybot/buildarea/trunk.klose-debian-mips/build/Lib/socket.py", line 462, in create_connection raise error, msg TypeError: __init__() takes exactly 2 arguments (3 given) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Oct 15 03:52:17 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 15 Oct 2007 01:52:17 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 3.0 Message-ID: <20071015015225.6B3841E400A@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%203.0/builds/23 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Mon Oct 15 05:04:47 2007 From: python-checkins at python.org (mateusz.rukowicz) Date: Mon, 15 Oct 2007 05:04:47 +0200 (CEST) Subject: [Python-checkins] r58467 - sandbox/trunk/decimal-c/_decimal.c Message-ID: <20071015030447.7A2731E402F@bag.python.org> Author: mateusz.rukowicz Date: Mon Oct 15 05:04:46 2007 New Revision: 58467 Modified: sandbox/trunk/decimal-c/_decimal.c Log: Fixed issues with natural logarithm (However, this function is still TODO, since it's really slugish). Modified: sandbox/trunk/decimal-c/_decimal.c ============================================================================== --- sandbox/trunk/decimal-c/_decimal.c (original) +++ sandbox/trunk/decimal-c/_decimal.c Mon Oct 15 05:04:46 2007 @@ -2178,7 +2178,7 @@ return ans; } -//this one cuts off diagnostic information +/* this one cuts off diagnostic information */ static PyObject * decimal_fix(decimalobject *self, PyObject *args, PyObject *kwds) @@ -4720,6 +4720,10 @@ 5341, 4889, 4437, 39930, 35534, 31186, 26886, 22630, 18418, 14254, 10130, 6046, 20055}; +/* this function passes all tests, but I am not sure if it's always gives answer with + * error < 0.5 ulp. I am not sure if there exists such solution (it's ok if we just truncate + * digits, but problem arises when using rounding which checks if last digit is 5 + * and result ens with 50000...00001) */ static decimalobject * _do_decimal__ln(decimalobject *self, contextobject *ctx) { @@ -4812,7 +4816,11 @@ b->sign = 1; rounding = ctx1->rounding; - ctx1->rounding = ROUND_HALF_EVEN; + /* we'll calculate lower bound, There might be problem with + * result which ends wit 50...01 (I dont really think there is rational a, + * that ln(a) ends with 500000.... - and we actually operate on rational subset + * of R) */ + ctx1->rounding = ROUND_DOWN; tmp = _do_decimal_add(ans, b, ctx1); if (!tmp) goto err; @@ -4896,8 +4904,8 @@ rounding = ctx->rounding; ctx->rounding = ROUND_HALF_EVEN; - /* we add extra 1 at the end to make proper rounding */ - if (decimal_nonzero(ans) && !ISSPECIAL(ans)) { + /* we add extra 1 at the end to make proper rounding only if last digit is not 0 (to avoid 0.9999999...) */ + if (decimal_nonzero(ans) && !ISSPECIAL(ans) && (ans->limbs[0] % 10) != 9) { int i; From python-checkins at python.org Mon Oct 15 09:48:36 2007 From: python-checkins at python.org (armin.rigo) Date: Mon, 15 Oct 2007 09:48:36 +0200 (CEST) Subject: [Python-checkins] r58468 - python/trunk/Lib/test/test_zlib.py Message-ID: <20071015074836.39F401E4026@bag.python.org> Author: armin.rigo Date: Mon Oct 15 09:48:35 2007 New Revision: 58468 Modified: python/trunk/Lib/test/test_zlib.py Log: test_bigbits was not testing what it seemed to. Modified: python/trunk/Lib/test/test_zlib.py ============================================================================== --- python/trunk/Lib/test/test_zlib.py (original) +++ python/trunk/Lib/test/test_zlib.py Mon Oct 15 09:48:35 2007 @@ -42,14 +42,18 @@ class ExceptionTestCase(unittest.TestCase): # make sure we generate some expected errors - def test_bigbits(self): - # specifying total bits too large causes an error - self.assertRaises(zlib.error, - zlib.compress, 'ERROR', zlib.MAX_WBITS + 1) + def test_badlevel(self): + # specifying compression level out of range causes an error + # (but -1 is Z_DEFAULT_COMPRESSION and apparently the zlib + # accepts 0 too) + self.assertRaises(zlib.error, zlib.compress, 'ERROR', 10) def test_badcompressobj(self): # verify failure on building compress object with bad params self.assertRaises(ValueError, zlib.compressobj, 1, zlib.DEFLATED, 0) + # specifying total bits too large causes an error + self.assertRaises(ValueError, + zlib.compressobj, 1, zlib.DEFLATED, zlib.MAX_WBITS + 1) def test_baddecompressobj(self): # verify failure on building decompress object with bad params From buildbot at python.org Mon Oct 15 10:22:20 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 15 Oct 2007 08:22:20 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20071015082220.BCE821E4026@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/2545 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: armin.rigo BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '2000-2000-2000-2000-2000' Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '1001-1001-1001-1001-1001' Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '0002-0002-0002-0002-0002' make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Mon Oct 15 17:04:28 2007 From: python-checkins at python.org (mateusz.rukowicz) Date: Mon, 15 Oct 2007 17:04:28 +0200 (CEST) Subject: [Python-checkins] r58469 - sandbox/trunk/decimal-c/_decimal.c Message-ID: <20071015150428.C01D31E4017@bag.python.org> Author: mateusz.rukowicz Date: Mon Oct 15 17:04:28 2007 New Revision: 58469 Modified: sandbox/trunk/decimal-c/_decimal.c Log: Fixed some minor bug in richcompare. Modified: sandbox/trunk/decimal-c/_decimal.c ============================================================================== --- sandbox/trunk/decimal-c/_decimal.c (original) +++ sandbox/trunk/decimal-c/_decimal.c Mon Oct 15 17:04:28 2007 @@ -2451,7 +2451,7 @@ if (PyErr_Occurred()) return NULL; - if ( (res == 0 && (op == Py_EQ || op == Py_LE || op == Py_GT || op == Py_GE)) || + if ( (res == 0 && (op == Py_EQ || op == Py_LE || op == Py_GE)) || (res == -1 && (op == Py_NE || op == Py_LT || op == Py_LE)) || (res == 1 && (op == Py_NE || op == Py_GT || op == Py_GE))) Py_RETURN_TRUE; From python-checkins at python.org Mon Oct 15 17:54:11 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 15 Oct 2007 17:54:11 +0200 (CEST) Subject: [Python-checkins] r58471 - python/trunk/Parser/tokenizer.c Message-ID: <20071015155412.1AAF61E4028@bag.python.org> Author: guido.van.rossum Date: Mon Oct 15 17:54:11 2007 New Revision: 58471 Modified: python/trunk/Parser/tokenizer.c Log: Change a PyErr_Print() into a PyErr_Clear(), per discussion in issue 1031213. Modified: python/trunk/Parser/tokenizer.c ============================================================================== --- python/trunk/Parser/tokenizer.c (original) +++ python/trunk/Parser/tokenizer.c Mon Oct 15 17:54:11 2007 @@ -1542,7 +1542,7 @@ Py_DECREF(unicode_text); } if (!ret) { - PyErr_Print(); + PyErr_Clear(); } return ret; } From buildbot at python.org Mon Oct 15 18:42:32 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 15 Oct 2007 16:42:32 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc trunk Message-ID: <20071015164232.A0F011E4039@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%20trunk/builds/2357 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_urllib2 test_urllib2net ====================================================================== ERROR: test_trivial (test.test_urllib2.TrivialTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2.py", line 19, in test_trivial self.assertRaises(ValueError, urllib2.urlopen, 'bogus url') File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/unittest.py", line 329, in failUnlessRaises callableObj(*args, **kwargs) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_file (test.test_urllib2.HandlerTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2.py", line 619, in test_file r = h.file_open(Request(url)) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 1204, in file_open return self.open_local_file(req) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 1223, in open_local_file localfile = url2pathname(file) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 55, in url2pathname return unquote(pathname) TypeError: 'NoneType' object is not callable ====================================================================== ERROR: test_http (test.test_urllib2.HandlerTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2.py", line 725, in test_http r.read; r.readline # wrapped MockFile methods AttributeError: addinfourl instance has no attribute 'read' ====================================================================== ERROR: test_build_opener (test.test_urllib2.MiscTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2.py", line 1031, in test_build_opener o = build_opener(FooHandler, BarHandler) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: testURLread (test.test_urllib2net.URLTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 24, in testURLread f = urllib2.urlopen("http://www.python.org/") File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_bad_address (test.test_urllib2net.urlopenNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 147, in test_bad_address urllib2.urlopen, "http://www.python.invalid./") File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/unittest.py", line 329, in failUnlessRaises callableObj(*args, **kwargs) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_basic (test.test_urllib2net.urlopenNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 105, in test_basic open_url = urllib2.urlopen("http://www.python.org/") File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_geturl (test.test_urllib2net.urlopenNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 129, in test_geturl open_url = urllib2.urlopen(URL) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_info (test.test_urllib2net.urlopenNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 116, in test_info open_url = urllib2.urlopen("http://www.python.org/") File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_file (test.test_urllib2net.OtherNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 187, in test_file self._test_urls(urls, self._extra_handlers()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 235, in _test_urls urllib2.install_opener(urllib2.build_opener(*handlers)) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_ftp (test.test_urllib2net.OtherNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 175, in test_ftp self._test_urls(urls, self._extra_handlers()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 235, in _test_urls urllib2.install_opener(urllib2.build_opener(*handlers)) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_http (test.test_urllib2net.OtherNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 199, in test_http self._test_urls(urls, self._extra_handlers()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 235, in _test_urls urllib2.install_opener(urllib2.build_opener(*handlers)) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_range (test.test_urllib2net.OtherNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 160, in test_range result = urllib2.urlopen(req) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_close (test.test_urllib2net.CloseSocketTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 76, in test_close response = urllib2.urlopen("http://www.python.org/") File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_ftp_NoneNodefault (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 304, in test_ftp_NoneNodefault u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/", timeout=None) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_ftp_NoneWithdefault (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 298, in test_ftp_NoneWithdefault u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/", timeout=None) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_ftp_Value (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 308, in test_ftp_Value u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/", timeout=60) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_ftp_basic (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 291, in test_ftp_basic u = urllib2.urlopen("ftp://ftp.mirror.nl/pub/mirror/gnu/") File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_http_NoneNodefault (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 287, in test_http_NoneNodefault u = urllib2.urlopen("http://www.python.org", timeout=None) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_http_NoneWithdefault (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 277, in test_http_NoneWithdefault u = urllib2.urlopen("http://www.python.org", timeout=None) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_http_Value (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 283, in test_http_Value u = urllib2.urlopen("http://www.python.org", timeout=120) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' ====================================================================== ERROR: test_http_basic (test.test_urllib2net.TimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/test/test_urllib2net.py", line 270, in test_http_basic u = urllib2.urlopen("http://www.python.org") File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 123, in urlopen _opener = build_opener() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 461, in build_opener opener.add_handler(klass()) File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib2.py", line 670, in __init__ proxies = getproxies() File "/opt/users/buildbot/slave/trunk.loewis-sun/build/Lib/urllib.py", line 1280, in getproxies_environment for name, value in os.environ.items(): AttributeError: 'NoneType' object has no attribute 'environ' sincerely, -The Buildbot From buildbot at python.org Mon Oct 15 18:51:44 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 15 Oct 2007 16:51:44 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20071015165144.C2B631E4020@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/2300 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Mon Oct 15 18:56:28 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 15 Oct 2007 18:56:28 +0200 (CEST) Subject: [Python-checkins] r58473 - peps/trunk/pep-3137.txt Message-ID: <20071015165628.2748B1E4020@bag.python.org> Author: guido.van.rossum Date: Mon Oct 15 18:56:27 2007 New Revision: 58473 Modified: peps/trunk/pep-3137.txt Log: Add table of old and new names for affected types. Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Mon Oct 15 18:56:27 2007 @@ -73,6 +73,22 @@ While eventually it makes sense to change the C API names, this PEP maintains the old C API names, which should be familiar to all. +Summary +------- + +Here's a simple ASCII-art table summarizing the type names in various +Python versions:: + + +--------------+-------------+------------+--------------------+ + | C name | 2.x repr | 3.0a1 repr | 3.0a2 repr | + +--------------+-------------+------------+--------------------+ + | PyUnicode | unicode u"" | str "" | str "" | + | PyString | str "" | str8 s"" | bytes "" | + | PyBytes | N/A | bytes b"" | buffer buffer(b"") | + | PyBuffer | buffer N/A | buffer N/A | N/A | + | PyMemoryView | N/A | N/A | memoryview N/A | + +--------------+-------------+------------+--------------------+ + Literal Notations ================= From python-checkins at python.org Mon Oct 15 18:59:07 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 15 Oct 2007 18:59:07 +0200 (CEST) Subject: [Python-checkins] r58474 - peps/trunk/pep-3137.txt Message-ID: <20071015165907.40EF11E4020@bag.python.org> Author: guido.van.rossum Date: Mon Oct 15 18:59:06 2007 New Revision: 58474 Modified: peps/trunk/pep-3137.txt Log: Oops, "" should be b"" for PyString in last column. Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Mon Oct 15 18:59:06 2007 @@ -83,7 +83,7 @@ | C name | 2.x repr | 3.0a1 repr | 3.0a2 repr | +--------------+-------------+------------+--------------------+ | PyUnicode | unicode u"" | str "" | str "" | - | PyString | str "" | str8 s"" | bytes "" | + | PyString | str "" | str8 s"" | bytes b"" | | PyBytes | N/A | bytes b"" | buffer buffer(b"") | | PyBuffer | buffer N/A | buffer N/A | N/A | | PyMemoryView | N/A | N/A | memoryview N/A | From python-checkins at python.org Mon Oct 15 19:00:31 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 15 Oct 2007 19:00:31 +0200 (CEST) Subject: [Python-checkins] r58475 - peps/trunk/pep-3137.txt Message-ID: <20071015170031.E26551E4020@bag.python.org> Author: guido.van.rossum Date: Mon Oct 15 19:00:31 2007 New Revision: 58475 Modified: peps/trunk/pep-3137.txt Log: Don't put N/A in the repr column for PyBuffer or PyBytes. Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Mon Oct 15 19:00:31 2007 @@ -85,8 +85,8 @@ | PyUnicode | unicode u"" | str "" | str "" | | PyString | str "" | str8 s"" | bytes b"" | | PyBytes | N/A | bytes b"" | buffer buffer(b"") | - | PyBuffer | buffer N/A | buffer N/A | N/A | - | PyMemoryView | N/A | N/A | memoryview N/A | + | PyBuffer | buffer | buffer | N/A | + | PyMemoryView | N/A | N/A | memoryview | +--------------+-------------+------------+--------------------+ Literal Notations From python-checkins at python.org Mon Oct 15 19:05:13 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 15 Oct 2007 19:05:13 +0200 (CEST) Subject: [Python-checkins] r58476 - peps/trunk/pep-3137.txt Message-ID: <20071015170513.B0DA71E4020@bag.python.org> Author: guido.van.rossum Date: Mon Oct 15 19:05:13 2007 New Revision: 58476 Modified: peps/trunk/pep-3137.txt Log: Missed memoryview in the 3.0a1 column. Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Mon Oct 15 19:05:13 2007 @@ -86,7 +86,7 @@ | PyString | str "" | str8 s"" | bytes b"" | | PyBytes | N/A | bytes b"" | buffer buffer(b"") | | PyBuffer | buffer | buffer | N/A | - | PyMemoryView | N/A | N/A | memoryview | + | PyMemoryView | N/A | memoryview | memoryview | +--------------+-------------+------------+--------------------+ Literal Notations From python-checkins at python.org Mon Oct 15 19:13:10 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 15 Oct 2007 19:13:10 +0200 (CEST) Subject: [Python-checkins] r58477 - peps/trunk/pep-3137.txt Message-ID: <20071015171310.39D211E4020@bag.python.org> Author: guido.van.rossum Date: Mon Oct 15 19:13:07 2007 New Revision: 58477 Modified: peps/trunk/pep-3137.txt Log: Use '' instead of "" for repr, as that is the default repr. Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Mon Oct 15 19:13:07 2007 @@ -82,9 +82,9 @@ +--------------+-------------+------------+--------------------+ | C name | 2.x repr | 3.0a1 repr | 3.0a2 repr | +--------------+-------------+------------+--------------------+ - | PyUnicode | unicode u"" | str "" | str "" | - | PyString | str "" | str8 s"" | bytes b"" | - | PyBytes | N/A | bytes b"" | buffer buffer(b"") | + | PyUnicode | unicode u'' | str '' | str '' | + | PyString | str '' | str8 s'' | bytes b'' | + | PyBytes | N/A | bytes b'' | buffer buffer(b'') | | PyBuffer | buffer | buffer | N/A | | PyMemoryView | N/A | memoryview | memoryview | +--------------+-------------+------------+--------------------+ From python-checkins at python.org Mon Oct 15 21:02:27 2007 From: python-checkins at python.org (brett.cannon) Date: Mon, 15 Oct 2007 21:02:27 +0200 (CEST) Subject: [Python-checkins] r58478 - sandbox/trunk/import_in_py/Py3K/_importlib.py Message-ID: <20071015190227.0C5B11E4028@bag.python.org> Author: brett.cannon Date: Mon Oct 15 21:02:25 2007 New Revision: 58478 Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py Log: Use UTF-8 as the default encoding. This in no way helps deal with -*- stanzas, though. Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/_importlib.py (original) +++ sandbox/trunk/import_in_py/Py3K/_importlib.py Mon Oct 15 21:02:25 2007 @@ -134,7 +134,9 @@ def open_(path, flags): """Stand-in replacement for open() in case it is not available yet.""" try: - return open(path, flags) + # XXX Forcing UTF-8 is fine for a default but there are -*- stanzas to + # worry about at some point. + return open(path, flags, encoding="utf8") except NameError: return DinkyFile(path, flags) From python-checkins at python.org Mon Oct 15 21:12:15 2007 From: python-checkins at python.org (brett.cannon) Date: Mon, 15 Oct 2007 21:12:15 +0200 (CEST) Subject: [Python-checkins] r58479 - sandbox/trunk/import_in_py/Py3K/_importlib.py Message-ID: <20071015191215.9555B1E4028@bag.python.org> Author: brett.cannon Date: Mon Oct 15 21:11:53 2007 New Revision: 58479 Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py Log: Make sure that the encoding is not accidentally specified when dealing with binary. Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/_importlib.py (original) +++ sandbox/trunk/import_in_py/Py3K/_importlib.py Mon Oct 15 21:11:53 2007 @@ -136,7 +136,7 @@ try: # XXX Forcing UTF-8 is fine for a default but there are -*- stanzas to # worry about at some point. - return open(path, flags, encoding="utf8") + return open(path, flags, encoding=(None if 'b' in flags else "utf8")) except NameError: return DinkyFile(path, flags) From python-checkins at python.org Mon Oct 15 21:38:22 2007 From: python-checkins at python.org (brett.cannon) Date: Mon, 15 Oct 2007 21:38:22 +0200 (CEST) Subject: [Python-checkins] r58480 - sandbox/trunk/import_in_py/Py3K/_importlib.py Message-ID: <20071015193822.24B041E42C5@bag.python.org> Author: brett.cannon Date: Mon Oct 15 21:38:21 2007 New Revision: 58480 Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py Log: Use straight ASCII for text decoding until open() is set in site.py. Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/_importlib.py (original) +++ sandbox/trunk/import_in_py/Py3K/_importlib.py Mon Oct 15 21:38:21 2007 @@ -168,7 +168,7 @@ if self.binary: return read_out else: - return read_out.decode("utf8") + return str(read_out) def write(self, data): if not self.writing or not self.binary: From python-checkins at python.org Mon Oct 15 22:01:56 2007 From: python-checkins at python.org (brett.cannon) Date: Mon, 15 Oct 2007 22:01:56 +0200 (CEST) Subject: [Python-checkins] r58482 - sandbox/trunk/import_in_py/Py3K/tests/test_regression.py Message-ID: <20071015200156.802CC1E4038@bag.python.org> Author: brett.cannon Date: Mon Oct 15 22:01:56 2007 New Revision: 58482 Modified: sandbox/trunk/import_in_py/Py3K/tests/test_regression.py Log: Fix test to use marshal._r_long(). Modified: sandbox/trunk/import_in_py/Py3K/tests/test_regression.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/tests/test_regression.py (original) +++ sandbox/trunk/import_in_py/Py3K/tests/test_regression.py Mon Oct 15 22:01:56 2007 @@ -2,7 +2,6 @@ from tests import mock_importlib from tests.py_help import TestPyPycPackages -from importlib import _r_long import imp import marshal @@ -132,8 +131,7 @@ data = pyc_file.read() self.failUnlessEqual(data[:4], imp.get_magic()) py_mod = int(os.stat(self.py_path).st_mtime) - # XXX Using importer's _r_long. - pyc_mod = _r_long(data[4:8]) + pyc_mod = marshal._r_long(data[4:8]) self.failUnlessEqual(py_mod, pyc_mod) code = marshal.loads(data[8:]) module = mock_importlib.MockModule(self.module_name) From python-checkins at python.org Mon Oct 15 22:02:54 2007 From: python-checkins at python.org (brett.cannon) Date: Mon, 15 Oct 2007 22:02:54 +0200 (CEST) Subject: [Python-checkins] r58483 - sandbox/trunk/import_in_py/Py3K/_importlib.py Message-ID: <20071015200254.4F5881E402D@bag.python.org> Author: brett.cannon Date: Mon Oct 15 22:02:54 2007 New Revision: 58483 Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py Log: Remove an apparently unneeded try/except clause. Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/_importlib.py (original) +++ sandbox/trunk/import_in_py/Py3K/_importlib.py Mon Oct 15 22:02:54 2007 @@ -509,11 +509,8 @@ @check_name def load_module(self, fullname): """Load a Python source or bytecode file.""" - try: - code_object, path = self._handler(fullname, self._source_path(), - self._bytecode_path()) - except ValueError: - raise ImportError("loader cannot handle %s" % fullname) + code_object, path = self._handler(fullname, self._source_path(), + self._bytecode_path()) return self._module_init(code_object, fullname, path, self._is_pkg) @check_name From python-checkins at python.org Mon Oct 15 22:05:55 2007 From: python-checkins at python.org (brett.cannon) Date: Mon, 15 Oct 2007 22:05:55 +0200 (CEST) Subject: [Python-checkins] r58484 - sandbox/trunk/import_in_py/Py3K/_importlib.py Message-ID: <20071015200555.35DE01E4037@bag.python.org> Author: brett.cannon Date: Mon Oct 15 22:05:54 2007 New Revision: 58484 Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py Log: Add a comment about the assumption made in DinkyFile for decoding text. Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/_importlib.py (original) +++ sandbox/trunk/import_in_py/Py3K/_importlib.py Mon Oct 15 22:05:54 2007 @@ -168,6 +168,10 @@ if self.binary: return read_out else: + # Since codecs requires the ability to import from the encodings + # package, bytes.decode() cannot be used. This forces the + # assumption that all files imported before open() is set are + # encoded in ASCII. return str(read_out) def write(self, data): From python-checkins at python.org Mon Oct 15 23:00:24 2007 From: python-checkins at python.org (brett.cannon) Date: Mon, 15 Oct 2007 23:00:24 +0200 (CEST) Subject: [Python-checkins] r58487 - sandbox/trunk/import_in_py/Py3K/_importlib.py Message-ID: <20071015210024.082E41E4039@bag.python.org> Author: brett.cannon Date: Mon Oct 15 23:00:23 2007 New Revision: 58487 Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py Log: Add an XXX comment listing an idea on how to deal with -*- stanzas. Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/_importlib.py (original) +++ sandbox/trunk/import_in_py/Py3K/_importlib.py Mon Oct 15 23:00:23 2007 @@ -136,6 +136,12 @@ try: # XXX Forcing UTF-8 is fine for a default but there are -*- stanzas to # worry about at some point. + # XXX Opening in UTF-8 prevents the import of heapq and test_coding to + # fail at least. + # XXX Opening in Latin-1 causes test_pep263 and pep_3131 to fail. + # XXX One possible solution is to read the file in as bytes, do the + # universal newline translation, and then look for the -*- stanza to + # then do a bytes.decode() call (basically do PEPs 263 and 278). return open(path, flags, encoding=(None if 'b' in flags else "utf8")) except NameError: return DinkyFile(path, flags) From python-checkins at python.org Mon Oct 15 23:04:19 2007 From: python-checkins at python.org (brett.cannon) Date: Mon, 15 Oct 2007 23:04:19 +0200 (CEST) Subject: [Python-checkins] r58489 - peps/trunk/pep-3137.txt Message-ID: <20071015210419.4E6F61E402D@bag.python.org> Author: brett.cannon Date: Mon Oct 15 23:04:19 2007 New Revision: 58489 Modified: peps/trunk/pep-3137.txt Log: Fix a reST typo; someone has used too much LaTeX. Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Mon Oct 15 23:04:19 2007 @@ -190,7 +190,7 @@ the return type is that of the first argument (this seems arbitrary until you consider how ``+=`` works). - - ``b1 += b2'': mutates b1 if it is a buffer object. + - ``b1 += b2``: mutates b1 if it is a buffer object. - ``b * n``, ``n * b``: repetition; n must be an integer. From python-checkins at python.org Tue Oct 16 01:23:29 2007 From: python-checkins at python.org (brett.cannon) Date: Tue, 16 Oct 2007 01:23:29 +0200 (CEST) Subject: [Python-checkins] r58490 - sandbox/trunk/import_in_py/Py3K/_importlib.py Message-ID: <20071015232329.649AA1E402D@bag.python.org> Author: brett.cannon Date: Tue Oct 16 01:23:29 2007 New Revision: 58490 Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py Log: Add yet another comment about how to possibly deal with source file encodings and -*- markers through exposing more of the C implementation of import.c. Either way, though, if the imp API stays (e.g., imp.find_module()) then exposing this won't help with opening the file object properly. Modified: sandbox/trunk/import_in_py/Py3K/_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/Py3K/_importlib.py (original) +++ sandbox/trunk/import_in_py/Py3K/_importlib.py Tue Oct 16 01:23:29 2007 @@ -142,6 +142,7 @@ # XXX One possible solution is to read the file in as bytes, do the # universal newline translation, and then look for the -*- stanza to # then do a bytes.decode() call (basically do PEPs 263 and 278). + # XXX Otherwise consider exposing Python/import.c:parse_source_module(). return open(path, flags, encoding=(None if 'b' in flags else "utf8")) except NameError: return DinkyFile(path, flags) From buildbot at python.org Tue Oct 16 02:33:06 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Oct 2007 00:33:06 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux 3.0 Message-ID: <20071016003307.042261E421C@bag.python.org> The Buildbot has detected a new failure of ARM Linux 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%203.0/builds/29 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-arm Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Tue Oct 16 07:11:10 2007 From: python-checkins at python.org (mateusz.rukowicz) Date: Tue, 16 Oct 2007 07:11:10 +0200 (CEST) Subject: [Python-checkins] r58492 - sandbox/trunk/decimal-c/_decimal.c Message-ID: <20071016051110.8909A1E402D@bag.python.org> Author: mateusz.rukowicz Date: Tue Oct 16 07:11:09 2007 New Revision: 58492 Modified: sandbox/trunk/decimal-c/_decimal.c Log: Completely rewritten sqrt. Now it's faster and better :>. Modified: sandbox/trunk/decimal-c/_decimal.c ============================================================================== --- sandbox/trunk/decimal-c/_decimal.c (original) +++ sandbox/trunk/decimal-c/_decimal.c Tue Oct 16 07:11:09 2007 @@ -212,6 +212,25 @@ } } +/* self = self * 10 + dig */ +static void +_limb_add_one_digit(long *self, long ndigits, long dig) { + long i; + /* it's not bug, we have ndigits + 1 digs */ + long limb_count = (ndigits + LOG)/LOG; + + if(ndigits % LOG == 0) + self[limb_count-1] = 0; /* we added extra limb, clear it */ + + for(i = limb_count-1; i > 0; i--) { + self[i] *= 10; + self[i] += self[i-1] / (BASE/10); + self[i-1] %= (BASE/10); + } + self[0] *= 10; + self[0] += dig; +} + static void _limb_fill(long *self, long ndigits, long x) { @@ -486,7 +505,7 @@ /* XXX it's naive dividing, very slow */ /* min_new_pos tells, when we should stop dividing, useful for integer division * make it > flimbs - 2, and it will have no impact*/ - +/* function assumes that rest is filled with 0s */ static long _limb_divide(long *first, long flimbs, long *second, long slimbs, long *out, long prec, long *rest, long min_new_pos) @@ -589,6 +608,67 @@ free(tmp); return new_pos; } + + +/* integer division, returns how many limbs result has */ +static long +_limb_integer_divide(long *first, long flimbs, long *second, long slimbs, long *out, long *remainder) { + long rpos; + int i; + rpos = _limb_divide(first, flimbs, second, slimbs, out, flimbs, remainder, -1); + /* this is index of first limb that is before dot */ + rpos ++; + for(i = rpos; i < flimbs; i ++) + out[i-rpos] = out[i]; + return _limb_size(out, flimbs - rpos); + +} +/* computes floor(sqrt(first)), first and result are integers, + * res should have at least (flimbs+1)/2 + 1 size */ +static long +_limb_sqrt(long *first, long flimbs, long *res) { + /* it's Newton's method, we start with x_1 = first */ + int i; + int cmp_res; + int rlimbs; + int qlimbs; + long *remainder; + long *quot = (long*)malloc(sizeof(long) * (flimbs + 1)); + remainder = (long*)malloc(sizeof(long) * (flimbs + 1)); + + /* upper bound */ + rlimbs = (flimbs + 1) / 2 + 1; + for(i = 0; i < rlimbs-1; i++) + res[i] = 0; + res[rlimbs-1] = 1; + + while(1) { + /* quot = floor(first / res */ + memset(remainder, 0, (flimbs + 1) * sizeof(long)); + qlimbs = _limb_integer_divide(first, flimbs, res, rlimbs, quot, remainder); + + /* if rest <= quot then break - we stop here because otherwise result would grow + * and become ceiling instead of floor */ + cmp_res = _limb_compare(res, rlimbs, quot, qlimbs); + if(cmp_res <= 0) + break; + + /* res = res + quot */ + rlimbs = (_limb_add(res, LOG * rlimbs, quot, LOG * qlimbs, res) + LOG - 1) / LOG; + + /* res = floor(res / 2) */ + for(i=rlimbs-1;i>0;i--) { + res[i-1] += (res[i] &1) * BASE; + res[i] >>= 1; + } + res[0] >>= 1; + if(rlimbs > 1 &&!res[rlimbs-1]) rlimbs --; + } + free(remainder); + free(quot); + return rlimbs; +} + /* static long _limb_normalize(long *first, long size) { @@ -3059,20 +3139,17 @@ static decimalobject * _do_decimal_sqrt(decimalobject *self, contextobject *ctx) { - decimalobject *ret = 0; - decimalobject *ans = 0; - decimalobject *tmp = 0, *tmp2 = 0, *tmp3 = 0; - contextobject *ctx2 = 0; - decimalobject *half = 0; - PyObject *flags = 0; - exp_t expadd; - long firstprec; - long i; - exp_t Emax; - exp_t Emin; - long maxp; - long rounding; - exp_t prevexp; + decimalobject *ret = 0, *ret2 = 0; + long *b_tab; /* our temporal storage for integer DD */ + long b_limbs; + exp_t e; /* as below */ + int i; + int exact = 1; /* is result exact */ + int shift = 0; /* in case result is exact - we need + to restore perfect exponent */ + long ret_limbs; + int rounding; + if (ISSPECIAL(self)) { decimalobject *nan; @@ -3099,307 +3176,147 @@ return handle_InvalidOperation(self->ob_type, ctx, "sqrt(-x), x > 0", NULL); } - tmp = _NEW_decimalobj(self->ob_size + 1, self->sign, self->exp); - - if (!tmp) - return NULL; - - expadd = exp_floordiv_i(tmp->exp, 2); - - if (exp_mod_i(tmp->exp, 2)) { - _limb_first_n_digits(self->limbs, self->ob_size, 0, tmp->limbs, tmp->ob_size); + /* The idea is pretty much the same that in Python code. + * Assume, that we have real a, computed with precision prec + 1 + * that a <= sqrt(self) < a + 1ULP, and we know if a == sqrt(self) + * (is it exact). With this a, we have two cases: + * a) a == sqrt(self) -- just round a, and return + * b) otherwise -- we know, that a < sqrt(self) < a + 1ULP + * the only problem that arise, is when a ends with 5 or 0 (this is + * the only case, that ROUND_HALF_EVEN will give incorrect result, + * because if result ends with 5 or 5000..0, it's actually bigger) + * so we just check last digit, if it's 5, we add 1ULP to a, round, + * and return. + * + * So now we want to find a. We'll find such b and e, that + * self = b * 10^e, e mod 2 == 0, e is integer and + * floor(sqrt(b)) has at last prec+1 significant digits -- that is + * c = floor(sqrt(b)) 10^(prec) <= c, so 10^(prec) <= sqrt(b), so + * 10^(2*prec) <= b. Given b and e, a = floor(sqrt(floor(b)) * 10^(e/2) + * we know that floor(sqrt(floor(b)) <= sqrt(b), so + * a <= sqrt(b) * 10^(e/2) = self. On the other side + * floor(sqrt(floor(b)) <= sqrt(b) < floor(sqrt(floor(b)) + 1 + * [the proof is pretty straightforward, show that there is no x /in (i,i+1) + * that sqrt(x) is integer for any integer i] + * Concluding, self < (a+1) * 10^(e/2) = a * 10^(e/2) + 10^(e/2) = a * 10^(e/2) + 1ULP [] + * Concluding (one more time), we get b with at least 2*prec + 1 digits + * and we make sure, that e is even, self = b * 10^e; now, we truncate + * fractional part b (let DD = floor(b)), and set a = floor(sqrt(DD)) * 10^(e/2) */ + + /* we need at last ctx->prec*2 + 1 digits, givent n limbs, + * we have at last n*4-3 digits, n*4-3 >= ctx->prec*2 + 1 + * n*4 >= ctx->prec * 2 + 4, n >= ctx->prec/2 + 1, so will + * set n = ctx->prec/2 + 3 (because there might be possibility, that + * we'll need to make exp even - in that case we'll extend b) + * but we have to fill b_limbs - 1 limbs */ + b_limbs = ctx->prec/2 + 3; + b_tab = (long*)malloc(b_limbs * sizeof(long)); + if(b_limbs -1 > self->limb_count) { + /* we have to extend */ + int diff = (b_limbs - 1) - self->limb_count; + shift = -diff * 4; /*exp becomes smaller */ + for(i = 0;i < self->limb_count; i++) + b_tab[i+diff] = self->limbs[i]; + + for(i = 0;i < diff; i++) + b_tab[i] = 0; } else { - tmp->ob_size --; - tmp->limb_count = self->limb_count; - for(i = 0; i < tmp->limb_count ; i++) - tmp->limbs[i] = self->limbs[i]; - } - - tmp->exp = exp_from_i(0); - - ctx2 = context_copy(ctx); - - if (!ctx2) { - Py_DECREF(tmp); - return NULL; + /* we have to truncate, we'll fill b_limbs-1 limbs */ + int diff = self->limb_count - (b_limbs - 1); + shift = diff * 4; /* we truncated diff limbs, so exp will become greater */ + for(i = 0;i < b_limbs - 1; i++) + b_tab[i] = self->limbs[i + diff]; + /* we'll check remainding limbs of self, to check if + * we truncated something important */ + for(i = 0;i < diff; i++) + if(self->limbs[i]) { + exact = 0; + break; + } } - flags = context_ignore_all_flags(ctx2); + b_tab[b_limbs-1] = 0; /* only one we didn't set */ - if (!flags) { - Py_DECREF(tmp); - Py_DECREF(ctx2); + /* in case exp mod 2 = 1, we'll extend multiply b_tab * 10, and decrease shift + * [that's why we made room for another limb] */ + if(exp_mod_i(self->exp, 2)) { + shift --; + _limb_add_one_digit(b_tab, (b_limbs-1) * LOG, 0); + } + b_limbs = _limb_size(b_tab, b_limbs); + + /* ok, now our DD is b_tab, and our e is self->exp + shift */ + + /* how big tab we need - sqrt uses ceil(limbs/2) + 1, but there + * is possibility that we're going to set ideal exp + * Our result exp will be (self->exp + shift)/2, and ideal exp is + * floor(self->exp/2), so we might be forced to extend mantisa by + * shift/2 */ + ret_limbs = (b_limbs + 1)/2 + 2 + (shift > 0 ? (shift + 1)/2 + 1 : 0); + /* TODO maybe I should use some temporary tab first? */ + ret = _NEW_decimalobj(ret_limbs * LOG, self->sign, exp_from_i(0)); + if(!ret) { + free(b_tab); return NULL; } - ans = _NEW_decimalobj(3, 0, exp_from_i(0)); - - if (!ans) { - Py_DECREF(tmp); - Py_DECREF(ctx2); - Py_DECREF(flags); - } - - tmp2 = _NEW_decimalobj(3, 0, exp_from_i(0)); - - if (!tmp2) { - Py_DECREF(tmp); - Py_DECREF(ctx2); - Py_DECREF(flags); - Py_DECREF(ans); - } - - if (exp_mod_i(ADJUSTED(tmp), 2) == 0) { - ans->limbs[0] = 819; - ans->exp = exp_sub_i(ADJUSTED(tmp), 2); - tmp2->limbs[0] = 259; - exp_inp_sub_i(&(tmp2->exp), 2); - } - else { - ans->limbs[0] = 259; - ans->exp = exp_add_i(tmp->exp, tmp->ob_size - 3); - tmp2->limbs[0] = 819; - exp_inp_sub_i(&(tmp2->exp), 3); - } - - firstprec = ctx2->prec; - ctx2->prec = 3; - /* ans += tmp * tmp2 */ - - tmp3 = _do_decimal_multiply(tmp, tmp2, ctx2); - - if (!tmp3) - goto err; - - Py_DECREF(tmp2); - tmp2 = _do_decimal_add(ans, tmp3, ctx2); - Py_DECREF(tmp3); - tmp3 = 0; - - if (!tmp2) - goto err; - - Py_DECREF(ans); - ans = tmp2; - tmp2 = 0; -/* ans->exp -= 1 + ADJUSTED(tmp)/2; - if (1 + ADJUSTED(tmp) < 0 && (1 + ADJUSTED(tmp)) % 2) - ans->exp --; - */ - exp_inp_sub(&(ans->exp),exp_add_i(exp_floordiv_i(ADJUSTED(tmp), 2), 1)); - Emax = ctx2->Emax; - Emin = ctx2->Emin; - - ctx2->Emax = PyDecimal_DefaultContext->Emax; - ctx2->Emin = PyDecimal_DefaultContext->Emin; - - half = _decimal_fromliteral(self->ob_type, "0.5", 3, ctx2); - - if (!half) - goto err; - - maxp = firstprec + 2; - rounding = ctx2->rounding; - ctx2->rounding = ROUND_HALF_EVEN; - - while (1) { - ctx2->prec = 2 * ctx2->prec - 2 < maxp ? 2 * ctx2->prec - 2: maxp; - /* ans = half * (ans + tmp/ans) */ - tmp2 = (decimalobject*) _do_decimal__divide(tmp, ans, 0, ctx2); - if (!tmp2) - goto err; - /* ans = half * (ans + tmp2) */ - tmp3 = _do_decimal_add(ans, tmp2, ctx2); - if (!tmp3) - goto err; - - /* ans = half * tmp3 */ - Py_DECREF(ans); - ans = _do_decimal_multiply(half, tmp3, ctx2); - - if (!ans) - goto err; - - Py_DECREF(tmp2); - Py_DECREF(tmp3); - tmp2 = 0; - tmp3 = 0; - - if (ctx2->prec == maxp) - break; - } - - ctx2->prec = firstprec; - prevexp = ADJUSTED(ans); - tmp2 = _decimal_round(ans, -1, ctx2, -1); - if (!tmp2) - goto err; - Py_DECREF(ans); - ans = _NEW_decimalobj(tmp2->ob_size + 1, tmp2->sign, tmp2->exp); - if (!ans) - goto err; - - ctx2->prec = firstprec + 1; - if (exp_ne(prevexp, ADJUSTED(tmp2))) { - _limb_first_n_digits(tmp2->limbs, tmp2->ob_size, 0, ans->limbs, ans->ob_size); - exp_dec(&(ans->exp)); - } - else { - ans->limb_count = tmp2->limb_count; - ans->ob_size = tmp2->ob_size; - for (i = 0; i < ans->limb_count; i++) - ans->limbs[i] = tmp2->limbs[i]; - } - - Py_DECREF(tmp2); - tmp2 = 0; - - { - int cmp; - decimalobject *lower; - half->exp = exp_sub_i(ans->exp, 1); - half->limbs[0] = 5; - lower = _do_decimal_subtract(ans, half, ctx2); - if (!lower) - goto err; - - ctx2->rounding = ROUND_UP; - tmp2 = _do_decimal_multiply(lower, lower, ctx2); - Py_DECREF(lower); - lower = 0; - if (!tmp2) { - goto err; - } - - cmp = _do_real_decimal_compare(tmp2, tmp, ctx2); - if (PyErr_Occurred()) { - goto err; - } - - Py_DECREF(tmp2); - tmp2 = 0; - - if (cmp == 1) { - half->exp = ans->exp; - half->limbs[0] = 1; - tmp2 = _do_decimal_subtract(ans, half, ctx2); - if (!tmp2) - goto err; - Py_DECREF(ans); - ans = tmp2; - tmp2 = 0; + ret_limbs = _limb_sqrt(b_tab, b_limbs, ret->limbs); + ret->limb_count = ret_limbs; + ret->ob_size = _limb_size_s(ret->limbs, ret_limbs * LOG); + /* let's check if it's exact */ + { + long tmp_digs; + long cmp_res; + long *tmp = (long*)malloc((ret_limbs * 2 + 1) * sizeof(long)); + tmp_digs = _limb_multiply(ret->limbs, ret->ob_size, ret->limbs, + ret->ob_size, tmp); + + cmp_res = _limb_compare_un(b_tab, b_limbs, tmp, (tmp_digs +LOG-1)/LOG); + exact = exact && cmp_res == 0; + free(tmp); + } + free(b_tab); + + /* now all we need is to set exp :> and add 1 ULP in case it's not exact ;> */ + + if (exact) { + long expdiff; + exp_t tmp_exp; + ret->exp = exp_floordiv_i(self->exp, 2); + tmp_exp = exp_floordiv_i(exp_add_i(self->exp, shift), 2); + expdiff = exp_to_i(exp_sub(ret->exp, tmp_exp)); + /* TODO SLOW */ + if(expdiff > 0) { + while(expdiff && ret->ob_size > 1) { + assert(!(ret->limbs[0] % 10)); /* Am I sure?? TODO */ + _limb_cut_one_digit(ret->limbs, ret->ob_size); + ret->ob_size --; + expdiff --; + } } else { - decimalobject *upper; - half->exp = exp_sub_i(ans->exp, 1); - half->limbs[0] = 5; - upper = _do_decimal_add(ans, half, ctx2); - if (!upper) - goto err; - ctx2->rounding = ROUND_DOWN; - - tmp2 = _do_decimal_multiply(upper, upper, ctx2); - - Py_DECREF(upper); - upper = 0; - - cmp = _do_real_decimal_compare(tmp2, tmp, ctx2); - if (PyErr_Occurred()) - goto err; - - Py_DECREF(tmp2); - tmp2 = 0; - - if (cmp == -1) { - half->exp = ans->exp; - half->limbs[0] = 1; - tmp2 = _do_decimal_add(ans, half, ctx2); - - if (!tmp2) - goto err; - Py_DECREF(ans); - ans = tmp2; - tmp2 = 0; + while(expdiff) { + _limb_add_one_digit(ret->limbs, ret->ob_size, 0); + ret->ob_size ++; + expdiff ++; } } } - - exp_inp_add(&(ans->exp), expadd); - ctx2->rounding = rounding; - - tmp2 = _decimal_fix(ans, ctx2); - if (!tmp2) - goto err; - Py_DECREF(ans); - ans = tmp2; - tmp2 = 0; - - rounding = ctx2->rounding_dec; - ctx2->rounding_dec = NEVER_ROUND; - - { - int cmp; - tmp2 = _do_decimal_multiply(ans, ans, ctx2); - if (!tmp2) - goto err; - - cmp = _do_real_decimal_compare(tmp2, self, ctx2); - - if (PyErr_Occurred()) - goto err; - - Py_DECREF(tmp2); - tmp2 = 0; - - if (cmp != 0) { - if (handle_Rounded(ctx, NULL)) - goto err; - - if (handle_Inexact(ctx, NULL)) - goto err; - } - - else { -/* long exp = self->exp / 2; - if (self->exp < 0 && self->exp % 2) - exp --;*/ - exp_t exp = exp_floordiv_i(self->exp, 2); - ctx2->prec += exp_to_i(exp_sub(ans->exp, exp)); - tmp2 = _decimal_rescale(ans, exp, ctx2, -1, 1); - - if (!tmp2) - goto err; - Py_DECREF(ans); - ans = tmp2; - tmp2 = 0; - ctx2->prec = firstprec; - } + else { + if(ret->limbs[0] % 5 == 0) ret->limbs[0] ++; + ret-> exp = exp_floordiv_i(exp_add_i(self->exp, shift), 2); } - tmp2 = _decimal_fix(ans, ctx); - if (!tmp2) - goto err; - Py_DECREF(ans); - ans = tmp2; - tmp2 = 0; - - Py_DECREF(flags); - Py_DECREF(ctx2); - Py_DECREF(half); - Py_DECREF(tmp); - - return ans; - -err: - Py_XDECREF(tmp); - Py_XDECREF(tmp2); - Py_XDECREF(tmp3); - Py_XDECREF(ans); - Py_XDECREF(flags); - Py_XDECREF(ctx2); - Py_XDECREF(ret); - Py_XDECREF(half); + /* TODO it's not thread safe */ + rounding = ctx->rounding; + ctx->rounding = ROUND_HALF_EVEN; + + ret2 = _decimal_fix(ret, ctx); + ctx->rounding = rounding; + Py_DECREF(ret); + return ret2; + return NULL; } DECIMAL_UNARY_FUNC(sqrt) From buildbot at python.org Tue Oct 16 07:45:51 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Oct 2007 05:45:51 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 3.0 Message-ID: <20071016054551.65DD31E402D@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%203.0/builds/27 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 82, in run svr = svrcls(self.__addr, self.__hdlrcls) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/SocketServer.py", line 331, in __init__ self.server_bind() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_socketserver.py", line 166, in server_bind (err, msg) = e TypeError: 'gaierror' object is not iterable Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 485, in _bootstrap_inner self.run() File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/threading.py", line 445, in run self._target(*self._args, **self._kwargs) File "/home/pybot/buildarea-armeabi/3.0.klose-linux-armeabi/build/Lib/test/test_xmlrpc.py", line 279, in http_server except socket.timeout: NameError: global name 'socket' is not defined sincerely, -The Buildbot From python-checkins at python.org Tue Oct 16 18:58:38 2007 From: python-checkins at python.org (guido.van.rossum) Date: Tue, 16 Oct 2007 18:58:38 +0200 (CEST) Subject: [Python-checkins] r58494 - peps/trunk/pep-3137.txt Message-ID: <20071016165838.A0B171E403B@bag.python.org> Author: guido.van.rossum Date: Tue Oct 16 18:58:38 2007 New Revision: 58494 Modified: peps/trunk/pep-3137.txt Log: Add removal of basestring. Modified: peps/trunk/pep-3137.txt ============================================================================== --- peps/trunk/pep-3137.txt (original) +++ peps/trunk/pep-3137.txt Tue Oct 16 18:58:38 2007 @@ -282,6 +282,13 @@ contiguous array of bytes at all. Therefore, the PEP 3118 buffer API will be removed from the str type. +The ``basestring`` Type +----------------------- + +The ``basestring`` type will be removed from the language. Code that +used to say ``isinstance(x, basestring)`` should be changed to use +``isinstance(x, str)`` instead. + Pickling -------- From python-checkins at python.org Tue Oct 16 21:18:45 2007 From: python-checkins at python.org (raymond.hettinger) Date: Tue, 16 Oct 2007 21:18:45 +0200 (CEST) Subject: [Python-checkins] r58500 - python/trunk/Lib/collections.py Message-ID: <20071016191845.BD3041E4031@bag.python.org> Author: raymond.hettinger Date: Tue Oct 16 21:18:30 2007 New Revision: 58500 Modified: python/trunk/Lib/collections.py Log: Improve error messages Modified: python/trunk/Lib/collections.py ============================================================================== --- python/trunk/Lib/collections.py (original) +++ python/trunk/Lib/collections.py Tue Oct 16 21:18:30 2007 @@ -32,16 +32,17 @@ if isinstance(field_names, basestring): field_names = field_names.replace(',', ' ').split() # names separated by whitespace and/or commas field_names = tuple(field_names) - if not ''.join((typename,) + field_names).replace('_', '').isalnum(): - raise ValueError('Type names and field names can only contain alphanumeric characters and underscores') + for name in (typename,) + field_names: + if not name.replace('_', '').isalnum(): + raise ValueError('Type names and field names can only contain alphanumeric characters and underscores: %r' % name) + if name[0].isdigit(): + raise ValueError('Type names and field names cannot start with a number: %r' % name) seen_names = set() for name in field_names: if name.startswith('__') and name.endswith('__'): - raise ValueError('Field names cannot start and end with double underscores: %s' % name) - if name[:1].isdigit(): - raise ValueError('Field names cannot start with a number: %s' % name) + raise ValueError('Field names cannot start and end with double underscores: %r' % name) if name in seen_names: - raise ValueError('Encountered duplicate field name: %s' % name) + raise ValueError('Encountered duplicate field name: %r' % name) seen_names.add(name) # Create and fill-in the class template From buildbot at python.org Tue Oct 16 22:48:50 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Oct 2007 20:48:50 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071016204850.DF7611E400E@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/221 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 55, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Oct 16 23:28:44 2007 From: python-checkins at python.org (raymond.hettinger) Date: Tue, 16 Oct 2007 23:28:44 +0200 (CEST) Subject: [Python-checkins] r58506 - in python/trunk: Doc/library/collections.rst Lib/collections.py Lib/test/test_collections.py Message-ID: <20071016212844.9ECED1E404E@bag.python.org> Author: raymond.hettinger Date: Tue Oct 16 23:28:32 2007 New Revision: 58506 Modified: python/trunk/Doc/library/collections.rst python/trunk/Lib/collections.py python/trunk/Lib/test/test_collections.py Log: More docs, error messages, and tests Modified: python/trunk/Doc/library/collections.rst ============================================================================== --- python/trunk/Doc/library/collections.rst (original) +++ python/trunk/Doc/library/collections.rst Tue Oct 16 23:28:32 2007 @@ -365,9 +365,13 @@ The *fieldnames* are a single string with each fieldname separated by whitespace and/or commas (for example 'x y' or 'x, y'). Alternatively, the *fieldnames* - can be specified as a list of strings (such as ['x', 'y']). Any valid - Python identifier may be used for a fieldname except for names starting and - ending with double underscores. + can be specified as a list of strings (such as ['x', 'y']). + + Any valid Python identifier may be used for a fieldname except for names + starting and ending with double underscores. Valid identifiers consist of + letters, digits, and underscores but do not start with a digit and cannot be + a :mod:`keyword` such as *class*, *for*, *return*, *global*, *pass*, *print*, + or *raise*. If *verbose* is true, will print the class definition. Modified: python/trunk/Lib/collections.py ============================================================================== --- python/trunk/Lib/collections.py (original) +++ python/trunk/Lib/collections.py Tue Oct 16 23:28:32 2007 @@ -2,6 +2,7 @@ from _collections import deque, defaultdict from operator import itemgetter as _itemgetter +from keyword import iskeyword as _iskeyword import sys as _sys def named_tuple(typename, field_names, verbose=False): @@ -35,6 +36,8 @@ for name in (typename,) + field_names: if not name.replace('_', '').isalnum(): raise ValueError('Type names and field names can only contain alphanumeric characters and underscores: %r' % name) + if _iskeyword(name): + raise ValueError('Type names and field names cannot be a keyword: %r' % name) if name[0].isdigit(): raise ValueError('Type names and field names cannot start with a number: %r' % name) seen_names = set() Modified: python/trunk/Lib/test/test_collections.py ============================================================================== --- python/trunk/Lib/test/test_collections.py (original) +++ python/trunk/Lib/test/test_collections.py Tue Oct 16 23:28:32 2007 @@ -11,11 +11,17 @@ self.assertEqual(Point.__slots__, ()) self.assertEqual(Point.__module__, __name__) self.assertEqual(Point.__getitem__, tuple.__getitem__) - self.assertRaises(ValueError, named_tuple, 'abc%', 'def ghi') - self.assertRaises(ValueError, named_tuple, 'abc', 'def g%hi') - self.assertRaises(ValueError, named_tuple, 'abc', '__def__ ghi') - self.assertRaises(ValueError, named_tuple, 'abc', 'def def ghi') - self.assertRaises(ValueError, named_tuple, 'abc', '8def 9ghi') + + self.assertRaises(ValueError, named_tuple, 'abc%', 'efg ghi') # type has non-alpha char + self.assertRaises(ValueError, named_tuple, 'class', 'efg ghi') # type has keyword + self.assertRaises(ValueError, named_tuple, '9abc', 'efg ghi') # type starts with digit + + self.assertRaises(ValueError, named_tuple, 'abc', 'efg g%hi') # field with non-alpha char + self.assertRaises(ValueError, named_tuple, 'abc', 'abc class') # field has keyword + self.assertRaises(ValueError, named_tuple, 'abc', '8efg 9ghi') # field starts with digit + self.assertRaises(ValueError, named_tuple, 'abc', '__efg__ ghi') # field with double underscores + self.assertRaises(ValueError, named_tuple, 'abc', 'efg efg ghi') # duplicate field + named_tuple('Point0', 'x1 y2') # Verify that numbers are allowed in names def test_instance(self): @@ -66,7 +72,6 @@ self.assertEqual(p.y, y) self.assertRaises(AttributeError, eval, 'p.z', locals()) - def test_odd_sizes(self): Zero = named_tuple('Zero', '') self.assertEqual(Zero(), ()) From nnorwitz at gmail.com Tue Oct 16 23:47:42 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Tue, 16 Oct 2007 17:47:42 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20071016214742.GA11952@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 /tmp/python-test/local/lib/python2.6/bsddb/test/test_1413192.py:32: RuntimeWarning: DBTxn aborted in destructor. No prior commit() or abort(). del self.the_txn Exception in thread reader 0: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Exception in thread reader 4: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Exception in thread reader 2: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Exception in thread reader 3: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/tmp/python-test/local/lib/python2.6/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Exception in thread writer 0: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 245, in writerThread self.assertEqual(data, self.makeData(key)) File "/tmp/python-test/local/lib/python2.6/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '0114-0114-0114-0114-0114' Exception in thread writer 1: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/tmp/python-test/local/lib/python2.6/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '1001-1001-1001-1001-1001' Exception in thread writer 2: Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/threading.py", line 486, in __bootstrap_inner self.run() File "/tmp/python-test/local/lib/python2.6/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/tmp/python-test/local/lib/python2.6/unittest.py", line 343, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '2000-2000-2000-2000-2000' test test_bsddb3 failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_dbtables.py", line 342, in test_Modify mappings={'Access': increment_access}) File "/tmp/python-test/local/lib/python2.6/bsddb/dbtables.py", line 455, in Modify dataitem = mappings[column](dataitem) File "/tmp/python-test/local/lib/python2.6/bsddb/test/test_dbtables.py", line 329, in increment_access return str(int(count)+1) TypeError: int() argument must be a string or a number, not 'NoneType' test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:60: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ss = socket.ssl(s) test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7362 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 307 tests OK. 1 test failed: test_bsddb3 21 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_gl test_imageop test_imgfile test_ioctl test_macostools test_pep277 test_plistlib test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [516832 refs] From buildbot at python.org Tue Oct 16 23:59:29 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Oct 2007 21:59:29 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20071016215936.AFF3B1E4010@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/2257 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_bsddb3 Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') ====================================================================== FAIL: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_dbtables.py", line 360, in test_Modify self.assertEqual(values[0]['Access'], None, values) AssertionError: [{'Access': '0', 'Type': 'Unknown', 'Name': None}] make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Oct 17 00:32:14 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Oct 2007 22:32:14 +0000 Subject: [Python-checkins] buildbot failure in x86 mvlgcc trunk Message-ID: <20071016223215.253E21E403A@bag.python.org> The Buildbot has detected a new failure of x86 mvlgcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20mvlgcc%20trunk/builds/883 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-linux Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: armin.rigo,guido.van.rossum,neal.norwitz,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/trunk.loewis-linux/build/Lib/bsddb/test/test_dbtables.py", line 342, in test_Modify mappings={'Access': increment_access}) File "/home2/buildbot/slave/trunk.loewis-linux/build/Lib/bsddb/dbtables.py", line 455, in Modify dataitem = mappings[column](dataitem) File "/home2/buildbot/slave/trunk.loewis-linux/build/Lib/bsddb/test/test_dbtables.py", line 329, in increment_access return str(int(count)+1) TypeError: int() argument must be a string or a number, not 'NoneType' make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Wed Oct 17 00:58:43 2007 From: python-checkins at python.org (andrew.kuchling) Date: Wed, 17 Oct 2007 00:58:43 +0200 (CEST) Subject: [Python-checkins] r58507 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20071016225843.0877F1E4005@bag.python.org> Author: andrew.kuchling Date: Wed Oct 17 00:58:03 2007 New Revision: 58507 Modified: python/trunk/Doc/whatsnew/2.6.rst Log: Add items Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Wed Oct 17 00:58:03 2007 @@ -515,6 +515,12 @@ by module name. Consult the :file:`Misc/NEWS` file in the source tree for a more complete list of changes, or look through the CVS logs for all the details. +* The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol + available, instead of restricting itself to protocol 1. + (Contributed by W. Barnes.) + + .. % Patch 1551443 + * A new data type in the :mod:`collections` module: :class:`named_tuple(typename, fieldnames)` is a factory function that creates subclasses of the standard tuple whose fields are accessible by name as well as index. For example:: @@ -531,17 +537,48 @@ 1 1 >>> print var[2], var.type # Equivalent int int + >>> var.__asdict__() + {'size': 4, 'type': 'int', 'id': 1, 'name': 'frequency'} >>> v2 = var.__replace__('name', 'amplitude') >>> v2 variable(id=1, name='amplitude', type='int', size=4) (Contributed by Raymond Hettinger.) +* Another change to the :mod:`collections` module is that the + :class:`deque` type now supports an optional `maxlen` parameter; + if supplied, the deque's size will be restricted to no more + than ``maxlen`` items. Adding more items to a full deque causes + old items to be discarded. + + :: + + >>> from collections import deque + >>> dq=deque(maxlen=3) + >>> dq + deque([], maxlen=3) + >>> dq.append(1) ; dq.append(2) ; dq.append(3) + >>> dq + deque([1, 2, 3], maxlen=3) + >>> dq.append(4) + >>> dq + deque([2, 3, 4], maxlen=3) + + (Contributed by Raymond Hettinger.) + * The :mod:`ctypes` module now supports a :class:`c_bool` datatype that represents the C99 ``bool`` type. (Contributed by David Remahl.) .. % Patch 1649190 + The :mod:`ctypes` string, buffer and array types also have improved + support for extended slicing syntax, + where various combinations of ``(start, stop, step)`` are supplied. + (Implemented by Thomas Wouters.) + + .. % Revision 57769 + + * A new method in the :mod:`curses` module: for a window, :meth:`chgat` changes the display characters for a certain number of characters on a single line. :: @@ -626,6 +663,12 @@ .. % Patch 1273829 +* The ``os.environ`` object's :meth:`clear` method will now unset the + environment variables using :func:`os.unsetenv` in addition to clearing + the object's keys. (Contributed by XXX.) + + .. % Patch #1181 + * In the :mod:`os.path` module, the :func:`splitext` function has been changed to not split on leading period characters. This produces better results when operating on Unix's dot-files. @@ -799,7 +842,13 @@ Changes to Python's build process and to the C API include: -* Detailed changes will be listed here. +* The BerkeleyDB module now has a C API object, available as + ``bsddb.db.api``. This object can be used by other C extensions + that wish to use the :mod:`bsddb` module for their own purposes. + (Contributed by Duncan Grisby.) + + .. % Patch 1551895 + .. % ====================================================================== From python-checkins at python.org Wed Oct 17 01:24:06 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 17 Oct 2007 01:24:06 +0200 (CEST) Subject: [Python-checkins] r58508 - python/trunk/Doc/library/csv.rst Message-ID: <20071016232406.E7C461E565F@bag.python.org> Author: brett.cannon Date: Wed Oct 17 01:24:06 2007 New Revision: 58508 Modified: python/trunk/Doc/library/csv.rst Log: Remove ``:const:`` notation on None in parameter list. Since the markup is not rendered for parameters it just showed up as ``:const:`None` `` in the output. Modified: python/trunk/Doc/library/csv.rst ============================================================================== --- python/trunk/Doc/library/csv.rst (original) +++ python/trunk/Doc/library/csv.rst Wed Oct 17 01:24:06 2007 @@ -143,7 +143,7 @@ The :mod:`csv` module defines the following classes: -.. class:: DictReader(csvfile[, fieldnames=:const:None,[, restkey=:const:None[, restval=None[, dialect='excel'[, *args, **kwds]]]]]) +.. class:: DictReader(csvfile[, fieldnames=None[, restkey=None[, restval=None[, dialect='excel'[, *args, **kwds]]]]]) Create an object which operates like a regular reader but maps the information read into a dict whose keys are given by the optional *fieldnames* parameter. From python-checkins at python.org Wed Oct 17 01:26:45 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 17 Oct 2007 01:26:45 +0200 (CEST) Subject: [Python-checkins] r58509 - python/trunk/Doc/c-api/abstract.rst Message-ID: <20071016232645.9B6341E4120@bag.python.org> Author: brett.cannon Date: Wed Oct 17 01:26:45 2007 New Revision: 58509 Modified: python/trunk/Doc/c-api/abstract.rst Log: Re-order some functions whose parameters differ between PyObject and const char * so that they are next to each other. Modified: python/trunk/Doc/c-api/abstract.rst ============================================================================== --- python/trunk/Doc/c-api/abstract.rst (original) +++ python/trunk/Doc/c-api/abstract.rst Wed Oct 17 01:26:45 2007 @@ -31,21 +31,14 @@ instead of the :func:`repr`. -.. cfunction:: int PyObject_HasAttrString(PyObject *o, const char *attr_name) +.. cfunction:: int PyObject_HasAttr(PyObject *o, PyObject *attr_name) Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. This is equivalent to the Python expression ``hasattr(o, attr_name)``. This function always succeeds. -.. cfunction:: PyObject* PyObject_GetAttrString(PyObject *o, const char *attr_name) - - Retrieve an attribute named *attr_name* from object *o*. Returns the attribute - value on success, or *NULL* on failure. This is the equivalent of the Python - expression ``o.attr_name``. - - -.. cfunction:: int PyObject_HasAttr(PyObject *o, PyObject *attr_name) +.. cfunction:: int PyObject_HasAttrString(PyObject *o, const char *attr_name) Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. This is equivalent to the Python expression ``hasattr(o, attr_name)``. This function @@ -59,27 +52,34 @@ expression ``o.attr_name``. -.. cfunction:: int PyObject_SetAttrString(PyObject *o, const char *attr_name, PyObject *v) +.. cfunction:: PyObject* PyObject_GetAttrString(PyObject *o, const char *attr_name) + + Retrieve an attribute named *attr_name* from object *o*. Returns the attribute + value on success, or *NULL* on failure. This is the equivalent of the Python + expression ``o.attr_name``. + + +.. cfunction:: int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v) Set the value of the attribute named *attr_name*, for object *o*, to the value *v*. Returns ``-1`` on failure. This is the equivalent of the Python statement ``o.attr_name = v``. -.. cfunction:: int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v) +.. cfunction:: int PyObject_SetAttrString(PyObject *o, const char *attr_name, PyObject *v) Set the value of the attribute named *attr_name*, for object *o*, to the value *v*. Returns ``-1`` on failure. This is the equivalent of the Python statement ``o.attr_name = v``. -.. cfunction:: int PyObject_DelAttrString(PyObject *o, const char *attr_name) +.. cfunction:: int PyObject_DelAttr(PyObject *o, PyObject *attr_name) Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on failure. - This is the equivalent of the Python statement: ``del o.attr_name``. + This is the equivalent of the Python statement ``del o.attr_name``. -.. cfunction:: int PyObject_DelAttr(PyObject *o, PyObject *attr_name) +.. cfunction:: int PyObject_DelAttrString(PyObject *o, const char *attr_name) Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on failure. This is the equivalent of the Python statement ``del o.attr_name``. From python-checkins at python.org Wed Oct 17 20:44:25 2007 From: python-checkins at python.org (erik.forsberg) Date: Wed, 17 Oct 2007 20:44:25 +0200 (CEST) Subject: [Python-checkins] r58521 - tracker/instances/python-dev/detectors/sendmail.py Message-ID: <20071017184425.706961E401F@bag.python.org> Author: erik.forsberg Date: Wed Oct 17 20:44:25 2007 New Revision: 58521 Modified: tracker/instances/python-dev/detectors/sendmail.py Log: Get rid of empty messages generated when adding and removing files. Fixes http://psf.upfronthosting.co.za/roundup/meta/issue164. Modified: tracker/instances/python-dev/detectors/sendmail.py ============================================================================== --- tracker/instances/python-dev/detectors/sendmail.py (original) +++ tracker/instances/python-dev/detectors/sendmail.py Wed Oct 17 20:44:25 2007 @@ -1,3 +1,5 @@ +from roundup import roundupdb + def determineNewMessages(cl, nodeid, oldvalues): ''' Figure a list of the messages that are being added to the given node in this transaction. @@ -66,8 +68,29 @@ sendto += db.config.detectors['TRIAGE_EMAIL'].split(",") except KeyError: pass + oldfiles = [] else: changenote = cl.generateChangeNote(nodeid, oldvalues) + oldfiles = oldvalues.get('files', []) + + newfiles = db.issue.get(nodeid, 'files', []) + if oldfiles != newfiles: + added = [fid for fid in newfiles if fid not in oldfiles] + removed = [fid for fid in oldfiles if fid not in newfiles] + filemsg = "" + + for fid in added: + url = db.config.TRACKER_WEB + "file%s/%s" % \ + (fid, db.file.get(fid, "name")) + filemsg+="Added file: %s\n" % url + for fid in removed: + url = db.config.TRACKER_WEB + "file%s/%s" % \ + (fid, db.file.get(fid, "name")) + filemsg+="Removed file: %s" % url + + siglen = len(cl.email_signature(nodeid, None)) + changenote = changenote[:-siglen] + filemsg + \ + changenote[-siglen:] authid = db.getuid() @@ -82,10 +105,89 @@ try: cl.send_message(nodeid, msgid, changenote, sendto, authid=authid) - cl.nosymessage(nodeid, msgid, oldvalues) + nosymessage(db, nodeid, msgid, oldvalues, changenote) except roundupdb.MessageSendError, message: raise roundupdb.DetectorError, message +def nosymessage(db, nodeid, msgid, oldvalues, note, + whichnosy='nosy', + from_address=None, cc=[], bcc=[]): + """Send a message to the members of an issue's nosy list. + + The message is sent only to users on the nosy list who are not + already on the "recipients" list for the message. + + These users are then added to the message's "recipients" list. + + If 'msgid' is None, the message gets sent only to the nosy + list, and it's called a 'System Message'. + + The "cc" argument indicates additional recipients to send the + message to that may not be specified in the message's recipients + list. + + The "bcc" argument also indicates additional recipients to send the + message to that may not be specified in the message's recipients + list. These recipients will not be included in the To: or Cc: + address lists. + """ + if msgid: + authid = db.msg.get(msgid, 'author') + recipients = db.msg.get(msgid, 'recipients', []) + else: + # "system message" + authid = None + recipients = [] + + sendto = [] + bcc_sendto = [] + seen_message = {} + for recipient in recipients: + seen_message[recipient] = 1 + + def add_recipient(userid, to): + # make sure they have an address + address = db.user.get(userid, 'address') + if address: + to.append(address) + recipients.append(userid) + + def good_recipient(userid): + # Make sure we don't send mail to either the anonymous + # user or a user who has already seen the message. + return (userid and + (db.user.get(userid, 'username') != 'anonymous') and + not seen_message.has_key(userid)) + + # possibly send the message to the author, as long as they aren't + # anonymous + if (good_recipient(authid) and + (db.config.MESSAGES_TO_AUTHOR == 'yes' or + (db.config.MESSAGES_TO_AUTHOR == 'new' and not oldvalues))): + add_recipient(authid, sendto) + + if authid: + seen_message[authid] = 1 + + # now deal with the nosy and cc people who weren't recipients. + for userid in cc + db.issue.get(nodeid, whichnosy): + if good_recipient(userid): + add_recipient(userid, sendto) + + # now deal with bcc people. + for userid in bcc: + if good_recipient(userid): + add_recipient(userid, bcc_sendto) + + # If we have new recipients, update the message's recipients + # and send the mail. + if sendto or bcc_sendto: + if msgid is not None: + db.msg.set(msgid, recipients=recipients) + db.issue.send_message(nodeid, msgid, note, sendto, from_address, + bcc_sendto) + + def init(db): db.issue.react('set', sendmail) db.issue.react('create', sendmail) From python-checkins at python.org Wed Oct 17 20:46:38 2007 From: python-checkins at python.org (armin.rigo) Date: Wed, 17 Oct 2007 20:46:38 +0200 (CEST) Subject: [Python-checkins] r58522 - in python/trunk: Lib/test/test_list.py Objects/listobject.c Message-ID: <20071017184638.356161E403A@bag.python.org> Author: armin.rigo Date: Wed Oct 17 20:46:37 2007 New Revision: 58522 Modified: python/trunk/Lib/test/test_list.py python/trunk/Objects/listobject.c Log: Fix the overflow checking of list_repeat. Introduce overflow checking into list_inplace_repeat. Backport candidate, possibly. Modified: python/trunk/Lib/test/test_list.py ============================================================================== --- python/trunk/Lib/test/test_list.py (original) +++ python/trunk/Lib/test/test_list.py Wed Oct 17 20:46:37 2007 @@ -1,4 +1,5 @@ import unittest +import sys from test import test_support, list_tests class ListTest(list_tests.CommonTest): @@ -18,6 +19,14 @@ self.assertEqual(len([0]), 1) self.assertEqual(len([0, 1, 2]), 3) + def test_overflow(self): + lst = [4, 5, 6, 7] + n = int((sys.maxint*2+2) // len(lst)) + def mul(a, b): return a * b + def imul(a, b): a *= b + self.assertRaises((MemoryError, OverflowError), mul, lst, n) + self.assertRaises((MemoryError, OverflowError), imul, lst, n) + def test_main(verbose=None): test_support.run_unittest(ListTest) Modified: python/trunk/Objects/listobject.c ============================================================================== --- python/trunk/Objects/listobject.c (original) +++ python/trunk/Objects/listobject.c Wed Oct 17 20:46:37 2007 @@ -499,10 +499,10 @@ if (n < 0) n = 0; size = Py_Size(a) * n; - if (size == 0) - return PyList_New(0); if (n && size/n != Py_Size(a)) return PyErr_NoMemory(); + if (size == 0) + return PyList_New(0); np = (PyListObject *) PyList_New(size); if (np == NULL) return NULL; @@ -669,7 +669,7 @@ list_inplace_repeat(PyListObject *self, Py_ssize_t n) { PyObject **items; - Py_ssize_t size, i, j, p; + Py_ssize_t size, i, j, p, newsize; size = PyList_GET_SIZE(self); @@ -684,7 +684,10 @@ return (PyObject *)self; } - if (list_resize(self, size*n) == -1) + newsize = size * n; + if (newsize/n != size) + return PyErr_NoMemory(); + if (list_resize(self, newsize) == -1) return NULL; p = size; From python-checkins at python.org Wed Oct 17 21:10:25 2007 From: python-checkins at python.org (erik.forsberg) Date: Wed, 17 Oct 2007 21:10:25 +0200 (CEST) Subject: [Python-checkins] r58523 - tracker/instances/python-dev/detectors/sendmail.py Message-ID: <20071017191025.145731E4038@bag.python.org> Author: erik.forsberg Date: Wed Oct 17 21:10:24 2007 New Revision: 58523 Modified: tracker/instances/python-dev/detectors/sendmail.py Log: Move msg about added/removed files to bottom of changelist. Modified: tracker/instances/python-dev/detectors/sendmail.py ============================================================================== --- tracker/instances/python-dev/detectors/sendmail.py (original) +++ tracker/instances/python-dev/detectors/sendmail.py Wed Oct 17 21:10:24 2007 @@ -82,15 +82,12 @@ for fid in added: url = db.config.TRACKER_WEB + "file%s/%s" % \ (fid, db.file.get(fid, "name")) - filemsg+="Added file: %s\n" % url + changenote+="\nAdded file: %s" % url for fid in removed: url = db.config.TRACKER_WEB + "file%s/%s" % \ (fid, db.file.get(fid, "name")) - filemsg+="Removed file: %s" % url + changenote+="\nRemoved file: %s" % url - siglen = len(cl.email_signature(nodeid, None)) - changenote = changenote[:-siglen] + filemsg + \ - changenote[-siglen:] authid = db.getuid() From buildbot at python.org Wed Oct 17 21:15:34 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 17 Oct 2007 19:15:34 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20071017191534.9B0FA1E4038@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/2549 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,armin.rigo,brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Oct 18 05:16:03 2007 From: python-checkins at python.org (facundo.batista) Date: Thu, 18 Oct 2007 05:16:03 +0200 (CEST) Subject: [Python-checkins] r58530 - in python/trunk/Lib: httplib.py test/test_httplib.py Message-ID: <20071018031604.893721E4016@bag.python.org> Author: facundo.batista Date: Thu Oct 18 05:16:03 2007 New Revision: 58530 Modified: python/trunk/Lib/httplib.py python/trunk/Lib/test/test_httplib.py Log: Issue #1580738. When HTTPConnection reads the whole stream with read(), it closes itself. When the stream is read in several calls to read(n), it should behave in the same way if HTTPConnection knows where the end of the stream is (through self.length). Added a test case for this behaviour. Modified: python/trunk/Lib/httplib.py ============================================================================== --- python/trunk/Lib/httplib.py (original) +++ python/trunk/Lib/httplib.py Thu Oct 18 05:16:03 2007 @@ -530,7 +530,8 @@ s = self.fp.read(amt) if self.length is not None: self.length -= len(s) - + if not self.length: + self.close() return s def _read_chunked(self, amt): Modified: python/trunk/Lib/test/test_httplib.py ============================================================================== --- python/trunk/Lib/test/test_httplib.py (original) +++ python/trunk/Lib/test/test_httplib.py Thu Oct 18 05:16:03 2007 @@ -81,13 +81,25 @@ resp = httplib.HTTPResponse(sock) resp.begin() self.assertEqual(resp.read(), 'Text') - resp.close() + self.assertTrue(resp.isclosed()) body = "HTTP/1.1 400.100 Not Ok\r\n\r\nText" sock = FakeSocket(body) resp = httplib.HTTPResponse(sock) self.assertRaises(httplib.BadStatusLine, resp.begin) + def test_partial_reads(self): + # if we have a lenght, the system knows when to close itself + # same behaviour than when we read the whole thing with read() + body = "HTTP/1.1 200 Ok\r\nContent-Length: 4\r\n\r\nText" + sock = FakeSocket(body) + resp = httplib.HTTPResponse(sock) + resp.begin() + self.assertEqual(resp.read(2), 'Te') + self.assertFalse(resp.isclosed()) + self.assertEqual(resp.read(2), 'xt') + self.assertTrue(resp.isclosed()) + def test_host_port(self): # Check invalid host_port @@ -133,7 +145,6 @@ resp.begin() if resp.read() != "": self.fail("Did not expect response from HEAD request") - resp.close() def test_send_file(self): expected = 'GET /foo HTTP/1.1\r\nHost: example.com\r\n' \ From python-checkins at python.org Thu Oct 18 05:44:49 2007 From: python-checkins at python.org (facundo.batista) Date: Thu, 18 Oct 2007 05:44:49 +0200 (CEST) Subject: [Python-checkins] r58531 - python/trunk/Doc/library/stdtypes.rst Message-ID: <20071018034449.380601E4016@bag.python.org> Author: facundo.batista Date: Thu Oct 18 05:44:48 2007 New Revision: 58531 Modified: python/trunk/Doc/library/stdtypes.rst Log: Issue 1289, just a typo. Modified: python/trunk/Doc/library/stdtypes.rst ============================================================================== --- python/trunk/Doc/library/stdtypes.rst (original) +++ python/trunk/Doc/library/stdtypes.rst Thu Oct 18 05:44:48 2007 @@ -2160,7 +2160,7 @@ .. method:: contextmanager.__exit__(exc_type, exc_val, exc_tb) - Exit the runtime context and return a Boolean flag indicating if any expection + Exit the runtime context and return a Boolean flag indicating if any exception that occurred should be suppressed. If an exception occurred while executing the body of the :keyword:`with` statement, the arguments contain the exception type, value and traceback information. Otherwise, all three arguments are ``None``. From buildbot at python.org Thu Oct 18 06:02:31 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Oct 2007 04:02:31 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20071018040231.790E51E4016@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/271 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: facundo.batista BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc ====================================================================== ERROR: test_fail_no_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 497, in test_fail_no_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1006, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 932, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Oct 18 09:56:55 2007 From: python-checkins at python.org (gregory.p.smith) Date: Thu, 18 Oct 2007 09:56:55 +0200 (CEST) Subject: [Python-checkins] r58532 - in python/trunk/Lib/bsddb: dbtables.py test/test_dbtables.py Message-ID: <20071018075655.1FB981E4024@bag.python.org> Author: gregory.p.smith Date: Thu Oct 18 09:56:54 2007 New Revision: 58532 Modified: python/trunk/Lib/bsddb/dbtables.py python/trunk/Lib/bsddb/test/test_dbtables.py Log: cleanup test_dbtables to use mkdtemp. cleanup dbtables to pass txn as a keyword argument whenever possible to avoid bugs and confusion. (dbtables.py line 447 self.db.get using txn as a non-keyword was an actual bug due to this) Modified: python/trunk/Lib/bsddb/dbtables.py ============================================================================== --- python/trunk/Lib/bsddb/dbtables.py (original) +++ python/trunk/Lib/bsddb/dbtables.py Thu Oct 18 09:56:54 2007 @@ -20,8 +20,9 @@ import re import sys import copy -import xdrlib import random +import struct +import base64 from types import ListType, StringType import cPickle as pickle @@ -255,7 +256,7 @@ flags=DB_RMW)) tablelist.append(table) # delete 1st, in case we opened with DB_DUP - self.db.delete(_table_names_key, txn) + self.db.delete(_table_names_key, txn=txn) self.db.put(_table_names_key, pickle.dumps(tablelist, 1), txn=txn) txn.commit() @@ -329,7 +330,7 @@ # store the table's new extended column list if newcolumnlist != oldcolumnlist : # delete the old one first since we opened with DB_DUP - self.db.delete(columnlist_key, txn) + self.db.delete(columnlist_key, txn=txn) self.db.put(columnlist_key, pickle.dumps(newcolumnlist, 1), txn=txn) @@ -362,10 +363,9 @@ # Generate a random 64-bit row ID string # (note: this code has <64 bits of randomness # but it's plenty for our database id needs!) - p = xdrlib.Packer() - p.pack_int(int(random.random()*2147483647)) - p.pack_int(int(random.random()*2147483647)) - newid = p.get_buffer() + newid = struct.pack('ll', + random.randint(0, 2147483647), + random.randint(0, 2147483647)) # Guarantee uniqueness by adding this key to the database try: @@ -444,10 +444,10 @@ try: dataitem = self.db.get( _data_key(table, column, rowid), - txn) + txn=txn) self.db.delete( _data_key(table, column, rowid), - txn) + txn=txn) except DBNotFoundError: # XXXXXXX row key somehow didn't exist, assume no # error @@ -490,13 +490,13 @@ # delete the data key try: self.db.delete(_data_key(table, column, rowid), - txn) + txn=txn) except DBNotFoundError: # XXXXXXX column may not exist, assume no error pass try: - self.db.delete(_rowid_key(table, rowid), txn) + self.db.delete(_rowid_key(table, rowid), txn=txn) except DBNotFoundError: # XXXXXXX row key somehow didn't exist, assume no error pass @@ -652,7 +652,7 @@ txn = self.env.txn_begin() # delete the column list - self.db.delete(_columns_key(table), txn) + self.db.delete(_columns_key(table), txn=txn) cur = self.db.cursor(txn) @@ -691,7 +691,7 @@ # hmm, it wasn't there, oh well, that's what we want. pass # delete 1st, incase we opened with DB_DUP - self.db.delete(_table_names_key, txn) + self.db.delete(_table_names_key, txn=txn) self.db.put(_table_names_key, pickle.dumps(tablelist, 1), txn=txn) txn.commit() Modified: python/trunk/Lib/bsddb/test/test_dbtables.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_dbtables.py (original) +++ python/trunk/Lib/bsddb/test/test_dbtables.py Thu Oct 18 09:56:54 2007 @@ -21,6 +21,8 @@ # $Id$ import sys, os, re +import tempfile +import shutil try: import cPickle pickle = cPickle @@ -47,8 +49,8 @@ db_name = 'test-table.db' def setUp(self): - homeDir = os.path.join(tempfile.gettempdir(), 'db_home') - self.homeDir = homeDir + homeDir = tempfile.mkdtemp() + self.testHomeDir = homeDir try: os.mkdir(homeDir) except os.error: pass self.tdb = dbtables.bsdTableDB( @@ -56,10 +58,7 @@ def tearDown(self): self.tdb.close() - import glob - files = glob.glob(os.path.join(self.homeDir, '*')) - for file in files: - os.remove(file) + shutil.rmtree(self.testHomeDir) def test01(self): tabname = "test01" From nnorwitz at gmail.com Thu Oct 18 10:18:52 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 18 Oct 2007 04:18:52 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20071018081852.GA12844@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_cn skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_hk test_codecmaps_hk skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_jp test_codecmaps_jp skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_kr test_codecmaps_kr skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_tw test_codecmaps_tw skipped -- Use of the `urlfetch' resource not enabled test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [9105 refs] test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_normalization skipped -- Use of the `urlfetch' resource not enabled test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test test_telnetlib failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_telnetlib.py", line 47, in testTimeoutValue telnet = telnetlib.Telnet("localhost", 9091, timeout=30) File "/tmp/python-test/local/lib/python2.6/telnetlib.py", line 209, in __init__ self.open(host, port, timeout) File "/tmp/python-test/local/lib/python2.6/telnetlib.py", line 227, in open self.sock = socket.create_connection((host, port), self.timeout) File "/tmp/python-test/local/lib/python2.6/socket.py", line 462, in create_connection raise error, msg error: [Errno 111] Connection refused test_tempfile [7359 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 296 tests OK. 1 test failed: test_telnetlib 35 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses test_gl test_imageop test_imgfile test_ioctl test_linuxaudiodev test_macostools test_normalization test_ossaudiodev test_pep277 test_plistlib test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [506485 refs] From buildbot at python.org Thu Oct 18 10:27:27 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Oct 2007 08:27:27 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20071018082727.6BE981E403F@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/2260 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: facundo.batista,gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_bsddb3 ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_dbtables.py", line 114, in test02 raise RuntimeError("Wrong values returned!") RuntimeError: Wrong values returned! ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_dbtables.py", line 341, in test_Modify mappings={'Access': increment_access}) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbtables.py", line 455, in Modify dataitem = mappings[column](dataitem) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_dbtables.py", line 328, in increment_access return str(int(count)+1) TypeError: int() argument must be a string or a number, not 'NoneType' ====================================================================== FAIL: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_dbtables.py", line 175, in test03 self.assertEqual(len(values), 2) AssertionError: 0 != 2 ====================================================================== FAIL: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_dbtables.py", line 275, in test_CondObjs self.assertEqual(len(values), 2, values) AssertionError: [{'p': None, 'e': 'the letter E'}] ====================================================================== FAIL: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_dbtables.py", line 311, in test_Delete self.assertEqual(len(values), 0) AssertionError: 1 != 0 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Oct 18 10:29:58 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Oct 2007 08:29:58 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20071018082958.7D08B1E4021@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/2551 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: facundo.batista,gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Oct 18 10:34:20 2007 From: python-checkins at python.org (gregory.p.smith) Date: Thu, 18 Oct 2007 10:34:20 +0200 (CEST) Subject: [Python-checkins] r58533 - python/trunk/Lib/bsddb/dbtables.py Message-ID: <20071018083420.C5ACA1E401D@bag.python.org> Author: gregory.p.smith Date: Thu Oct 18 10:34:20 2007 New Revision: 58533 Modified: python/trunk/Lib/bsddb/dbtables.py Log: Fix a weird bug in dbtables: if it chose a random rowid string that contained NULL bytes it would cause the database all sorts of problems in the future leading to very strange random failures and corrupt dbtables.bsdTableDb dbs. Modified: python/trunk/Lib/bsddb/dbtables.py ============================================================================== --- python/trunk/Lib/bsddb/dbtables.py (original) +++ python/trunk/Lib/bsddb/dbtables.py Thu Oct 18 10:34:20 2007 @@ -22,7 +22,6 @@ import copy import random import struct -import base64 from types import ListType, StringType import cPickle as pickle @@ -361,11 +360,12 @@ unique = 0 while not unique: # Generate a random 64-bit row ID string - # (note: this code has <64 bits of randomness + # (note: this code has <56 bits of randomness # but it's plenty for our database id needs!) + # The | 0x01010101 is to ensure no null bytes are in the value newid = struct.pack('ll', - random.randint(0, 2147483647), - random.randint(0, 2147483647)) + random.randint(0, 2147483647) | 0x01010101, + random.randint(0, 2147483647) | 0x01010101) # Guarantee uniqueness by adding this key to the database try: From buildbot at python.org Thu Oct 18 11:02:58 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Oct 2007 09:02:58 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20071018090258.3917E1E50B6@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/982 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: facundo.batista,gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/test/test_dbtables.py", line 114, in test02 raise RuntimeError("Wrong values returned!") RuntimeError: Wrong values returned! ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/test/test_dbtables.py", line 341, in test_Modify mappings={'Access': increment_access}) File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/dbtables.py", line 455, in Modify dataitem = mappings[column](dataitem) File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/test/test_dbtables.py", line 328, in increment_access return str(int(count)+1) TypeError: int() argument must be a string or a number, not 'NoneType' ====================================================================== FAIL: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/test/test_dbtables.py", line 175, in test03 self.assertEqual(len(values), 2) AssertionError: 1 != 2 ====================================================================== FAIL: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/test/test_dbtables.py", line 275, in test_CondObjs self.assertEqual(len(values), 2, values) AssertionError: [{'p': None, 'e': 'the letter E'}] ====================================================================== FAIL: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/test/test_dbtables.py", line 311, in test_Delete self.assertEqual(len(values), 0) AssertionError: 1 != 0 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Oct 18 11:23:03 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Oct 2007 09:23:03 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071018092303.55B761E401D@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/225 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: facundo.batista,gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 162, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 162, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 162, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 162, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 162, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 162, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 162, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 162, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Oct 18 18:32:02 2007 From: python-checkins at python.org (gregory.p.smith) Date: Thu, 18 Oct 2007 18:32:02 +0200 (CEST) Subject: [Python-checkins] r58534 - python/trunk/Lib/bsddb/dbtables.py Message-ID: <20071018163202.BB0A71E4022@bag.python.org> Author: gregory.p.smith Date: Thu Oct 18 18:32:02 2007 New Revision: 58534 Modified: python/trunk/Lib/bsddb/dbtables.py Log: A cleaner fix than the one committed last night. Generate random rowids that do not contain null bytes. Modified: python/trunk/Lib/bsddb/dbtables.py ============================================================================== --- python/trunk/Lib/bsddb/dbtables.py (original) +++ python/trunk/Lib/bsddb/dbtables.py Thu Oct 18 18:32:02 2007 @@ -360,12 +360,13 @@ unique = 0 while not unique: # Generate a random 64-bit row ID string - # (note: this code has <56 bits of randomness + # (note: this code has <64 bits of randomness # but it's plenty for our database id needs!) - # The | 0x01010101 is to ensure no null bytes are in the value - newid = struct.pack('ll', - random.randint(0, 2147483647) | 0x01010101, - random.randint(0, 2147483647) | 0x01010101) + # We must ensure that no null bytes are in the id value. + blist = [] + for x in xrange(_rowid_str_len): + blist.append(random.randint(1,255)) + newid = struct.pack('B'*_rowid_str_len, *blist) # Guarantee uniqueness by adding this key to the database try: From python-checkins at python.org Thu Oct 18 19:15:20 2007 From: python-checkins at python.org (gregory.p.smith) Date: Thu, 18 Oct 2007 19:15:20 +0200 (CEST) Subject: [Python-checkins] r58536 - in python/branches/release25-maint: Lib/bsddb/dbtables.py Lib/bsddb/test/test_dbtables.py Misc/NEWS Message-ID: <20071018171520.985341E4021@bag.python.org> Author: gregory.p.smith Date: Thu Oct 18 19:15:20 2007 New Revision: 58536 Modified: python/branches/release25-maint/Lib/bsddb/dbtables.py python/branches/release25-maint/Lib/bsddb/test/test_dbtables.py python/branches/release25-maint/Misc/NEWS Log: Backport 58532, 58533, 58534: - Fix bsddb.dbtables: Don't randomly corrupt newly inserted rows by picking a rowid string with null bytes in it. Such rows could not later be deleted, modified or individually selected. Existing bsdTableDb databases created with such rows are out of luck. - Use mkdtemp for the test_dbtables test database environment and clean it up afterwards using shutil.rmtree. Modified: python/branches/release25-maint/Lib/bsddb/dbtables.py ============================================================================== --- python/branches/release25-maint/Lib/bsddb/dbtables.py (original) +++ python/branches/release25-maint/Lib/bsddb/dbtables.py Thu Oct 18 19:15:20 2007 @@ -20,7 +20,7 @@ import re import sys import copy -import xdrlib +import struct import random from types import ListType, StringType import cPickle as pickle @@ -362,10 +362,11 @@ # Generate a random 64-bit row ID string # (note: this code has <64 bits of randomness # but it's plenty for our database id needs!) - p = xdrlib.Packer() - p.pack_int(int(random.random()*2147483647)) - p.pack_int(int(random.random()*2147483647)) - newid = p.get_buffer() + # We must ensure that no null bytes are in the id value. + blist = [] + for x in xrange(_rowid_str_len): + blist.append(random.randint(1,255)) + newid = struct.pack('B'*_rowid_str_len, *blist) # Guarantee uniqueness by adding this key to the database try: @@ -444,7 +445,7 @@ try: dataitem = self.db.get( _data_key(table, column, rowid), - txn) + txn=txn) self.db.delete( _data_key(table, column, rowid), txn) Modified: python/branches/release25-maint/Lib/bsddb/test/test_dbtables.py ============================================================================== --- python/branches/release25-maint/Lib/bsddb/test/test_dbtables.py (original) +++ python/branches/release25-maint/Lib/bsddb/test/test_dbtables.py Thu Oct 18 19:15:20 2007 @@ -21,9 +21,10 @@ # $Id$ import sys, os, re +import shutil +import tempfile try: - import cPickle - pickle = cPickle + import cPickle as pickle except ImportError: import pickle @@ -42,12 +43,9 @@ #---------------------------------------------------------------------- class TableDBTestCase(unittest.TestCase): - db_home = 'db_home' - db_name = 'test-table.db' - def setUp(self): - homeDir = os.path.join(os.path.dirname(sys.argv[0]), 'db_home') - self.homeDir = homeDir + homeDir = tempfile.mkdtemp() + self.testHomeDir = homeDir try: os.mkdir(homeDir) except os.error: pass self.tdb = dbtables.bsdTableDB( @@ -55,10 +53,7 @@ def tearDown(self): self.tdb.close() - import glob - files = glob.glob(os.path.join(self.homeDir, '*')) - for file in files: - os.remove(file) + shutil.rmtree(self.testHomeDir) def test01(self): tabname = "test01" Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Thu Oct 18 19:15:20 2007 @@ -118,6 +118,10 @@ - Bug #1233: fix bsddb.dbshelve.DBShelf append method to work as intended for RECNO databases. +- Fix bsddb.dbtables: Don't randomly corrupt newly inserted rows by + picking a rowid string with null bytes in it. Such rows could not + later be deleted, modified or individually selected. + - Bug #1726026: Correct the field names of WIN32_FIND_DATAA and WIN32_FIND_DATAW structures in the ctypes.wintypes module. From python-checkins at python.org Thu Oct 18 19:17:57 2007 From: python-checkins at python.org (gregory.p.smith) Date: Thu, 18 Oct 2007 19:17:57 +0200 (CEST) Subject: [Python-checkins] r58537 - python/trunk/Misc/NEWS Message-ID: <20071018171757.869BB1E4021@bag.python.org> Author: gregory.p.smith Date: Thu Oct 18 19:17:57 2007 New Revision: 58537 Modified: python/trunk/Misc/NEWS Log: mention bsddb fixes. Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Oct 18 19:17:57 2007 @@ -805,6 +805,13 @@ - Bug #1721309: prevent bsddb module from freeing random memory. +- Bug #1233: fix bsddb.dbshelve.DBShelf append method to work as + intended for RECNO databases. + +- Fix bsddb.dbtables: Don't randomly corrupt newly inserted rows by + picking a rowid string with null bytes in it. Such rows could not + later be deleted, modified or individually selected. + - Bug #1686475: Support stat'ing open files on Windows again. - Patch #1185447: binascii.b2a_qp() now correctly quotes binary characters From buildbot at python.org Thu Oct 18 20:21:41 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Oct 2007 18:21:41 +0000 Subject: [Python-checkins] buildbot failure in alpha Tru64 5.1 2.5 Message-ID: <20071018182141.3635D1E401F@bag.python.org> The Buildbot has detected a new failure of alpha Tru64 5.1 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Tru64%205.1%202.5/builds/334 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-tru64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket ====================================================================== FAIL: testInterruptedTimeout (test.test_socket.TCPTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/net/taipan/scratch1/nnorwitz/python/2.5.norwitz-tru64/build/Lib/test/test_socket.py", line 879, in testInterruptedTimeout self.fail("got Alarm in wrong place") AssertionError: got Alarm in wrong place sincerely, -The Buildbot From buildbot at python.org Thu Oct 18 20:52:47 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Oct 2007 18:52:47 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu 2.5 Message-ID: <20071018185248.3C2EF1E4024@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%202.5/builds/57 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_bsddb3 test_resource ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 44, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 57, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 52, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 52, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 52, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 52, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 52, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 52, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 52, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 52, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 46, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') Traceback (most recent call last): File "./Lib/test/regrtest.py", line 549, in runtest_inner the_package = __import__(abstest, globals(), locals(), []) File "/home/pybot/buildarea/2.5.klose-ubuntu-hppa/build/Lib/test/test_resource.py", line 42, in f.close() IOError: [Errno 27] File too large make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Oct 18 21:12:35 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Oct 2007 19:12:35 +0000 Subject: [Python-checkins] buildbot failure in alpha Debian 3.0 Message-ID: <20071018191235.98E9B1E4034@bag.python.org> The Buildbot has detected a new failure of alpha Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Debian%203.0/builds/35 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-alpha Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Thu Oct 18 23:13:07 2007 From: python-checkins at python.org (raymond.hettinger) Date: Thu, 18 Oct 2007 23:13:07 +0200 (CEST) Subject: [Python-checkins] r58538 - python/trunk/Doc/c-api/index.rst Message-ID: <20071018211307.304381E4021@bag.python.org> Author: raymond.hettinger Date: Thu Oct 18 23:13:06 2007 New Revision: 58538 Modified: python/trunk/Doc/c-api/index.rst Log: Remove useless warning Modified: python/trunk/Doc/c-api/index.rst ============================================================================== --- python/trunk/Doc/c-api/index.rst (original) +++ python/trunk/Doc/c-api/index.rst Thu Oct 18 23:13:06 2007 @@ -12,12 +12,6 @@ which describes the general principles of extension writing but does not document the API functions in detail. -.. warning:: - - The current version of this document is somewhat incomplete. However, most of - the important functions, types and structures are described. - - .. toctree:: :maxdepth: 2 From buildbot at python.org Thu Oct 18 23:38:06 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Oct 2007 21:38:06 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux 2.5 Message-ID: <20071018213806.739D51E4021@bag.python.org> The Buildbot has detected a new failure of ARM Linux 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%202.5/builds/10 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-arm Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Aborted sincerely, -The Buildbot From buildbot at python.org Fri Oct 19 01:47:59 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Oct 2007 23:47:59 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 2.5 Message-ID: <20071018234759.64D141E4039@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%202.5/builds/8 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Fri Oct 19 09:31:20 2007 From: python-checkins at python.org (gregory.p.smith) Date: Fri, 19 Oct 2007 09:31:20 +0200 (CEST) Subject: [Python-checkins] r58539 - python/trunk/Lib/bsddb/test/test_1413192.py Message-ID: <20071019073120.EE9C41E4043@bag.python.org> Author: gregory.p.smith Date: Fri Oct 19 09:31:20 2007 New Revision: 58539 Modified: python/trunk/Lib/bsddb/test/test_1413192.py Log: squelch the warning that this test is supposed to trigger. Modified: python/trunk/Lib/bsddb/test/test_1413192.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_1413192.py (original) +++ python/trunk/Lib/bsddb/test/test_1413192.py Fri Oct 19 09:31:20 2007 @@ -5,6 +5,7 @@ import shutil import tempfile +import warnings try: # For Pythons w/distutils and add-on pybsddb from bsddb3 import db @@ -32,8 +33,12 @@ del self.the_txn -context = Context() -del context +warnings.filterwarnings('ignore', 'DBTxn aborted in destructor') +try: + context = Context() + del context +finally: + warnings.resetwarnings() # try not to leave a turd try: From python-checkins at python.org Fri Oct 19 09:35:22 2007 From: python-checkins at python.org (gregory.p.smith) Date: Fri, 19 Oct 2007 09:35:22 +0200 (CEST) Subject: [Python-checkins] r58541 - python/branches/release25-maint/Lib/bsddb/test/test_1413192.py Message-ID: <20071019073522.D214A1E4022@bag.python.org> Author: gregory.p.smith Date: Fri Oct 19 09:35:22 2007 New Revision: 58541 Modified: python/branches/release25-maint/Lib/bsddb/test/test_1413192.py Log: Backport 58539: squelch the warning that this test is intended to raise. Modified: python/branches/release25-maint/Lib/bsddb/test/test_1413192.py ============================================================================== --- python/branches/release25-maint/Lib/bsddb/test/test_1413192.py (original) +++ python/branches/release25-maint/Lib/bsddb/test/test_1413192.py Fri Oct 19 09:35:22 2007 @@ -5,6 +5,7 @@ import shutil import tempfile +import warnings try: # For Pythons w/distutils and add-on pybsddb from bsddb3 import db @@ -32,8 +33,12 @@ del self.the_txn -context = Context() -del context +warnings.filterwarnings('ignore', 'DBTxn aborted in destructor') +try: + context = Context() + del context +finally: + warnings.resetwarnings() # try not to leave a turd try: From buildbot at python.org Fri Oct 19 10:06:39 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Oct 2007 08:06:39 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 trunk Message-ID: <20071019080639.A16EB1E4034@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%20trunk/builds/331 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllib2net sincerely, -The Buildbot From nnorwitz at gmail.com Fri Oct 19 10:23:40 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 19 Oct 2007 04:23:40 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20071019082340.GA9438@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_cn skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_hk test_codecmaps_hk skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_jp test_codecmaps_jp skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_kr test_codecmaps_kr skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_tw test_codecmaps_tw skipped -- Use of the `urlfetch' resource not enabled test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [9105 refs] test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test test_ftplib failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_ftplib.py", line 42, in testBasic ftp = ftplib.FTP("localhost") File "/tmp/python-test/local/lib/python2.6/ftplib.py", line 114, in __init__ self.connect(host) File "/tmp/python-test/local/lib/python2.6/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/tmp/python-test/local/lib/python2.6/socket.py", line 462, in create_connection raise error, msg error: [Errno 111] Connection refused test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_normalization skipped -- Use of the `urlfetch' resource not enabled test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7362 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 296 tests OK. 1 test failed: test_ftplib 35 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses test_gl test_imageop test_imgfile test_ioctl test_linuxaudiodev test_macostools test_normalization test_ossaudiodev test_pep277 test_plistlib test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [506474 refs] From buildbot at python.org Fri Oct 19 10:31:55 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Oct 2007 08:31:55 +0000 Subject: [Python-checkins] buildbot failure in x86 XP trunk Message-ID: <20071019083155.C9DB71E4021@bag.python.org> The Buildbot has detected a new failure of x86 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP%20trunk/builds/708 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: mcintyre-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith,raymond.hettinger BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Fri Oct 19 10:43:59 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Oct 2007 08:43:59 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI trunk Message-ID: <20071019084359.581F11E4021@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%20trunk/builds/37 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Fri Oct 19 14:09:55 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Oct 2007 12:09:55 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20071019120955.EA1D91E4022@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/145 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: alexandre.vassalotti,brett.cannon,gregory.p.smith,guido.van.rossum,kurt.kaiser,neal.norwitz BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Fri Oct 19 14:32:39 2007 From: python-checkins at python.org (georg.brandl) Date: Fri, 19 Oct 2007 14:32:39 +0200 (CEST) Subject: [Python-checkins] r58542 - python/trunk/Doc/library/functions.rst Message-ID: <20071019123239.6C3731E4021@bag.python.org> Author: georg.brandl Date: Fri Oct 19 14:32:39 2007 New Revision: 58542 Modified: python/trunk/Doc/library/functions.rst Log: Clarify wording for apply(). Modified: python/trunk/Doc/library/functions.rst ============================================================================== --- python/trunk/Doc/library/functions.rst (original) +++ python/trunk/Doc/library/functions.rst Fri Oct 19 14:32:39 2007 @@ -1292,12 +1292,11 @@ present, it must be a dictionary whose keys are strings. It specifies keyword arguments to be added to the end of the argument list. Calling :func:`apply` is different from just calling ``function(args)``, since in that case there is - always exactly one argument. The use of :func:`apply` is equivalent to - ``function(*args, **keywords)``. Use of :func:`apply` is not necessary since the - "extended call syntax," as used in the last example, is completely equivalent. + always exactly one argument. The use of :func:`apply` is exactly equivalent to + ``function(*args, **keywords)``. .. deprecated:: 2.3 - Use the extended call syntax instead, as described above. + Use the extended call syntax with ``*args`` and ``**keywords`` instead. .. function:: buffer(object[, offset[, size]]) From python-checkins at python.org Fri Oct 19 14:34:20 2007 From: python-checkins at python.org (georg.brandl) Date: Fri, 19 Oct 2007 14:34:20 +0200 (CEST) Subject: [Python-checkins] r58543 - python/branches/release25-maint/Doc/lib/libfuncs.tex Message-ID: <20071019123420.8E80D1E4021@bag.python.org> Author: georg.brandl Date: Fri Oct 19 14:34:20 2007 New Revision: 58543 Modified: python/branches/release25-maint/Doc/lib/libfuncs.tex Log: Backport r58542. Modified: python/branches/release25-maint/Doc/lib/libfuncs.tex ============================================================================== --- python/branches/release25-maint/Doc/lib/libfuncs.tex (original) +++ python/branches/release25-maint/Doc/lib/libfuncs.tex Fri Oct 19 14:34:20 2007 @@ -1280,13 +1280,11 @@ to be added to the end of the argument list. Calling \function{apply()} is different from just calling \code{\var{function}(\var{args})}, since in that case there is always - exactly one argument. The use of \function{apply()} is equivalent - to \code{\var{function}(*\var{args}, **\var{keywords})}. - Use of \function{apply()} is not necessary since the ``extended call - syntax,'' as used in the last example, is completely equivalent. + exactly one argument. The use of \function{apply()} is exactly + equivalent to \code{\var{function}(*\var{args}, **\var{keywords})}. - \deprecated{2.3}{Use the extended call syntax instead, as described - above.} + \deprecated{2.3}{Use the extended call syntax with \code{*args} + and \code{**keywords} instead.} \end{funcdesc} \begin{funcdesc}{buffer}{object\optional{, offset\optional{, size}}} From python-checkins at python.org Fri Oct 19 14:48:18 2007 From: python-checkins at python.org (mark.summerfield) Date: Fri, 19 Oct 2007 14:48:18 +0200 (CEST) Subject: [Python-checkins] r58544 - python/trunk/Doc/library/difflib.rst python/trunk/Doc/library/filecmp.rst Message-ID: <20071019124818.444121E4082@bag.python.org> Author: mark.summerfield Date: Fri Oct 19 14:48:17 2007 New Revision: 58544 Modified: python/trunk/Doc/library/difflib.rst python/trunk/Doc/library/filecmp.rst Log: Added a cross-ref to each other. Modified: python/trunk/Doc/library/difflib.rst ============================================================================== --- python/trunk/Doc/library/difflib.rst (original) +++ python/trunk/Doc/library/difflib.rst Fri Oct 19 14:48:17 2007 @@ -12,6 +12,10 @@ .. versionadded:: 2.1 +This module provides classes and functions for comparing sequences. It +can be used for example, for comparing files, and can produce difference +information in various formats, including HTML and context and unified +diffs. For comparing directories and files, see also, the :mod:`filecmp` module. .. class:: SequenceMatcher Modified: python/trunk/Doc/library/filecmp.rst ============================================================================== --- python/trunk/Doc/library/filecmp.rst (original) +++ python/trunk/Doc/library/filecmp.rst Fri Oct 19 14:48:17 2007 @@ -8,7 +8,8 @@ The :mod:`filecmp` module defines functions to compare files and directories, -with various optional time/correctness trade-offs. +with various optional time/correctness trade-offs. For comparing files, +see also the :mod:`difflib` module. The :mod:`filecmp` module defines the following functions: From python-checkins at python.org Fri Oct 19 19:38:49 2007 From: python-checkins at python.org (georg.brandl) Date: Fri, 19 Oct 2007 19:38:49 +0200 (CEST) Subject: [Python-checkins] r58545 - python/trunk/Doc/library/mailbox.rst Message-ID: <20071019173849.9D0261E4009@bag.python.org> Author: georg.brandl Date: Fri Oct 19 19:38:49 2007 New Revision: 58545 Modified: python/trunk/Doc/library/mailbox.rst Log: #1284: "S" means "seen", not unread. Modified: python/trunk/Doc/library/mailbox.rst ============================================================================== --- python/trunk/Doc/library/mailbox.rst (original) +++ python/trunk/Doc/library/mailbox.rst Fri Oct 19 19:38:49 2007 @@ -806,7 +806,7 @@ A message is typically moved from :file:`new` to :file:`cur` after its mailbox has been accessed, whether or not the message is has been read. A message - ``msg`` has been read if ``"S" not in msg.get_flags()`` is ``True``. + ``msg`` has been read if ``"S" in msg.get_flags()`` is ``True``. .. method:: MaildirMessage.set_subdir(subdir) From python-checkins at python.org Fri Oct 19 19:39:18 2007 From: python-checkins at python.org (georg.brandl) Date: Fri, 19 Oct 2007 19:39:18 +0200 (CEST) Subject: [Python-checkins] r58546 - python/branches/release25-maint/Doc/lib/libmailbox.tex Message-ID: <20071019173918.A1EDC1E4009@bag.python.org> Author: georg.brandl Date: Fri Oct 19 19:39:18 2007 New Revision: 58546 Modified: python/branches/release25-maint/Doc/lib/libmailbox.tex Log: Backport r58545. Modified: python/branches/release25-maint/Doc/lib/libmailbox.tex ============================================================================== --- python/branches/release25-maint/Doc/lib/libmailbox.tex (original) +++ python/branches/release25-maint/Doc/lib/libmailbox.tex Fri Oct 19 19:39:18 2007 @@ -699,7 +699,7 @@ subdirectory) or "cur" (if the message should be stored in the \file{cur} subdirectory). \note{A message is typically moved from \file{new} to \file{cur} after its mailbox has been accessed, whether or not the message is has been -read. A message \code{msg} has been read if \code{"S" not in msg.get_flags()} +read. A message \code{msg} has been read if \code{"S" in msg.get_flags()} is \code{True}.} \end{methoddesc} From python-checkins at python.org Fri Oct 19 20:11:41 2007 From: python-checkins at python.org (thomas.heller) Date: Fri, 19 Oct 2007 20:11:41 +0200 (CEST) Subject: [Python-checkins] r58548 - in python/trunk: Misc/NEWS Modules/_ctypes/cfield.c Message-ID: <20071019181141.749D71E4009@bag.python.org> Author: thomas.heller Date: Fri Oct 19 20:11:41 2007 New Revision: 58548 Modified: python/trunk/Misc/NEWS python/trunk/Modules/_ctypes/cfield.c Log: Fix ctypes on 32-bit systems when Python is configured --with-system-ffi. See also https://bugs.launchpad.net/bugs/72505. Ported from release25-maint branch. Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Fri Oct 19 20:11:41 2007 @@ -272,6 +272,9 @@ Library ------- +- ctypes will now work correctly on 32-bit systems when Python is + configured with --with-system-ffi. + - Patch #1203: ctypes now does work on OS X when Python is built with --disable-toolbox-glue Modified: python/trunk/Modules/_ctypes/cfield.c ============================================================================== --- python/trunk/Modules/_ctypes/cfield.c (original) +++ python/trunk/Modules/_ctypes/cfield.c Fri Oct 19 20:11:41 2007 @@ -1616,17 +1616,21 @@ /* XXX Hm, sizeof(int) == sizeof(long) doesn't hold on every platform */ /* As soon as we can get rid of the type codes, this is no longer a problem */ #if SIZEOF_LONG == 4 - { 'l', l_set, l_get, &ffi_type_sint, l_set_sw, l_get_sw}, - { 'L', L_set, L_get, &ffi_type_uint, L_set_sw, L_get_sw}, + { 'l', l_set, l_get, &ffi_type_sint32, l_set_sw, l_get_sw}, + { 'L', L_set, L_get, &ffi_type_uint32, L_set_sw, L_get_sw}, #elif SIZEOF_LONG == 8 - { 'l', l_set, l_get, &ffi_type_slong, l_set_sw, l_get_sw}, - { 'L', L_set, L_get, &ffi_type_ulong, L_set_sw, L_get_sw}, + { 'l', l_set, l_get, &ffi_type_sint64, l_set_sw, l_get_sw}, + { 'L', L_set, L_get, &ffi_type_uint64, L_set_sw, L_get_sw}, #else # error #endif #ifdef HAVE_LONG_LONG - { 'q', q_set, q_get, &ffi_type_slong, q_set_sw, q_get_sw}, - { 'Q', Q_set, Q_get, &ffi_type_ulong, Q_set_sw, Q_get_sw}, +#if SIZEOF_LONG_LONG == 8 + { 'q', q_set, q_get, &ffi_type_sint64, q_set_sw, q_get_sw}, + { 'Q', Q_set, Q_get, &ffi_type_uint64, Q_set_sw, Q_get_sw}, +#else +# error +#endif #endif { 'P', P_set, P_get, &ffi_type_pointer}, { 'z', z_set, z_get, &ffi_type_pointer}, From python-checkins at python.org Fri Oct 19 21:25:57 2007 From: python-checkins at python.org (facundo.batista) Date: Fri, 19 Oct 2007 21:25:57 +0200 (CEST) Subject: [Python-checkins] r58550 - in python/trunk/Lib: decimal.py test/test_decimal.py Message-ID: <20071019192557.885591E54C4@bag.python.org> Author: facundo.batista Date: Fri Oct 19 21:25:57 2007 New Revision: 58550 Modified: python/trunk/Lib/decimal.py python/trunk/Lib/test/test_decimal.py Log: The constructor from tuple was way too permissive: it allowed bad coefficient numbers, floats in the sign, and other details that generated directly the wrong number in the best case, or triggered misfunctionality in the alorithms. Test cases added for these issues. Thanks Mark Dickinson. Modified: python/trunk/Lib/decimal.py ============================================================================== --- python/trunk/Lib/decimal.py (original) +++ python/trunk/Lib/decimal.py Fri Oct 19 21:25:57 2007 @@ -562,20 +562,46 @@ # tuple/list conversion (possibly from as_tuple()) if isinstance(value, (list,tuple)): if len(value) != 3: - raise ValueError('Invalid arguments') - if value[0] not in (0,1): - raise ValueError('Invalid sign') - for digit in value[1]: - if not isinstance(digit, (int,long)) or digit < 0: - raise ValueError("The second value in the tuple must be " - "composed of non negative integer elements.") + raise ValueError('Invalid tuple size in creation of Decimal ' + 'from list or tuple. The list or tuple ' + 'should have exactly three elements.') + # process sign. The isinstance test rejects floats + if not (isinstance(value[0], (int, long)) and value[0] in (0,1)): + raise ValueError("Invalid sign. The first value in the tuple " + "should be an integer; either 0 for a " + "positive number or 1 for a negative number.") self._sign = value[0] - self._int = tuple(value[1]) - if value[2] in ('F','n','N'): + if value[2] == 'F': + # infinity: value[1] is ignored + self._int = (0,) self._exp = value[2] self._is_special = True else: - self._exp = int(value[2]) + # process and validate the digits in value[1] + digits = [] + for digit in value[1]: + if isinstance(digit, (int, long)) and 0 <= digit <= 9: + # skip leading zeros + if digits or digit != 0: + digits.append(digit) + else: + raise ValueError("The second value in the tuple must " + "be composed of integers in the range " + "0 through 9.") + if value[2] in ('n', 'N'): + # NaN: digits form the diagnostic + self._int = tuple(digits) + self._exp = value[2] + self._is_special = True + elif isinstance(value[2], (int, long)): + # finite number: digits give the coefficient + self._int = tuple(digits or [0]) + self._exp = value[2] + self._is_special = False + else: + raise ValueError("The third value in the tuple must " + "be an integer, or one of the " + "strings 'F', 'n', 'N'.") return self if isinstance(value, float): Modified: python/trunk/Lib/test/test_decimal.py ============================================================================== --- python/trunk/Lib/test/test_decimal.py (original) +++ python/trunk/Lib/test/test_decimal.py Fri Oct 19 21:25:57 2007 @@ -452,13 +452,18 @@ #bad sign self.assertRaises(ValueError, Decimal, (8, (4, 3, 4, 9, 1), 2) ) + self.assertRaises(ValueError, Decimal, (0., (4, 3, 4, 9, 1), 2) ) + self.assertRaises(ValueError, Decimal, (Decimal(1), (4, 3, 4, 9, 1), 2)) #bad exp self.assertRaises(ValueError, Decimal, (1, (4, 3, 4, 9, 1), 'wrong!') ) + self.assertRaises(ValueError, Decimal, (1, (4, 3, 4, 9, 1), 0.) ) + self.assertRaises(ValueError, Decimal, (1, (4, 3, 4, 9, 1), '1') ) #bad coefficients self.assertRaises(ValueError, Decimal, (1, (4, 3, 4, None, 1), 2) ) self.assertRaises(ValueError, Decimal, (1, (4, -3, 4, 9, 1), 2) ) + self.assertRaises(ValueError, Decimal, (1, (4, 10, 4, 9, 1), 2) ) def test_explicit_from_Decimal(self): @@ -1060,6 +1065,28 @@ d = Decimal("Infinity") self.assertEqual(d.as_tuple(), (0, (0,), 'F') ) + #leading zeros in coefficient should be stripped + d = Decimal( (0, (0, 0, 4, 0, 5, 3, 4), -2) ) + self.assertEqual(d.as_tuple(), (0, (4, 0, 5, 3, 4), -2) ) + d = Decimal( (1, (0, 0, 0), 37) ) + self.assertEqual(d.as_tuple(), (1, (0,), 37)) + d = Decimal( (1, (), 37) ) + self.assertEqual(d.as_tuple(), (1, (0,), 37)) + + #leading zeros in NaN diagnostic info should be stripped + d = Decimal( (0, (0, 0, 4, 0, 5, 3, 4), 'n') ) + self.assertEqual(d.as_tuple(), (0, (4, 0, 5, 3, 4), 'n') ) + d = Decimal( (1, (0, 0, 0), 'N') ) + self.assertEqual(d.as_tuple(), (1, (), 'N') ) + d = Decimal( (1, (), 'n') ) + self.assertEqual(d.as_tuple(), (1, (), 'n') ) + + #coefficient in infinity should be ignored + d = Decimal( (0, (4, 5, 3, 4), 'F') ) + self.assertEqual(d.as_tuple(), (0, (0,), 'F')) + d = Decimal( (1, (0, 2, 7, 1), 'F') ) + self.assertEqual(d.as_tuple(), (1, (0,), 'F')) + def test_immutability_operations(self): # Do operations and check that it didn't change change internal objects. From buildbot at python.org Fri Oct 19 21:36:03 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Oct 2007 19:36:03 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071019193603.92F1A1E4009@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/229 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,mark.summerfield,thomas.heller BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Oct 19 21:45:47 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Oct 2007 19:45:47 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20071019194548.137231E4009@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/269 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: The web-page 'rebuild' button was pressed by 'Thomas Heller': try again Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,mark.summerfield,thomas.heller BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_winsound ====================================================================== ERROR: test_extremes (test.test_winsound.BeepTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 18, in test_extremes winsound.Beep(37, 75) RuntimeError: Failed to beep ====================================================================== ERROR: test_increasingfrequency (test.test_winsound.BeepTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 23, in test_increasingfrequency winsound.Beep(i, 75) RuntimeError: Failed to beep ====================================================================== ERROR: test_alias_asterisk (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 64, in test_alias_asterisk winsound.PlaySound('SystemAsterisk', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_exclamation (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 74, in test_alias_exclamation winsound.PlaySound('SystemExclamation', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_exit (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 84, in test_alias_exit winsound.PlaySound('SystemExit', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_hand (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 94, in test_alias_hand winsound.PlaySound('SystemHand', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_question (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 104, in test_alias_question winsound.PlaySound('SystemQuestion', winsound.SND_ALIAS) RuntimeError: Failed to play sound sincerely, -The Buildbot From buildbot at python.org Fri Oct 19 22:13:44 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Oct 2007 20:13:44 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20071019201344.705311E4023@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/277 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: facundo.batista BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc ====================================================================== ERROR: test_fail_no_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 497, in test_fail_no_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1006, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 932, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer ====================================================================== ERROR: test_fail_with_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 517, in test_fail_with_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1006, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 932, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Oct 20 00:11:33 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Oct 2007 22:11:33 +0000 Subject: [Python-checkins] buildbot failure in x86 XP 3.0 Message-ID: <20071019221133.BBB201E4009@bag.python.org> The Buildbot has detected a new failure of x86 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP%203.0/builds/164 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: mcintyre-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Sat Oct 20 01:39:09 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Oct 2007 23:39:09 +0000 Subject: [Python-checkins] buildbot failure in x86 XP 3.0 Message-ID: <20071019233910.18F6C1E400B@bag.python.org> The Buildbot has detected a new failure of x86 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP%203.0/builds/166 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: mcintyre-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Sat Oct 20 13:53:33 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 20 Oct 2007 11:53:33 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 3.0 Message-ID: <20071020115333.904FE1E4026@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%203.0/builds/34 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Sat Oct 20 15:22:54 2007 From: python-checkins at python.org (georg.brandl) Date: Sat, 20 Oct 2007 15:22:54 +0200 (CEST) Subject: [Python-checkins] r58559 - python/trunk/Doc/library/dis.rst Message-ID: <20071020132254.15F2D1E4022@bag.python.org> Author: georg.brandl Date: Sat Oct 20 15:22:53 2007 New Revision: 58559 Modified: python/trunk/Doc/library/dis.rst Log: Fix code being interpreted as a target. Modified: python/trunk/Doc/library/dis.rst ============================================================================== --- python/trunk/Doc/library/dis.rst (original) +++ python/trunk/Doc/library/dis.rst Sat Oct 20 15:22:53 2007 @@ -523,9 +523,9 @@ context manager's :meth:`__exit__` bound method. Below that are 1--3 values indicating how/why the finally clause was entered: - * SECOND = None - * (SECOND, THIRD) = (WHY_{RETURN,CONTINUE}), retval - * SECOND = WHY_\*; no retval below it + * SECOND = ``None`` + * (SECOND, THIRD) = (``WHY_{RETURN,CONTINUE}``), retval + * SECOND = ``WHY_*``; no retval below it * (SECOND, THIRD, FOURTH) = exc_info() In the last case, ``TOS(SECOND, THIRD, FOURTH)`` is called, otherwise @@ -535,6 +535,8 @@ returns a 'true' value, this information is "zapped", to prevent ``END_FINALLY`` from re-raising the exception. (But non-local gotos should still be resumed.) + .. XXX explain the WHY stuff! + All of the following opcodes expect arguments. An argument is two bytes, with the more significant byte last. From python-checkins at python.org Sat Oct 20 15:36:14 2007 From: python-checkins at python.org (georg.brandl) Date: Sat, 20 Oct 2007 15:36:14 +0200 (CEST) Subject: [Python-checkins] r58560 - doctools/trunk/sphinx/directives.py doctools/trunk/sphinx/highlighting.py Message-ID: <20071020133614.CFF221E4022@bag.python.org> Author: georg.brandl Date: Sat Oct 20 15:36:14 2007 New Revision: 58560 Modified: doctools/trunk/sphinx/directives.py doctools/trunk/sphinx/highlighting.py Log: Add "cmdoption" directive for command-line options. Modified: doctools/trunk/sphinx/directives.py ============================================================================== --- doctools/trunk/sphinx/directives.py (original) +++ doctools/trunk/sphinx/directives.py Sat Oct 20 15:36:14 2007 @@ -299,8 +299,20 @@ name = parse_c_signature(signode, sig, desctype) elif desctype == 'opcode': name = parse_opcode_signature(signode, sig, desctype) + elif desctype == 'cmdoption': + # TODO: add custom parsing for parts? + signode.clear() + signode += addnodes.desc_name(sig, sig) + if not noindex: + targetname = 'cmdoption-%s' % env.index_num + env.index_num += 1 + signode['ids'].append(targetname) + state.document.note_explicit_target(signode) + env.note_index_entry('pair', 'command line option; %s' % sig, + targetname, targetname) + continue else: - # describe: use generic fallback + # for "describe": use generic fallback raise ValueError except ValueError, err: signode.clear() @@ -364,7 +376,8 @@ 'cvar', # the odd one 'opcode', - # the generic one + # the generic ones + 'cmdoption', # for command line options 'describe', ] Modified: doctools/trunk/sphinx/highlighting.py ============================================================================== --- doctools/trunk/sphinx/highlighting.py (original) +++ doctools/trunk/sphinx/highlighting.py Sat Oct 20 15:36:14 2007 @@ -22,7 +22,7 @@ from pygments.filters import ErrorToken from pygments.style import Style from pygments.styles.friendly import FriendlyStyle - from pygments.token import Generic, Comment + from pygments.token import Generic, Comment, Number except ImportError: pygments = None else: @@ -38,6 +38,7 @@ styles.update({ Generic.Output: 'italic #333', Comment: 'italic #408090', + Number: '#208050', }) lexers = defaultdict(TextLexer, From python-checkins at python.org Sat Oct 20 15:36:24 2007 From: python-checkins at python.org (georg.brandl) Date: Sat, 20 Oct 2007 15:36:24 +0200 (CEST) Subject: [Python-checkins] r58561 - python/trunk/Doc/documenting/markup.rst Message-ID: <20071020133624.E27951E4022@bag.python.org> Author: georg.brandl Date: Sat Oct 20 15:36:24 2007 New Revision: 58561 Modified: python/trunk/Doc/documenting/markup.rst Log: Document new "cmdoption" directive. Modified: python/trunk/Doc/documenting/markup.rst ============================================================================== --- python/trunk/Doc/documenting/markup.rst (original) +++ python/trunk/Doc/documenting/markup.rst Sat Oct 20 15:36:24 2007 @@ -212,6 +212,14 @@ Describes a Python bytecode instruction. +.. describe:: cmdoption + + Describes a command line option or switch. Option argument names should be + enclosed in angle brackets. Example:: + + .. cmdoption:: -m + + Run a module as a script. There is also a generic version of these directives: From python-checkins at python.org Sat Oct 20 17:21:22 2007 From: python-checkins at python.org (georg.brandl) Date: Sat, 20 Oct 2007 17:21:22 +0200 (CEST) Subject: [Python-checkins] r58562 - python/trunk/Doc/tutorial/interactive.rst Message-ID: <20071020152122.C5A311E400D@bag.python.org> Author: georg.brandl Date: Sat Oct 20 17:21:22 2007 New Revision: 58562 Modified: python/trunk/Doc/tutorial/interactive.rst Log: Make a path more Unix-standardy. Modified: python/trunk/Doc/tutorial/interactive.rst ============================================================================== --- python/trunk/Doc/tutorial/interactive.rst (original) +++ python/trunk/Doc/tutorial/interactive.rst Sat Oct 20 17:21:22 2007 @@ -123,7 +123,7 @@ # bound to the Esc key by default (you can change it - see readline docs). # # Store the file in ~/.pystartup, and set an environment variable to point - # to it: "export PYTHONSTARTUP=/max/home/itamar/.pystartup" in bash. + # to it: "export PYTHONSTARTUP=/home/user/.pystartup" in bash. # # Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the # full path to your home directory. From python-checkins at python.org Sat Oct 20 19:50:45 2007 From: python-checkins at python.org (georg.brandl) Date: Sat, 20 Oct 2007 19:50:45 +0200 (CEST) Subject: [Python-checkins] r58563 - doctools/trunk/sphinx/builder.py doctools/trunk/sphinx/directives.py doctools/trunk/sphinx/environment.py doctools/trunk/sphinx/roles.py doctools/trunk/sphinx/writer.py Message-ID: <20071020175045.EBC1C1E4025@bag.python.org> Author: georg.brandl Date: Sat Oct 20 19:50:45 2007 New Revision: 58563 Modified: doctools/trunk/sphinx/builder.py doctools/trunk/sphinx/directives.py doctools/trunk/sphinx/environment.py doctools/trunk/sphinx/roles.py doctools/trunk/sphinx/writer.py Log: Add an envvar directive too. Link from :envvar: and :option: to the relevant directives. Modified: doctools/trunk/sphinx/builder.py ============================================================================== --- doctools/trunk/sphinx/builder.py (original) +++ doctools/trunk/sphinx/builder.py Sat Oct 20 19:50:45 2007 @@ -407,7 +407,8 @@ pl = pl.split(', ') if pl else [] platforms.update(pl) if fl != mn[0].lower() and mn[0] != '_': - modindexentries.append(['', False, 0, False, mn[0].upper(), '', [], False]) + modindexentries.append(['', False, 0, False, + mn[0].upper(), '', [], False]) tn = mn.partition('.')[0] if tn != mn: # submodule Modified: doctools/trunk/sphinx/directives.py ============================================================================== --- doctools/trunk/sphinx/directives.py (original) +++ doctools/trunk/sphinx/directives.py Sat Oct 20 19:50:45 2007 @@ -246,7 +246,7 @@ opcode_sig_re = re.compile(r'(\w+(?:\+\d)?)\s*\((.*)\)') -def parse_opcode_signature(signode, sig, desctype): +def parse_opcode_signature(signode, sig): """Transform an opcode signature into RST nodes.""" m = opcode_sig_re.match(sig) if m is None: raise ValueError @@ -258,6 +258,18 @@ return opname.strip() +option_desc_re = re.compile(r'([-/])([-_a-zA-Z0-9]+)(\s*.*)') + +def parse_option_desc(signode, sig): + """Transform an option description into RST nodes.""" + m = option_desc_re.match(sig) + if m is None: raise ValueError + prefix, optname, args = m.groups() + signode += addnodes.desc_name(prefix+optname, prefix+optname) + signode += addnodes.desc_classname(args, args) + return optname + + def add_refcount_annotation(env, node, name): """Add a reference count annotation. Return None.""" entry = env.refcounts.get(name) @@ -298,18 +310,27 @@ elif desctype in ('cfunction', 'cmember', 'cmacro', 'ctype', 'cvar'): name = parse_c_signature(signode, sig, desctype) elif desctype == 'opcode': - name = parse_opcode_signature(signode, sig, desctype) + name = parse_opcode_signature(signode, sig) elif desctype == 'cmdoption': - # TODO: add custom parsing for parts? + optname = parse_option_desc(signode, sig) + if not noindex: + targetname = 'cmdoption-' + optname + signode['ids'].append(targetname) + state.document.note_explicit_target(signode) + env.note_index_entry('pair', 'command line option; %s' % sig, + targetname, targetname) + env.note_reftarget('option', optname, targetname) + continue + elif desctype == 'envvar': signode.clear() signode += addnodes.desc_name(sig, sig) if not noindex: - targetname = 'cmdoption-%s' % env.index_num - env.index_num += 1 + targetname = 'envvar-' + sig signode['ids'].append(targetname) state.document.note_explicit_target(signode) - env.note_index_entry('pair', 'command line option; %s' % sig, + env.note_index_entry('pair', 'environment variable; %s' % sig, targetname, targetname) + env.note_reftarget('envvar', sig, targetname) continue else: # for "describe": use generic fallback @@ -378,6 +399,7 @@ 'opcode', # the generic ones 'cmdoption', # for command line options + 'envvar', # for environment variables 'describe', ] @@ -472,7 +494,7 @@ if idname not in state.document.ids: subnode['ids'].append(idname) state.document.note_implicit_target(subnode, subnode) - env.note_token(subnode['tokenname']) + env.note_reftarget('token', subnode['tokenname'], idname) subnode.extend(token_xrefs(tokens, env)) node.append(subnode) return [node] + messages @@ -621,7 +643,7 @@ env.gloss_entries.add(new_id) li[0]['names'].append(new_id) li[0]['ids'].append(new_id) - state.document.settings.env.note_glossaryterm(termtext, new_id) + state.document.settings.env.note_reftarget('term', termtext, new_id) return [node] glossary_directive.content = 1 Modified: doctools/trunk/sphinx/environment.py ============================================================================== --- doctools/trunk/sphinx/environment.py (original) +++ doctools/trunk/sphinx/environment.py Sat Oct 20 19:50:45 2007 @@ -52,7 +52,7 @@ # This is increased every time a new environment attribute is added # to properly invalidate pickle files. -ENV_VERSION = 11 +ENV_VERSION = 12 def walk_depth(node, depth, maxdepth): @@ -204,9 +204,9 @@ self.descrefs = {} # fullname -> filename, desctype self.filemodules = {} # filename -> [modules] self.modules = {} # modname -> filename, synopsis, platform, deprecated - self.tokens = {} # tokenname -> filename - self.labels = {} # labelname -> filename, labelid - self.glossary = {} # term -> filename, labelid + self.labels = {} # labelname -> filename, labelid, sectionname + self.reftargets = {} # (type, name) -> filename, labelid + # where type is term, token, option, envvar # Other inventories self.indexentries = {} # filename -> list of @@ -244,15 +244,12 @@ for modname, (fn, _, _, _) in self.modules.items(): if fn == filename: del self.modules[modname] - for tokenname, fn in self.tokens.items(): - if fn == filename: - del self.tokens[tokenname] for labelname, (fn, _, _) in self.labels.items(): if fn == filename: del self.labels[labelname] - for term, (fn, _) in self.glossary.items(): + for key, (fn, _) in self.reftargets.items(): if fn == filename: - del self.glossary[term] + del self.reftargets[key] self.indexentries.pop(filename, None) for version, changes in self.versionchanges.items(): new = [change for change in changes if change[1] != filename] @@ -302,7 +299,8 @@ Yields a summary and then filenames as it processes them. """ added, changed, removed = self.get_outdated_files(config) - msg = '%s added, %s changed, %s removed' % (len(added), len(changed), len(removed)) + msg = '%s added, %s changed, %s removed' % (len(added), len(changed), + len(removed)) if self.config != config: msg = '[config changed] ' + msg yield msg @@ -502,8 +500,8 @@ self.modules[modname] = (self.filename, synopsis, platform, deprecated) self.filemodules.setdefault(self.filename, []).append(modname) - def note_token(self, tokenname): - self.tokens[tokenname] = self.filename + def note_reftarget(self, type, name, labelid): + self.reftargets[type, name] = (self.filename, labelid) def note_index_entry(self, type, string, targetid, aliasname): self.indexentries.setdefault(self.filename, []).append( @@ -512,9 +510,6 @@ def note_versionchange(self, type, version, node): self.versionchanges.setdefault(version, []).append( (type, self.filename, self.currmodule, self.currdesc, node.deepcopy())) - - def note_glossaryterm(self, text, labelname): - self.glossary[text] = (self.filename, labelname) # ------- # --------- RESOLVING REFERENCES AND TOCTREES ------------------------------ @@ -584,8 +579,6 @@ typ = node['reftype'] target = node['reftarget'] - modname = node['modname'] - clsname = node['classname'] if typ == 'ref': filename, labelid, sectname = self.labels.get(target, ('','','')) @@ -602,11 +595,12 @@ newnode['refuri'] = builder.get_relative_uri( docfilename, filename) + '#' + labelid newnode.append(nodes.emphasis(sectname, sectname)) - elif typ == 'term': - filename, labelid = self.glossary.get(target, ('', '')) + elif typ in ('token', 'term', 'envvar', 'option'): + filename, labelid = self.reftargets.get((typ, target), ('', '')) if not filename: - print >>self.warning_stream, \ - '%s: term not in glossary: %s' % (docfilename, target) + if typ == 'term': + print >>self.warning_stream, \ + '%s: term not in glossary: %s' % (docfilename, target) newnode = contnode else: newnode = nodes.reference('', '') @@ -616,18 +610,6 @@ newnode['refuri'] = builder.get_relative_uri( docfilename, filename) + '#' + labelid newnode.append(contnode) - elif typ == 'token': - filename = self.tokens.get(target, '') - if not filename: - newnode = contnode - else: - newnode = nodes.reference('', '') - if filename == docfilename: - newnode['refid'] = 'grammar-token-' + target - else: - newnode['refuri'] = builder.get_relative_uri( - docfilename, filename) + '#grammar-token-' + target - newnode.append(contnode) elif typ == 'mod': filename, synopsis, platform, deprecated = \ self.modules.get(target, ('','','', '')) @@ -649,6 +631,8 @@ synopsis, (' (deprecated)' if deprecated else '')) newnode.append(contnode) else: + modname = node['modname'] + clsname = node['classname'] searchorder = 1 if node.hasattr('refspecific') else 0 name, desc = self.find_desc(modname, clsname, target, typ, searchorder) if not desc: Modified: doctools/trunk/sphinx/roles.py ============================================================================== --- doctools/trunk/sphinx/roles.py (original) +++ doctools/trunk/sphinx/roles.py Sat Oct 20 19:50:45 2007 @@ -29,7 +29,6 @@ 'manpage' : addnodes.literal_emphasis, 'mimetype' : addnodes.literal_emphasis, 'newsgroup' : addnodes.literal_emphasis, - 'option' : addnodes.literal_emphasis, 'program' : nodes.strong, 'regexp' : nodes.literal, } @@ -48,10 +47,14 @@ if typ == 'envvar': env.note_index_entry('single', '%s' % text, targetid, text) - env.note_index_entry('single', 'environment variables!%s' % text, + env.note_index_entry('single', 'environment variable; %s' % text, targetid, text) - textnode = nodes.strong(text, text) - return [targetnode, textnode], [] + #textnode = nodes.strong(text, text) + pnode = addnodes.pending_xref(rawtext) + pnode['reftype'] = 'envvar' + pnode['reftarget'] = text + pnode += nodes.strong(text, text, classes=['xref']) + return [targetnode, pnode], [] elif typ == 'pep': env.note_index_entry('single', 'Python Enhancement Proposals!PEP %s' % text, targetid, 'PEP %s' % text) @@ -91,6 +94,7 @@ 'ref': nodes.emphasis, 'term': nodes.emphasis, 'token': nodes.strong, + 'option': addnodes.literal_emphasis, } def xfileref_role(typ, rawtext, text, lineno, inliner, options={}, content=[]): @@ -112,7 +116,12 @@ typ in ('data', 'exc', 'func', 'class', 'const', 'attr', 'meth'): text = text[1:] pnode['refspecific'] = True - pnode['reftarget'] = ws_re.sub((' ' if typ == 'term' else ''), text) + if typ == 'term': + pnode['reftarget'] = ws_re.sub(' ', text) + elif typ == 'option': + pnode['reftarget'] = text[1:] if text[0] in '-/' else text + else: + pnode['reftarget'] = ws_re.sub('', text) pnode['modname'] = env.currmodule pnode['classname'] = env.currclass pnode += innernodetypes.get(typ, nodes.literal)(rawtext, text, classes=['xref']) @@ -160,6 +169,7 @@ 'ref': xfileref_role, 'token' : xfileref_role, 'term': xfileref_role, + 'option': xfileref_role, 'menuselection' : menusel_role, 'file' : emph_literal_role, Modified: doctools/trunk/sphinx/writer.py ============================================================================== --- doctools/trunk/sphinx/writer.py (original) +++ doctools/trunk/sphinx/writer.py Sat Oct 20 19:50:45 2007 @@ -258,6 +258,14 @@ self.depart_emphasis(node) self.no_smarty -= 1 + def visit_desc_signature(self, node): + self.no_smarty += 1 + HTMLTranslator.visit_desc_signature(self, node) + + def depart_desc_signature(self, node): + self.no_smarty -= 1 + HTMLTranslator.depart_desc_signature(self, node) + def visit_productionlist(self, node): self.no_smarty += 1 try: From python-checkins at python.org Sat Oct 20 19:51:39 2007 From: python-checkins at python.org (georg.brandl) Date: Sat, 20 Oct 2007 19:51:39 +0200 (CEST) Subject: [Python-checkins] r58564 - python/trunk/Doc/documenting/markup.rst Message-ID: <20071020175139.DA2601E4029@bag.python.org> Author: georg.brandl Date: Sat Oct 20 19:51:39 2007 New Revision: 58564 Modified: python/trunk/Doc/documenting/markup.rst Log: Document new directive "envvar". Modified: python/trunk/Doc/documenting/markup.rst ============================================================================== --- python/trunk/Doc/documenting/markup.rst (original) +++ python/trunk/Doc/documenting/markup.rst Sat Oct 20 19:51:39 2007 @@ -221,6 +221,11 @@ Run a module as a script. +.. describe:: envvar + + Describes an environment variable that Python uses or defines. + + There is also a generic version of these directives: .. describe:: describe From python-checkins at python.org Sat Oct 20 19:56:06 2007 From: python-checkins at python.org (georg.brandl) Date: Sat, 20 Oct 2007 19:56:06 +0200 (CEST) Subject: [Python-checkins] r58565 - doctools/trunk/sphinx/highlighting.py Message-ID: <20071020175606.C69E61E4022@bag.python.org> Author: georg.brandl Date: Sat Oct 20 19:56:06 2007 New Revision: 58565 Modified: doctools/trunk/sphinx/highlighting.py Log: Don't italicize interactive mode output. Modified: doctools/trunk/sphinx/highlighting.py ============================================================================== --- doctools/trunk/sphinx/highlighting.py (original) +++ doctools/trunk/sphinx/highlighting.py Sat Oct 20 19:56:06 2007 @@ -36,7 +36,7 @@ styles = FriendlyStyle.styles styles.update({ - Generic.Output: 'italic #333', + Generic.Output: '#333', Comment: 'italic #408090', Number: '#208050', }) From python-checkins at python.org Sat Oct 20 20:04:28 2007 From: python-checkins at python.org (georg.brandl) Date: Sat, 20 Oct 2007 20:04:28 +0200 (CEST) Subject: [Python-checkins] r58566 - doctools/trunk/sphinx/templates/index.html doctools/trunk/sphinx/templates/search.html Message-ID: <20071020180428.D3E3D1E4022@bag.python.org> Author: georg.brandl Date: Sat Oct 20 20:04:28 2007 New Revision: 58566 Modified: doctools/trunk/sphinx/templates/index.html doctools/trunk/sphinx/templates/search.html Log: Prepare for new toplevel chapter, "Using Python." Modified: doctools/trunk/sphinx/templates/index.html ============================================================================== --- doctools/trunk/sphinx/templates/index.html (original) +++ doctools/trunk/sphinx/templates/index.html Sat Oct 20 20:04:28 2007 @@ -17,6 +17,8 @@ changes since previous major release

+
+
print "Hello World"
+
+ +As you can see, Pygments uses CSS classes (by default, but you can change that) +instead of inline styles in order to avoid outputting redundant style information over +and over. A CSS stylesheet that contains all CSS classes possibly used in the output +can be produced by: + +.. sourcecode:: python + + print HtmlFormatter().get_style_defs('.highlight') + +The argument to `get_style_defs` is used as an additional CSS selector: the output +may look like this: + +.. sourcecode:: css + + .highlight .k { color: #AA22FF; font-weight: bold } + .highlight .s { color: #BB4444 } + ... + + +Options +======= + +The `highlight()` function supports a fourth argument called `outfile`, it must be +a file object if given. The formatted output will then be written to this file +instead of being returned as a string. + +Lexers and formatters both support options. They are given to them as keyword +arguments either to the class or to the lookup method: + +.. sourcecode:: python + + from pygments import highlight + from pygments.lexers import get_lexer_by_name + from pygments.formatters import HtmlFormatter + + lexer = get_lexer_by_name("python", stripall=True) + formatter = HtmlFormatter(linenos=True, cssclass="source") + result = highlight(code, lexer, formatter) + +This makes the lexer strip all leading and trailing whitespace from the input +(`stripall` option), lets the formatter output line numbers (`linenos` option), +and sets the wrapping ``
``'s class to ``source`` (instead of +``highlight``). + +Important options include: + +`encoding` : for lexers and formatters + Since Pygments uses Unicode strings internally, this determines which + encoding will be used to convert to or from byte strings. +`style` : for formatters + The name of the style to use when writing the output. + + +For an overview of builtin lexers and formatters and their options, visit the +`lexer `_ and `formatters `_ lists. + +For a documentation on filters, see `this page `_. + + +Lexer and formatter lookup +========================== + +If you want to lookup a built-in lexer by its alias or a filename, you can use +one of the following methods: + +.. sourcecode:: pycon + + >>> from pygments.lexers import (get_lexer_by_name, + ... get_lexer_for_filename, get_lexer_for_mimetype) + + >>> get_lexer_by_name('python') + + + >>> get_lexer_for_filename('spam.rb') + + + >>> get_lexer_for_mimetype('text/x-perl') + + +All these functions accept keyword arguments; they will be passed to the lexer +as options. + +A similar API is available for formatters: use `get_formatter_by_name()` and +`get_formatter_for_filename()` from the `pygments.formatters` module +for this purpose. + + +Guessing lexers +=============== + +If you don't know the content of the file, or you want to highlight a file +whose extension is ambiguous, such as ``.html`` (which could contain plain HTML +or some template tags), use these functions: + +.. sourcecode:: pycon + + >>> from pygments.lexers import guess_lexer, guess_lexer_for_filename + + >>> guess_lexer('#!/usr/bin/python\nprint "Hello World!"') + + + >>> guess_lexer_for_filename('test.py', 'print "Hello World!"') + + +`guess_lexer()` passes the given content to the lexer classes' `analyze_text()` +method and returns the one for which it returns the highest number. + +All lexers have two different filename pattern lists: the primary and the +secondary one. The `get_lexer_for_filename()` function only uses the primary +list, whose entries are supposed to be unique among all lexers. +`guess_lexer_for_filename()`, however, will first loop through all lexers and +look at the primary and secondary filename patterns if the filename matches. +If only one lexer matches, it is returned, else the guessing mechanism of +`guess_lexer()` is used with the matching lexers. + +As usual, keyword arguments to these functions are given to the created lexer +as options. + + +Command line usage +================== + +You can use Pygments from the command line, using the `pygmentize` script:: + + $ pygmentize test.py + +will highlight the Python file test.py using ANSI escape sequences +(a.k.a. terminal colors) and print the result to standard output. + +To output HTML, use the ``-f`` option:: + + $ pygmentize -f html -o test.html test.py + +to write an HTML-highlighted version of test.py to the file test.html. + +The stylesheet can be created with:: + + $ pygmentize -S default -f html > style.css + +More options and tricks and be found in the `command line referene `_. Added: external/Pygments-0.9/docs/src/rstdirective.txt ============================================================================== --- (empty file) +++ external/Pygments-0.9/docs/src/rstdirective.txt Tue Oct 23 20:20:22 2007 @@ -0,0 +1,22 @@ +.. -*- mode: rst -*- + +================================ +Using Pygments in ReST documents +================================ + +Many Python people use `ReST`_ for documentation their sourcecode, programs, +scripts et cetera. This also means that documentation often includes sourcecode +samples or snippets. + +You can easily enable Pygments support for your ReST texts using a custom +directive -- this is also how this documentation displays source code. + +From Pygments 0.9, the directive is shipped in the distribution as +`external/rst-directive.py`. You can copy and adapt this code to your liking. + + +*Loosely related note:* The ReST lexer now recognizes ``.. sourcecode::`` and +``.. code::`` directives and highlights the contents in the specified language +if the `handlecodeblocks` option is true. + +.. _ReST: http://docutils.sf.net/rst.html Added: external/Pygments-0.9/docs/src/styles.txt ============================================================================== --- (empty file) +++ external/Pygments-0.9/docs/src/styles.txt Tue Oct 23 20:20:22 2007 @@ -0,0 +1,143 @@ +.. -*- mode: rst -*- + +====== +Styles +====== + +Pygments comes with some builtin styles that work for both the HTML and +LaTeX formatter. + +The builtin styles can be looked up with the `get_style_by_name` function: + +.. sourcecode:: pycon + + >>> from pygments.styles import get_style_by_name + >>> get_style_by_name('colorful') + + +You can pass a instance of a `Style` class to a formatter as the `style` +option in form of a string: + +.. sourcecode:: pycon + + >>> from pygments.styles import get_style_by_name + >>> HtmlFormatter(style='colorful').style + + +Or you can also import your own style (which must be a subclass of +`pygments.style.Style`) and pass it to the formatter: + +.. sourcecode:: pycon + + >>> from yourapp.yourmodule import YourStyle + >>> HtmlFormatter(style=YourStyle).style + + + +Creating Own Styles +=================== + +So, how to create a style? All you have to do is to subclass `Style` and +define some styles: + +.. sourcecode:: python + + from pygments.style import Style + from pygments.token import Keyword, Name, Comment, String, Error, \ + Number, Operator, Generic + + class YourStyle(Style): + default_style = "" + styles = { + Comment: 'italic #888', + Keyword: 'bold #005', + Name: '#f00', + Name.Function: '#0f0', + Name.Class: 'bold #0f0', + String: 'bg:#eee #111' + } + +That's it. There are just a few rules. When you define a style for `Name` +the style automatically also affects `Name.Function` and so on. If you +defined ``'bold'`` and you don't want boldface for a subtoken use ``'nobold'``. + +(Philosophy: the styles aren't written in CSS syntax since this way +they can be used for a variety of formatters.) + +`default_style` is the style inherited by all token types. + +To make the style usable for Pygments, you must + +* either register it as a plugin (see `the plugin docs `_) +* or drop it into the `styles` subpackage of your Pygments distribution one style + class per style, where the file name is the style name and the class name is + `StylenameClass`. For example, if your style should be called + ``"mondrian"``, name the class `MondrianStyle`, put it into the file + ``mondrian.py`` and this file into the ``pygments.styles`` subpackage + directory. + + +Style Rules +=========== + +Here a small overview of all allowed styles: + +``bold`` + render text as bold +``nobold`` + don't render text as bold (to prevent subtokens behing highlighted bold) +``italic`` + render text italic +``noitalic`` + don't render text as italic +``underline`` + render text underlined +``nounderline`` + don't render text underlined +``bg:`` + transparent background +``bg:#000000`` + background color (black) +``border:`` + no border +``border:#ffffff`` + border color (white) +``#ff0000`` + text color (red) +``noinherit`` + don't inherit styles from supertoken + +Note that there may not be a space between ``bg:`` and the color value +since the style definition string is split at whitespace. +Also, using named colors is not allowed since the supported color names +vary for different formatters. + +Furthermore, not all lexers might support every style. + + +Builtin Styles +============== + +Pygments ships some builtin styles which are maintained by the Pygments team. + +To get a list of known styles you can use this snippet: + +.. sourcecode:: pycon + + >>> from pygments.styles import STYLE_MAP + >>> STYLE_MAP.keys() + ['default', 'emacs', 'friendly', 'colorful'] + + +Getting a list of available styles +================================== + +*New in Pygments 0.6.* + +Because it could be that a plugin registered a style, there is +a way to iterate over all styles: + +.. sourcecode:: pycon + + >>> from pygments.styles import get_all_styles + >>> styles = list(get_all_styles()) Added: external/Pygments-0.9/docs/src/tokens.txt ============================================================================== --- (empty file) +++ external/Pygments-0.9/docs/src/tokens.txt Tue Oct 23 20:20:22 2007 @@ -0,0 +1,345 @@ +.. -*- mode: rst -*- + +============== +Builtin Tokens +============== + +Inside the `pygments.token` module, there is a special object called `Token` +that is used to create token types. + +You can create a new token type by accessing an attribute of `Token`: + +.. sourcecode:: pycon + + >>> from pygments.token import Token + >>> Token.String + Token.String + >>> Token.String is Token.String + True + +Note that tokens are singletons so you can use the ``is`` operator for comparing +token types. + +As of Pygments 0.7 you can also use the ``in`` operator to perform set tests: + +.. sourcecode:: pycon + + >>> from pygments.token import Comment + >>> Comment.Single in Comment + True + >>> Comment in Comment.Multi + False + +This can be useful in `filters`_ and if you write lexers on your own without +using the base lexers. + +You can also split a token type into a hierarchy, and get the parent of it: + +.. sourcecode:: pycon + + >>> String.split() + [Token, Token.Literal, Token.Literal.String] + >>> String.parent + Token.Literal + +In principle, you can create an unlimited number of token types but nobody can +guarantee that a style would define style rules for a token type. Because of +that, Pygments proposes some global token types defined in the +`pygments.token.STANDARD_TYPES` dict. + +For some tokens aliases are already defined: + +.. sourcecode:: pycon + + >>> from pygments.token import String + >>> String + Token.Literal.String + +Inside the `pygments.token` module the following aliases are defined: + +============= ============================ ==================================== +`Text` `Token.Text` for any type of text data +`Whitespace` `Token.Text.Whitespace` for specially highlighted whitespace +`Error` `Token.Error` represents lexer errors +`Other` `Token.Other` special token for data not + matched by a parser (e.g. HTML + markup in PHP code) +`Keyword` `Token.Keyword` any kind of keywords +`Name` `Token.Name` variable/function names +`Literal` `Token.Literal` Any literals +`String` `Token.Literal.String` string literals +`Number` `Token.Literal.Number` number literals +`Operator` `Token.Operator` operators (``+``, ``not``...) +`Punctuation` `Token.Punctuation` punctuation (``[``, ``(``...) +`Comment` `Token.Comment` any kind of comments +`Generic` `Token.Generic` generic tokens (have a look at + the explanation below) +============= ============================ ==================================== + +The `Whitespace` token type is new in Pygments 0.8. It is used only by the +`VisibleWhitespaceFilter` currently. + +Normally you just create token types using the already defined aliases. For each +of those token aliases, a number of subtypes exists (excluding the special tokens +`Token.Text`, `Token.Error` and `Token.Other`) + +The `is_token_subtype()` function in the `pygments.token` module can be used to +test if a token type is a subtype of another (such as `Name.Tag` and `Name`). +(This is the same as ``Name.Tag in Name``. The overloaded `in` operator was newly +introduced in Pygments 0.7, the function still exists for backwards +compatiblity.) + +With Pygments 0.7, it's also possible to convert strings to token types (for example +if you want to supply a token from the command line): + +.. sourcecode:: pycon + + >>> from pygments.token import String, string_to_tokentype + >>> string_to_tokentype("String") + Token.Literal.String + >>> string_to_tokentype("Token.Literal.String") + Token.Literal.String + >>> string_to_tokentype(String) + Token.Literal.String + + +Keyword Tokens +============== + +`Keyword` + For any kind of keyword (especially if it doesn't match any of the + subtypes of course). + +`Keyword.Constant` + For keywords that are constants (e.g. ``None`` in future Python versions). + +`Keyword.Declaration` + For keywords used for variable declaration (e.g. ``var`` in some programming + languages like JavaScript). + +`Keyword.Pseudo` + For keywords that aren't really keywords (e.g. ``None`` in old Python + versions). + +`Keyword.Reserved` + For reserved keywords. + +`Keyword.Type` + For builtin types that can't be used as identifiers (e.g. ``int``, + ``char`` etc. in C). + + +Name Tokens +=========== + +`Name` + For any name (variable names, function names, classes). + +`Name.Attribute` + For all attributes (e.g. in HTML tags). + +`Name.Builtin` + Builtin names; names that are available in the global namespace. + +`Name.Builtin.Pseudo` + Builtin names that are implicit (e.g. ``self`` in Ruby, ``this`` in Java). + +`Name.Class` + Class names. Because no lexer can know if a name is a class or a function + or something else this token is meant for class declarations. + +`Name.Constant` + Token type for constants. In some languages you can recognise a token by the + way it's defined (the value after a ``const`` keyword for example). In + other languages constants are uppercase by definition (Ruby). + +`Name.Decorator` + Token type for decorators. Decorators are synatic elements in the Python + language. Similar syntax elements exist in C# and Java. + +`Name.Entity` + Token type for special entities. (e.g. `` `` in HTML). + +`Name.Exception` + Token type for exception names (e.g. ``RuntimeError`` in Python). Some languages + define exceptions in the function signature (Java). You can highlight + the name of that exception using this token then. + +`Name.Function` + Token type for function names. + +`Name.Label` + Token type for label names (e.g. in languages that support ``goto``). + +`Name.Namespace` + Token type for namespaces. (e.g. import paths in Java/Python), names following + the ``module``/``namespace`` keyword in other languages. + +`Name.Other` + Other names. Normally unused. + +`Name.Tag` + Tag names (in HTML/XML markup or configuration files). + +`Name.Variable` + Token type for variables. Some languages have prefixes for variable names + (PHP, Ruby, Perl). You can highlight them using this token. + +`Name.Variable.Class` + same as `Name.Variable` but for class variables (also static variables). + +`Name.Variable.Global` + same as `Name.Variable` but for global variables (used in Ruby, for + example). + +`Name.Variable.Instance` + same as `Name.Variable` but for instance variables. + + +Literals +======== + +`Literal` + For any literal (if not further defined). + +`Literal.Date` + for date literals (e.g. ``42d`` in Boo). + + +`String` + For any string literal. + +`String.Backtick` + Token type for strings enclosed in backticks. + +`String.Char` + Token type for single characters (e.g. Java, C). + +`String.Doc` + Token type for documentation strings (for example Python). + +`String.Double` + Double quoted strings. + +`String.Escape` + Token type for escape sequences in strings. + +`String.Heredoc` + Token type for "heredoc" strings (e.g. in Ruby or Perl). + +`String.Interpol` + Token type for interpolated parts in strings (e.g. ``#{foo}`` in Ruby). + +`String.Other` + Token type for any other strings (for example ``%q{foo}`` string constructs + in Ruby). + +`String.Regex` + Token type for regular expression literals (e.g. ``/foo/`` in JavaScript). + +`String.Single` + Token type for single quoted strings. + +`String.Symbol` + Token type for symbols (e.g. ``:foo`` in LISP or Ruby). + + +`Number` + Token type for any number literal. + +`Number.Float` + Token type for float literals (e.g. ``42.0``). + +`Number.Hex` + Token type for hexadecimal number literals (e.g. ``0xdeadbeef``). + +`Number.Integer` + Token type for integer literals (e.g. ``42``). + +`Number.Integer.Long` + Token type for long integer literals (e.g. ``42L`` in Python). + +`Number.Oct` + Token type for octal literals. + + +Operators +========= + +`Operator` + For any punctuation operator (e.g. ``+``, ``-``). + +`Operator.Word` + For any operator that is a word (e.g. ``not``). + + +Punctuation +=========== + +*New in Pygments 0.7.* + +`Punctuation` + For any punctuation which is not an operator (e.g. ``[``, ``(``...) + + +Comments +======== + +`Comment` + Token type for any comment. + +`Comment.Multiline` + Token type for multiline comments. + +`Comment.Preproc` + Token type for preprocessor comments (also ```_. + +*New in Pygments 0.7*: the formatters now also accept an `outencoding` option +which will override the `encoding` option if given. This makes it possible to +use a single options dict with lexers and formatters, and still have different +input and output encodings. + +.. _chardet: http://chardet.feedparser.org/ Added: external/Pygments-0.9/external/markdown-processor.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/external/markdown-processor.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +""" + The Pygments Markdown Preprocessor + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + This fragment is a Markdown_ preprocessor that renders source code + to HTML via Pygments. To use it, invoke Markdown like so:: + + from markdown import Markdown + + md = Markdown() + md.preprocessors.insert(0, CodeBlockPreprocessor()) + markdown = md.__str__ + + markdown is then a callable that can be passed to the context of + a template and used in that template, for example. + + This uses CSS classes by default, so use + ``pygmentize -S -f html > pygments.css`` + to create a stylesheet to be added to the website. + + You can then highlight source code in your markdown markup:: + + [sourcecode:lexer] + some code + [/sourcecode] + + .. _Markdown: http://www.freewisdom.org/projects/python-markdown/ + + :copyright: 2007 by Jochen Kupperschmidt. + :license: BSD, see LICENSE for more details. +""" + +# Options +# ~~~~~~~ + +# Set to True if you want inline CSS styles instead of classes +INLINESTYLES = False + + +import re + +from markdown import Preprocessor + +from pygments import highlight +from pygments.formatters import HtmlFormatter +from pygments.lexers import get_lexer_by_name, TextLexer + + +class CodeBlockPreprocessor(Preprocessor): + + pattern = re.compile( + r'\[sourcecode:(.+?)\](.+?)\[/sourcecode\]', re.S) + + formatter = HtmlFormatter(noclasses=INLINESTYLES) + + def run(self, lines): + def repl(m): + try: + lexer = get_lexer_by_name(m.group(1)) + except ValueError: + lexer = TextLexer() + code = highlight(m.group(2), lexer, formatter) + code = code.replace('\n\n', '\n \n') + return '\n\n
%s
\n\n' % code + return self.pattern.sub( + repl, '\n'.join(lines)).split('\n') Added: external/Pygments-0.9/external/moin-parser.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/external/moin-parser.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +""" + The Pygments MoinMoin Parser + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + This is a MoinMoin parser plugin that renders source code to HTML via + Pygments; you need Pygments 0.7 or newer for this parser to work. + + To use it, set the options below to match your setup and put this file in + the data/plugin/parser subdirectory of your Moin instance, and give it the + name that the parser directive should have. For example, if you name the + file ``code.py``, you can get a highlighted Python code sample with this + Wiki markup:: + + {{{ + #!code python + [...] + }}} + + Additionally, if you set ATTACHMENTS below to True, Pygments will also be + called for all attachments for whose filenames there is no other parser + registered. + + You are responsible for including CSS rules that will map the Pygments CSS + classes to colors. You can output a stylesheet file with `pygmentize`, put + it into the `htdocs` directory of your Moin instance and then include it in + the `stylesheets` configuration option in the Moin config, e.g.:: + + stylesheets = [('screen', '/htdocs/pygments.css')] + + If you do not want to do that and are willing to accept larger HTML + output, you can set the INLINESTYLES option below to True. + + :copyright: 2007 by Georg Brandl. + :license: BSD, see LICENSE for more details. +""" + +# Options +# ~~~~~~~ + +# Set to True if you want to highlight attachments, in addition to +# {{{ }}} blocks. +ATTACHMENTS = True + +# Set to True if you want inline CSS styles instead of classes +INLINESTYLES = False + + +import sys + +from pygments import highlight +from pygments.lexers import get_lexer_by_name, get_lexer_for_filename, TextLexer +from pygments.formatters import HtmlFormatter +from pygments.util import ClassNotFound + + +# wrap lines in s so that the Moin-generated line numbers work +class MoinHtmlFormatter(HtmlFormatter): + def wrap(self, source, outfile): + for line in source: + yield 1, '' + line[1] + '' + +htmlformatter = MoinHtmlFormatter(noclasses=INLINESTYLES) +textlexer = TextLexer() +codeid = [0] + + +class Parser: + """ + MoinMoin Pygments parser. + """ + if ATTACHMENTS: + extensions = '*' + else: + extensions = [] + + Dependencies = [] + + def __init__(self, raw, request, **kw): + self.raw = raw + self.req = request + if "format_args" in kw: + # called from a {{{ }}} block + try: + self.lexer = get_lexer_by_name(kw['format_args'].strip()) + except ClassNotFound: + self.lexer = textlexer + return + if "filename" in kw: + # called for an attachment + filename = kw['filename'] + else: + # called for an attachment by an older moin + # HACK: find out the filename by peeking into the execution + # frame which might not always work + try: + frame = sys._getframe(1) + filename = frame.f_locals['filename'] + except: + filename = 'x.txt' + try: + self.lexer = get_lexer_for_filename(filename) + except ClassNotFound: + self.lexer = textlexer + + def format(self, formatter): + codeid[0] += 1 + id = "pygments_%s" % codeid[0] + w = self.req.write + w(formatter.code_area(1, id, start=1, step=1)) + w(formatter.rawHTML(highlight(self.raw, self.lexer, htmlformatter))) + w(formatter.code_area(0, id)) Added: external/Pygments-0.9/external/rst-directive.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/external/rst-directive.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +""" + The Pygments MoinMoin Parser + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + This fragment is a Docutils_ 0.4 directive that renders source code + (to HTML only, currently) via Pygments. + + To use it, adjust the options below and copy the code into a module + that you import on initialization. The code then automatically + registers a ``sourcecode`` directive that you can use instead of + normal code blocks like this:: + + .. sourcecode:: python + + My code goes here. + + If you want to have different code styles, e.g. one with line numbers + and one without, add formatters with their names in the VARIANTS dict + below. You can invoke them instead of the DEFAULT one by using a + directive option:: + + .. sourcecode:: python + :linenos: + + My code goes here. + + Look at the `directive documentation`_ to get all the gory details. + + .. _Docutils: http://docutils.sf.net/ + .. _directive documentation: + http://docutils.sourceforge.net/docs/howto/rst-directives.html + + :copyright: 2007 by Georg Brandl. + :license: BSD, see LICENSE for more details. +""" + +# Options +# ~~~~~~~ + +# Set to True if you want inline CSS styles instead of classes +INLINESTYLES = False + +from pygments.formatters import HtmlFormatter + +# The default formatter +DEFAULT = HtmlFormatter(noclasses=INLINESTYLES) + +# Add name -> formatter pairs for every variant you want to use +VARIANTS = { + # 'linenos': HtmlFormatter(noclasses=INLINESTYLES, linenos=True), +} + + +from docutils import nodes +from docutils.parsers.rst import directives + +from pygments import highlight +from pygments.lexers import get_lexer_by_name, TextLexer + +def pygments_directive(name, arguments, options, content, lineno, + content_offset, block_text, state, state_machine): + try: + lexer = get_lexer_by_name(arguments[0]) + except ValueError: + # no lexer found - use the text one instead of an exception + lexer = TextLexer() + # take an arbitrary option if more than one is given + formatter = options and VARIANTS[options.keys()[0]] or DEFAULT + parsed = highlight(u'\n'.join(content), lexer, formatter) + return [nodes.raw('', parsed, format='html')] + +pygments_directive.arguments = (1, 0, 1) +pygments_directive.content = 1 +pygments_directive.options = dict([(key, directives.flag) for key in VARIANTS]) + +directives.register_directive('sourcecode', pygments_directive) Added: external/Pygments-0.9/ez_setup.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/ez_setup.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,217 @@ +#!python +"""Bootstrap setuptools installation + +If you want to use setuptools in your package's setup.py, just include this +file in the same directory with it, and add this to the top of your setup.py:: + + from ez_setup import use_setuptools + use_setuptools() + +If you want to require a specific version of setuptools, set a download +mirror, or use an alternate download directory, you can do so by supplying +the appropriate options to ``use_setuptools()``. + +This file can also be run as a script to install or upgrade setuptools. +""" +import sys +DEFAULT_VERSION = "0.6c3" +DEFAULT_URL = "http://cheeseshop.python.org/packages/%s/s/setuptools/" % \ + sys.version[:3] + +md5_data = { + 'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca', + 'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb', + 'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b', + 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a', + 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618', + 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac', + 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5', + 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', + 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', + 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', + 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', + 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', + 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', + 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e', + 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e', +} + +import sys, os + +def _validate_md5(egg_name, data): + if egg_name in md5_data: + from md5 import md5 + digest = md5(data).hexdigest() + if digest != md5_data[egg_name]: + print >>sys.stderr, ( + "md5 validation of %s failed! (Possible download problem?)" + % egg_name + ) + sys.exit(2) + return data + + +def use_setuptools( + version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, + download_delay=15 +): + """Automatically find/download setuptools and make it available on sys.path + + `version` should be a valid setuptools version number that is available + as an egg for download under the `download_base` URL (which should end with + a '/'). `to_dir` is the directory where setuptools will be downloaded, if + it is not already available. If `download_delay` is specified, it should + be the number of seconds that will be paused before initiating a download, + should one be required. If an older version of setuptools is installed, + this routine will print a message to ``sys.stderr`` and raise SystemExit in + an attempt to abort the calling script. + """ + try: + import setuptools + if setuptools.__version__ == '0.0.1': + print >>sys.stderr, ( + "You have an obsolete version of setuptools installed. Please\n" + "remove it from your system entirely before rerunning this script." + ) + sys.exit(2) + except ImportError: + egg = download_setuptools(version, download_base, to_dir, download_delay) + sys.path.insert(0, egg) + import setuptools; setuptools.bootstrap_install_from = egg + + import pkg_resources + try: + pkg_resources.require("setuptools>="+version) + + except pkg_resources.VersionConflict, e: + print >>sys.stderr, ( + "The required version of setuptools (>=%s) is not available, and\n" + "can't be installed while this script is running. Please install\n" + " a more recent version first.\n\n(Currently using %r)" + ) % (version, e.args[0]) + sys.exit(2) + +def download_setuptools( + version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, + delay = 15 +): + """Download setuptools from a specified location and return its filename + + `version` should be a valid setuptools version number that is available + as an egg for download under the `download_base` URL (which should end + with a '/'). `to_dir` is the directory where the egg will be downloaded. + `delay` is the number of seconds to pause before an actual download attempt. + """ + import urllib2, shutil + egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3]) + url = download_base + egg_name + saveto = os.path.join(to_dir, egg_name) + src = dst = None + if not os.path.exists(saveto): # Avoid repeated downloads + try: + from distutils import log + if delay: + log.warn(""" +--------------------------------------------------------------------------- +This script requires setuptools version %s to run (even to display +help). I will attempt to download it for you (from +%s), but +you may need to enable firewall access for this script first. +I will start the download in %d seconds. + +(Note: if this machine does not have network access, please obtain the file + + %s + +and place it in this directory before rerunning this script.) +---------------------------------------------------------------------------""", + version, download_base, delay, url + ); from time import sleep; sleep(delay) + log.warn("Downloading %s", url) + src = urllib2.urlopen(url) + # Read/write all in one block, so we don't create a corrupt file + # if the download is interrupted. + data = _validate_md5(egg_name, src.read()) + dst = open(saveto,"wb"); dst.write(data) + finally: + if src: src.close() + if dst: dst.close() + return os.path.realpath(saveto) + +def main(argv, version=DEFAULT_VERSION): + """Install or upgrade setuptools and EasyInstall""" + + try: + import setuptools + except ImportError: + egg = None + try: + egg = download_setuptools(version, delay=0) + sys.path.insert(0,egg) + from setuptools.command.easy_install import main + return main(list(argv)+[egg]) # we're done here + finally: + if egg and os.path.exists(egg): + os.unlink(egg) + else: + if setuptools.__version__ == '0.0.1': + # tell the user to uninstall obsolete version + use_setuptools(version) + + req = "setuptools>="+version + import pkg_resources + try: + pkg_resources.require(req) + except pkg_resources.VersionConflict: + try: + from setuptools.command.easy_install import main + except ImportError: + from easy_install import main + main(list(argv)+[download_setuptools(delay=0)]) + sys.exit(0) # try to force an exit + else: + if argv: + from setuptools.command.easy_install import main + main(argv) + else: + print "Setuptools version",version,"or greater has been installed." + print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)' + + + +def update_md5(filenames): + """Update our built-in md5 registry""" + + import re + from md5 import md5 + + for name in filenames: + base = os.path.basename(name) + f = open(name,'rb') + md5_data[base] = md5(f.read()).hexdigest() + f.close() + + data = [" %r: %r,\n" % it for it in md5_data.items()] + data.sort() + repl = "".join(data) + + import inspect + srcfile = inspect.getsourcefile(sys.modules[__name__]) + f = open(srcfile, 'rb'); src = f.read(); f.close() + + match = re.search("\nmd5_data = {\n([^}]+)}", src) + if not match: + print >>sys.stderr, "Internal error!" + sys.exit(2) + + src = src[:match.start(1)] + repl + src[match.end(1):] + f = open(srcfile,'w') + f.write(src) + f.close() + + +if __name__=='__main__': + if len(sys.argv)>2 and sys.argv[1]=='--md5update': + update_md5(sys.argv[2:]) + else: + main(sys.argv[1:]) Added: external/Pygments-0.9/pygmentize ============================================================================== --- (empty file) +++ external/Pygments-0.9/pygmentize Tue Oct 23 20:20:22 2007 @@ -0,0 +1,4 @@ +#!/usr/bin/env python + +import sys, pygments.cmdline +sys.exit(pygments.cmdline.main(sys.argv)) Added: external/Pygments-0.9/pygments/__init__.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/pygments/__init__.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +""" + Pygments + ~~~~~~~~ + + Pygments is a syntax highlighting package written in Python. + + It is a generic syntax highlighter for general use in all kinds of software + such as forum systems, wikis or other applications that need to prettify + source code. Highlights are: + + * a wide range of common languages and markup formats is supported + * special attention is paid to details, increasing quality by a fair amount + * support for new languages and formats are added easily + * a number of output formats, presently HTML, LaTeX, RTF, SVG and ANSI sequences + * it is usable as a command-line tool and as a library + * ... and it highlights even Brainfuck! + + :copyright: 2006-2007 by Georg Brandl, Armin Ronacher and others. + :license: BSD, see LICENSE for more details. +""" + +__version__ = '0.9' +__author__ = 'Georg Brandl ' +__url__ = 'http://pygments.org/' +__license__ = 'BSD License' +__docformat__ = 'restructuredtext' + +__all__ = ['lex', 'format', 'highlight'] + + +import sys, os +from StringIO import StringIO +from cStringIO import StringIO as CStringIO + + +def lex(code, lexer): + """ + Lex ``code`` with ``lexer`` and return an iterable of tokens. + """ + try: + return lexer.get_tokens(code) + except TypeError, err: + if isinstance(err.args[0], str) and \ + 'unbound method get_tokens' in err.args[0]: + raise TypeError('lex() argument must be a lexer instance, ' + 'not a class') + raise + + +def format(tokens, formatter, outfile=None): + """ + Format a tokenlist ``tokens`` with the formatter ``formatter``. + + If ``outfile`` is given and a valid file object (an object + with a ``write`` method), the result will be written to it, otherwise + it is returned as a string. + """ + try: + if not outfile: + # if we want Unicode output, we have to use Python StringIO + realoutfile = formatter.encoding and CStringIO() or StringIO() + formatter.format(tokens, realoutfile) + return realoutfile.getvalue() + else: + formatter.format(tokens, outfile) + except TypeError, err: + if isinstance(err.args[0], str) and \ + 'unbound method format' in err.args[0]: + raise TypeError('format() argument must be a formatter instance, ' + 'not a class') + raise + + +def highlight(code, lexer, formatter, outfile=None): + """ + Lex ``code`` with ``lexer`` and format it with the formatter + ``formatter``. If ``filters`` are given they will be applied + on the token stream. + + If ``outfile`` is given and a valid file object (an object + with a ``write`` method), the result will be written to it, otherwise + it is returned as a string. + """ + return format(lex(code, lexer), formatter, outfile) + + +if __name__ == '__main__': + from pygments.cmdline import main + sys.exit(main(sys.argv)) Added: external/Pygments-0.9/pygments/cmdline.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/pygments/cmdline.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,384 @@ +# -*- coding: utf-8 -*- +""" + pygments.cmdline + ~~~~~~~~~~~~~~~~ + + Command line interface. + + :copyright: 2006-2007 by Georg Brandl. + :license: BSD, see LICENSE for more details. +""" +import sys +import getopt +from textwrap import dedent + +from pygments import __version__, __author__, highlight +from pygments.util import ClassNotFound, OptionError, docstring_headline +from pygments.lexers import get_all_lexers, get_lexer_by_name, get_lexer_for_filename, \ + find_lexer_class +from pygments.formatters import get_all_formatters, get_formatter_by_name, \ + get_formatter_for_filename, find_formatter_class, \ + TerminalFormatter # pylint:disable-msg=E0611 +from pygments.filters import get_all_filters, find_filter_class +from pygments.styles import get_all_styles, get_style_by_name + + +USAGE = """\ +Usage: %s [-l ] [-F [:]] [-f ] + [-O ] [-P ] [-o ] [] + + %s -S + + +

%(title)s

+ +''' + +DOC_HEADER_EXTERNALCSS = '''\ + + + + + %(title)s + + + + +

%(title)s

+ +''' + +DOC_FOOTER = '''\ + + +''' + + +class HtmlFormatter(Formatter): + r""" + Format tokens as HTML 4 ```` tags within a ``
`` tag, wrapped
+    in a ``
`` tag. The ``
``'s CSS class can be set by the `cssclass` + option. + + If the `linenos` option is set to ``"table"``, the ``
`` is
+    additionally wrapped inside a ```` which has one row and two
+    cells: one containing the line numbers and one containing the code.
+    Example:
+
+    .. sourcecode:: html
+
+        
+
+ + +
+
1
+            2
+
+
def foo(bar):
+              pass
+            
+
+ + (whitespace added to improve clarity). + + Wrapping can be disabled using the `nowrap` option. + + With the `full` option, a complete HTML 4 document is output, including + the style definitions inside a `` + + +

Code tags report for %s

+ + +%s +
LineTagWhoDescription
+ + +''' + + TABLE = '\nFile: %s\n' + + TR = ('%%(lno)d' + '%%(tag)s' + '%%(who)s%%(what)s') + + f = file(output, 'w') + table = '\n'.join(TABLE % fname + + '\n'.join(TR % (no % 2,) % entry + for no, entry in enumerate(store[fname])) + for fname in sorted(store)) + f.write(HTML % (', '.join(map(abspath, args)), table)) + f.close() + + print "Report written to %s." % output + return 0 + +if __name__ == '__main__': + sys.exit(main()) Added: external/Pygments-0.9/scripts/find_error.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/scripts/find_error.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,51 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +""" + Lexing error finder + ~~~~~~~~~~~~~~~~~~~ + + For the source files given on the command line, display + the text where Error tokens are being generated, along + with some context. + + :copyright: 2006-2007 by Tim Hatch . + :license: BSD, see LICENSE for more details. +""" + +import sys, os + +try: + import pygments +except ImportError: + # try parent path + sys.path.append(os.path.join(os.path.dirname(__file__), "..")) + +from pygments import highlight +from pygments.lexers import get_lexer_for_filename, get_lexer_by_name +from pygments.token import Error + +def main(fn): + try: + lx = get_lexer_for_filename(fn) + except ValueError: + try: + name, rest = fn.split("_", 1) + lx = get_lexer_by_name(name) + except ValueError: + raise AssertionError('no lexer found for file %r' % fn) + text = file(fn, 'U').read() + text = text.strip('\n') + '\n' + text = text.decode('latin1') + ntext = [] + for type, val in lx.get_tokens(text): + if type == Error: + print "Error parsing", fn + print "\n".join([' ' + repr(x) for x in ntext[-5:]]) + print `val` + "<<<" + return + ntext.append((type,val)) + + +if __name__ == "__main__": + for f in sys.argv[1:]: + main(f) Added: external/Pygments-0.9/scripts/fix_epydoc_markup.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/scripts/fix_epydoc_markup.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,46 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" + fix_epydoc_tables + ~~~~~~~~~~~~~~~~~ + + Fix epydoc "summary" tables. + + :copyright: 2006-2007 by Georg Brandl. + :license: GNU GPL, see LICENSE for more details. +""" + +import sys, os +from os.path import join + +path = sys.argv[1] + +for fn in os.listdir(path): + fn = join(path, fn) + if not fn.endswith(".html"): + continue + + ll = list(file(fn)) + c = False + d = False + n = False + + for i, l in enumerate(ll): + if " + + + + ... + + + ... + + +--> + + + +%HTML4.dtd; \ No newline at end of file Added: external/Pygments-0.9/tests/dtds/HTML4-s.dtd ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/dtds/HTML4-s.dtd Tue Oct 23 20:20:22 2007 @@ -0,0 +1,869 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%HTMLlat1; + + +%HTMLsymbol; + + +%HTMLspecial; + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: external/Pygments-0.9/tests/dtds/HTML4.dcl ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/dtds/HTML4.dcl Tue Oct 23 20:20:22 2007 @@ -0,0 +1,88 @@ + \ No newline at end of file Added: external/Pygments-0.9/tests/dtds/HTML4.dtd ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/dtds/HTML4.dtd Tue Oct 23 20:20:22 2007 @@ -0,0 +1,1092 @@ + + + + + ... + + + ... + + + + The URI used as a system identifier with the public identifier allows + the user agent to download the DTD and entity sets as needed. + + The FPI for the Strict HTML 4.0 DTD is: + + "-//W3C//DTD HTML 4.0//EN" + + and its URI is: + + http://www.w3.org/TR/REC-html40/strict.dtd + + Authors should use the Strict DTD unless they need the + presentation control for user agents that don't (adequately) + support style sheets. + + If you are writing a document that includes frames, use + the following FPI: + + "-//W3C//DTD HTML 4.0 Frameset//EN" + + with the URI: + + http://www.w3.org/TR/REC-html40/frameset.dtd + + The following URIs are supported in relation to HTML 4.0 + + "http://www.w3.org/TR/REC-html40/strict.dtd" (Strict DTD) + "http://www.w3.org/TR/REC-html40/loose.dtd" (Loose DTD) + "http://www.w3.org/TR/REC-html40/frameset.dtd" (Frameset DTD) + "http://www.w3.org/TR/REC-html40/HTMLlat1.ent" (Latin-1 entities) + "http://www.w3.org/TR/REC-html40/HTMLsymbol.ent" (Symbol entities) + "http://www.w3.org/TR/REC-html40/HTMLspecial.ent" (Special entities) + + These URIs point to the latest version of each file. To reference + this specific revision use the following URIs: + + "http://www.w3.org/TR/REC-html40-971218/strict.dtd" + "http://www.w3.org/TR/REC-html40-971218/loose.dtd" + "http://www.w3.org/TR/REC-html40-971218/frameset.dtd" + "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent" + "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent" + "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent" + +--> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%HTMLlat1; + + +%HTMLsymbol; + + +%HTMLspecial; + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + +]]> + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + Added: external/Pygments-0.9/tests/dtds/HTML4.soc ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/dtds/HTML4.soc Tue Oct 23 20:20:22 2007 @@ -0,0 +1,9 @@ +OVERRIDE YES +SGMLDECL HTML4.dcl +DOCTYPE HTML HTML4.dtd +PUBLIC "-//W3C//DTD HTML 4.0//EN" HTML4-s.dtd +PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" HTML4.dtd +PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" HTML4-f.dtd +PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" HTMLlat1.ent +PUBLIC "-//W3C//ENTITIES Special//EN//HTML" HTMLspec.ent +PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" HTMLsym.ent Added: external/Pygments-0.9/tests/dtds/HTMLlat1.ent ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/dtds/HTMLlat1.ent Tue Oct 23 20:20:22 2007 @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Added: external/Pygments-0.9/tests/dtds/HTMLspec.ent ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/dtds/HTMLspec.ent Tue Oct 23 20:20:22 2007 @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Added: external/Pygments-0.9/tests/dtds/HTMLsym.ent ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/dtds/HTMLsym.ent Tue Oct 23 20:20:22 2007 @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Added: external/Pygments-0.9/tests/examplefiles/AlternatingGroup.mu ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/AlternatingGroup.mu Tue Oct 23 20:20:22 2007 @@ -0,0 +1,102 @@ +/*++ $Id: AlternatingGroup.mu,v 1.4 2003/09/08 15:00:47 nthiery Exp $ + +Dom::AlternatingGroup(n) -- the Alternating Group of {1..n} + +n - integer >= 1 + +Elements are represented as in Dom::PermutationGroup(n) + +Author: Nicolas M. Thi?ry +License: LGPL +Created: August 8th, 1999 +Last update: $Date: 2003/09/08 15:00:47 $ +++*/ + +domain Dom::AlternatingGroup(n: Type::PosInt) + inherits Dom::PermutationGroup(n,toBeDefined); + category Cat::PermutationGroup; + axiom Ax::canonicalRep; + +/*-- + size + + Size of the group. +--*/ + + size := fact(n)/2; + +/*-- + generators + + A list of generators of the group + + The first 3-cycle (1,2,3), and a maximal even cycle (1,...,n) or + (2,...,n) depending on the parity of n + +--*/ + + generators := + if n<=2 then generators:=[dom([[1]])]; + elif n=3 then generators:=[dom([[1,2,3]])]; + elif n mod 2=0 then generators:=[dom([[1,2,3]]), dom([[$2..n]])]; + else generators:=[dom([[1,2,3]]), dom([[$1..n]])]; + end_if; + +/*-- + allElements + + List of all the elements of the group +--*/ + + allElements := + proc() + option remember; + local p; + begin + [new(dom,p) $ p in select(combinat::permutations(n), + p->bool(combinat::permutations::sign(p)=1))]; + end_proc; + +/*-- + cycleTypes: + + Count the elements of the group by cycle type. + (Cf Cat::PermutationGroupModule). + + Same algorithm as for Dom::SymmetricGroup, but only even permutations + are considered. This is done by disregarding partitions p such + that n-length(p) is odd. +--*/ + + cycleTypes := + proc() + option remember; + local t, p, gen; + begin + userinfo(3, "cycleTypes: starting computation"); + t:=table(); + + gen := combinat::partitions::generator(n); + while (p:=gen()) <> FAIL do + userinfo(5, "working on partition", p); + if(n-nops(p) mod 2=0) then + // Compute the size of the conjugacy class of Sn indexed by p + // and the cycle type of a permutation in this conjugacy class + t[combinat::partitions::toExp(p,n)] + := combinat::partitions::conjugacyClassSize(p); + end_if; + end_while; + t; + end_proc; + +begin + if testargs() then + if args(0) <> 1 then error("wrong no of args"); end_if; + if not testtype(n,DOM_INT) then + error("argument must be integer") + end_if; + if n < 1 then + error("argument must be positive") + end_if; + end_if; +end_domain: Added: external/Pygments-0.9/tests/examplefiles/DancingSudoku.lhs ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/DancingSudoku.lhs Tue Oct 23 20:20:22 2007 @@ -0,0 +1,411 @@ + A Sukodku solver by Chris Kuklewicz (haskell (at) list (dot) mightyreason (dot) com) + The usual BSD license applies, copyright 2006. + Uploaded to HaskellWiki as DancingSudoku.lhs + + I compile on a powerbook G4 (Mac OS X, ghc 6.4.2) using + ghc -optc-O3 -funbox-strict-fields -O2 --make -fglasgow-exts + + This is a translation of Knuth's GDANCE from dance.w / dance.c + + http://www-cs-faculty.stanford.edu/~uno/preprints.html + http://www-cs-faculty.stanford.edu/~uno/programs.html + http://en.wikipedia.org/wiki/Dancing_Links + + I have an older verison that uses lazy ST to return the solutions on + demand, which was more useful when trying to generate new puzzles to + solve. + +> module Main where + +> import Prelude hiding (read) +> import Control.Monad +> import Control.Monad.Fix +> import Data.Array.IArray +> import Control.Monad.ST.Strict +> import Data.STRef.Strict +> import Data.Char(intToDigit,digitToInt) +> import Data.List(unfoldr,intersperse,inits) + +> new = newSTRef +> {-# INLINE new #-} +> read = readSTRef +> {-# INLINE read #-} +> write = writeSTRef +> {-# INLINE write #-} +> modify = modifySTRef +> {-# INLINE modify #-} + + Data types to prevent mixing different index and value types + +> type A = Int +> newtype R = R A deriving (Show,Read,Eq,Ord,Ix,Enum) +> newtype C = C A deriving (Show,Read,Eq,Ord,Ix,Enum) +> newtype V = V A deriving (Show,Read,Eq,Ord,Ix,Enum) +> newtype B = B A deriving (Show,Read,Eq,Ord,Ix,Enum) + + Sudoku also has block constraints, so we want to look up a block + index in an array: + +> lookupBlock :: Array (R,C) B +> lookupBlock = listArray bb [ toBlock ij | ij <- range bb ] +> where ra :: Array Int B +> ra = listArray (0,pred (rangeSize b)) [B (fst b) .. B (snd b)] +> toBlock (R i,C j) = ra ! ( (div (index b j) 3)+3*(div (index b i) 3) ) + + The values for an unknown location is 'u'. + The bound and range are given by b and rng. And bb is a 2D bound. + +> u = V 0 -- unknown value +> b :: (Int,Int) +> b = (1,9) -- min and max bounds +> rng = enumFromTo (fst b) (snd b) -- list from '1' to '9' +> bb = ((R (fst b),C (fst b)),(R (snd b),C (snd b))) + + A Spec can be turned into a parsed array with ease: + +> type Hint = ((R,C),V) +> newtype Spec = Spec [Hint] deriving (Eq,Show) + +> type PA = Array (R,C) V + +> parse :: Spec -> PA +> parse (Spec parsed) = let acc old new = new +> in accumArray acc u bb parsed + + The dancing links algorithm depends on a sparse 2D node structure. + Each column represents a constraint. Each row represents a Hint. + The number of possible hints is 9x9x9 = 271 + +> type (MutInt st) = (STRef st) Int + + The pointer types: + +> type (NodePtr st) = (STRef st) (Node st) +> type (HeadPtr st) = (STRef st) (Head st) + + The structures is a 2D grid of nodes, with Col's on the top of + columns and a sparse collection of nodes. Note that topNode of Head + is not a strict field. This is because the topNode needs to refer to + the Head, and they are both created monadically. + +> type HeadName = (Int,Int,Int) -- see below for meaning + +> data Head st = Head {headName:: !HeadName +> ,topNode:: (Node st) -- header node for this column +> ,len:: !(MutInt st) -- number of nodes below this head +> ,next,prev:: !(HeadPtr st) -- doubly-linked list +> } + +> data Node st = Node {getHint:: !Hint +> ,getHead:: !(Head st) -- head for the column this node is in +> ,up,down,left,right :: !(NodePtr st) -- two doubly-linked lists +> } + +> instance Eq (Head st) where +> a == b = headName a == headName b + +> instance Eq (Node st) where +> a == b = up a == up b + + To initialize the structures is a bit tedious. Knuth's code reads in + the problem description from a data file and builds the structure + based on that. Rather than short strings, I will use HeadName as the + identifier. + + The columns are (0,4,5) for nodes that put some value in Row 4 Col 5 + (1,2,3) for nodes that put Val 3 in Row 2 and some column + (2,7,4) for nodes that put Val 4 in Col 7 and some row + (3,1,8) for nodes that put Val 8 in some (row,column) in Block 1 + + The first head is (0,0,0) which is the root. The non-root head data + will be put in an array with the HeadName as an index. + +> headNames :: [HeadName] +> headNames = let names = [0,1,2,3] +> in (0,0,0):[ (l,i,j) | l<-names,i<-rng,j<-rng] + + A "row" of left-right linked nodes is a move. It is defined by a + list of head names. + +> type Move = [(Hint,HeadName)] + + Initial hints are enforced by making them the only legal move for + that location. Blank entries with value 'u = V 0' have a move for + all possible values [V 1..V 9]. + +> parseSpec :: Spec -> [Move] +> parseSpec spec = +> let rowsFrom :: Hint -> [Move] +> rowsFrom (rc@(R r,C c),mv@(V v')) = +> if mv == u then [ rsyms v | v <- rng ] +> else [ rsyms v' ] +> where (B b) = lookupBlock ! rc +> rsyms :: A -> Move +> rsyms v = map ( (,) (rc,V v) ) [(0,r,c),(1,r,v),(2,c,v),(3,b,v)] +> in concatMap rowsFrom (assocs (parse spec)) + + mkDList creates doubly linked lists using a monadic smart + constructor and the recursive "mdo" notation as documented at + http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#mdo-notation + http://www.cse.ogi.edu/PacSoft/projects/rmb/ + + For more fun with this, see the wiki page at + http://haskell.org/hawiki/TyingTheKnot + +> mkDList :: (MonadFix m) => (b -> a -> b -> m b) -> [a] -> m b +> mkDList _ [] = error "must have at least one element" +> mkDList mkNode xs = mdo (first,last) <- go last xs first +> return first +> where go prev [] next = return (next,prev) +> go prev (x:xs) next = mdo this <- mkNode prev x rest +> (rest,last) <- go this xs next +> return (this,last) + + toSimple takes a function and a header node and iterates (read . function) + until the header is reached again, but does not return the header + itself. + +> toSingle step header = loop =<< (read . step) header +> where loop y = if header/=y then liftM (y:) (read (step y) >>= loop) +> else return [] +> + + forEach is an optimization of (toSimple step header >>= mapM_ act) + +> forEach step header act = loop =<< (read . step) header +> where loop y = if header/=y then (act y >> (read (step y)) >>= loop) +> else return () + + Now make the root node and all the head nodes. This also exploits mdo: + +> makeHeads :: [HeadName] -> (ST st) (Head st) +> makeHeads names = mkDList makeHead names +> where makeHead before name after = mdo +> ~newTopNode <- liftM4 (Node ((R 0,C 0),V 0) newHead) (new newTopNode) (new newTopNode) +> (new newTopNode) (new newTopNode) +> newHead <- liftM3 (Head name newTopNode) +> (new 0) (new after) (new before) +> return newHead + + The Head nodes will be places in an array for easy lookup while building moves: + +> type HArray st = Array HeadName (Head st) +> hBounds = ((0,1,1),(3,9,9)) +> type Root st = (Head st,HArray st) + + The addMove function creates the (four) nodes that represent a move and adds + them to the data structure. The HArray in Root makes for a fast + lookup of the Head data. + +> addMove :: forall st. (Root st) -> Move -> (ST st) (Node st) +> addMove (_,ha) move = mkDList addNode move +> where addNode :: (Node st) -> (Hint,HeadName) -> (Node st) -> (ST st) (Node st) +> addNode before (hint,name) after = do +> let head = ha ! name +> let below = topNode head +> above <- read (up below) +> newNode <- liftM4 (Node hint head) (new above) (new below) +> (new before) (new after) +> write (down above) newNode +> write (up below) newNode +> modify (len head) succ +> l <- read (len head) +> seq l (return newNode) + + Create the column headers, including the fast lookup array. These + will be resused between puzzles. + +> initHA :: (ST st) (Root st) +> initHA = do +> root <- makeHeads headNames +> heads <- toSingle next root +> let ha = array hBounds (zip (map headName heads) heads) +> return (root,ha) + + Take the Root from initHA and a puzzle Spec and fill in all the Nodes. + +> initRoot :: (Root st) -> Spec -> (ST st) () +> initRoot root spec = do +> let moves = parseSpec spec +> mapM_ (addMove root) moves + + Return the column headers to their condition after initHA + +> resetRoot :: (Root st) -> (ST st) () +> resetRoot (root,ha) = do +> let heads@(first:_) = elems ha +> let resetHead head = do +> write (len head) 0 +> let node = topNode head +> write (down node) node +> write (up node) node +> reset (last:[]) = do +> write (prev root) last +> write (next root) first +> reset (before:xs@(head:[])) = do +> resetHead head +> write (prev head) before +> write (next head) root +> reset xs +> reset (before:xs@(head:after:_)) = do +> resetHead head +> write (prev head) before +> write (next head) after +> reset xs +> reset (root:heads) + + getBest iterates over the unmet constraints (i.e. the Head that are + reachable from root). It locates the one with the lowest number of + possible moves that will solve it, aborting early if it finds 0 or 1 + moves. + +> getBest :: (Head st) -> (ST st) (Maybe (Head st)) +> getBest root = do +> first <- read (next root) +> if first == root then return Nothing +> else do +> let findMin m best head | head == root = return (Just best) +> | otherwise = do +> l <- read (len head) +> if l <= 1 then return (Just head) +> else if l < m then findMin l head =<< read (next head) +> else findMin l best =<< read (next head) +> findMin 10 first first + + The unlink and relink operations are from where Knuth got the name + "dancing links". So long as "a" does not change in between, the + relink call will undo the unlink call. Similarly, the unconver will + undo the changes of cover and unconverOthers will undo coverOthers. + +> unlink :: (a->STRef st a) -> (a->STRef st a) -> a -> (ST st) () +> unlink prev next a = do +> before <- read (prev a) +> after <- read (next a) +> write (next before) after +> write (prev after) before + +> relink :: (a->STRef st a) -> (a->STRef st a) -> a -> (ST st) () +> relink prev next a = do +> before <- read (prev a) +> after <- read (next a) +> write (next before) a +> write (prev after) a + +> cover :: (Head st) -> (ST st) () +> cover head = do +> unlink prev next head +> let eachDown rr = forEach right rr eachRight +> eachRight nn = do +> unlink up down nn +> modify (len $ getHead nn) pred +> forEach down (topNode head) eachDown + +> uncover :: (Head st) -> (ST st) () +> uncover head = do +> let eachUp rr = forEach left rr eachLeft +> eachLeft nn = do +> modify (len $ getHead nn) succ +> relink up down nn +> forEach up (topNode head) eachUp +> relink prev next head + +> coverOthers :: (Node st) -> (ST st) () +> coverOthers node = forEach right node (cover . getHead) + +> uncoverOthers :: (Node st) -> (ST st) () +> uncoverOthers node = forEach left node (uncover . getHead) + + A helper function for gdance: + +> choicesToSpec :: [(Node st)] -> Spec +> choicesToSpec = Spec . (map getHint) + + This is the heart of the algorithm. I have altered it to return only + the first solution, or produce an error if none is found. + + Knuth used several goto links to do what is done below with tail + recursion. + +> gdance :: (Head st) -> (ST st) Spec -- [Spec] +> gdance root = +> let +> forward choices = do +> maybeHead <- getBest root +> case maybeHead of +> Nothing -> if null choices +> then error "No choices in forward" -- return [] -- for [Spec] +> else do -- nextSols <- recover choices -- for [Spec] +> return $ (choicesToSpec choices) -- :nextSols -- for [Spec] +> Just head -> do cover head +> startRow <- readSTRef (down (topNode head)) +> advance (startRow:choices) +> +> advance choices@(newRow:oldChoices) = do +> let endOfRows = topNode (getHead newRow) +> if (newRow == endOfRows) +> then do uncover (getHead newRow) +> if (null oldChoices) +> then error "No choices in advance" -- return [] -- for [Spec] +> else recover oldChoices +> else do coverOthers newRow +> forward choices +> +> recover (oldRow:oldChoices) = do +> uncoverOthers oldRow +> newRow <- readSTRef (down oldRow) +> advance (newRow:oldChoices) +> +> in forward [] + + + Convert a text board into a Spec + +> parseBoard :: String -> Spec +> parseBoard s = Spec (zip rcs vs'check) +> where rcs :: [(R,C)] +> rcs = [ (R r,C c) | r <- rng, c <- rng ] +> isUnset c = (c=='.') || (c==' ') || (c=='0') +> isHint c = ('1'<=c) && (c<='9') +> cs = take 81 $ filter (\c -> isUnset c || isHint c) s +> vs :: [V] +> vs = map (\c -> if isUnset c then u else (V $ digitToInt c)) cs +> vs'check = if 81==length vs then vs else error ("parse of board failed\n"++s) + + This is quite useful as a utility function which partitions the list into groups of n elements. + Used by showSpec. + +> groupTake :: Int->[a]->[[a]] +> groupTake n b = unfoldr foo b +> where foo [] = Nothing +> foo b = Just (splitAt n b) + + Make a nice 2D ascii board from the Spec (not used at the moment) + +> showSpec :: Spec -> String +> showSpec spec = let pa = parse spec +> g = groupTake 9 (map (\(V v) -> if v == 0 then '.' else intToDigit v) $ elems pa) +> addV line = concat $ intersperse "|" (groupTake 3 line) +> addH list = concat $ intersperse ["---+---+---"] (groupTake 3 list) +> in unlines $ addH (map addV g) + + One line display + +> showCompact spec = map (\(V v) -> intToDigit v) (elems (parse spec)) + + The main routine is designed to handle the input from http://www.csse.uwa.edu.au/~gordon/sudoku17 + +> main = do +> all <- getContents +> let puzzles = zip [1..] (map parseBoard (lines all)) +> root <- stToIO initHA +> let act :: (Int,Spec) -> IO () +> act (i,spec) = do +> answer <- stToIO (do initRoot root spec +> answer <- gdance (fst root) +> resetRoot root +> return answer) +> print (i,showCompact answer) +> mapM_ act puzzles + +> inits' xn@(_:_) = zipWith take [0..] $ map (const xn) $ undefined:xn +> inits' _ = undefined Added: external/Pygments-0.9/tests/examplefiles/Intro.java ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/Intro.java Tue Oct 23 20:20:22 2007 @@ -0,0 +1,1660 @@ +/* + * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * -Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * -Redistribution in binary form must reproduct the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the distribution. + * + * Neither the name of Sun Microsystems, Inc. or the names of contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * This software is provided "AS IS," without a warranty of any kind. ALL + * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING + * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE + * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT + * BE LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT + * OF OR RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR ITS + * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST + * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, + * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY + * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN + * IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + * + * You acknowledge that Software is not designed, licensed or intended for + * use in the design, construction, operation or maintenance of any nuclear + * facility. + */ + + +package java2d; + +import java.awt.*; +import java.awt.event.*; +import java.awt.geom.*; +import java.awt.image.BufferedImage; +import java.awt.image.DataBuffer; +import java.awt.font.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.table.*; +import javax.swing.event.*; +import java.util.Vector; +import java.util.List; +import java.util.Arrays; + + + +/** + * Introduction to the Java2Demo. + * + * @version @(#)Intro.java 1.19 03/06/26 + * @author Brian Lichtenwalter + */ +public class Intro extends JPanel { + + static Color black = new Color(20, 20, 20); + static Color white = new Color(240, 240, 255); + static Color red = new Color(149, 43, 42); + static Color blue = new Color(94, 105, 176); + static Color yellow = new Color(255, 255, 140); + + static Surface surface; + private ScenesTable scenesTable; + private boolean doTable; + + + public Intro() { + EmptyBorder eb = new EmptyBorder(80,110,80,110); + BevelBorder bb = new BevelBorder(BevelBorder.LOWERED); + setBorder(new CompoundBorder(eb,bb)); + setLayout(new BorderLayout()); + setBackground(Color.gray); + setToolTipText("click for scene table"); + add(surface = new Surface()); + addMouseListener(new MouseAdapter() { + public void mouseClicked(MouseEvent e) { + removeAll(); + if ((doTable = !doTable)) { + setToolTipText("click for animation"); + surface.stop(); + if (scenesTable == null) { + scenesTable = new ScenesTable(); + } + add(scenesTable); + } else { + setToolTipText("click for scene table"); + surface.start(); + add(surface); + } + revalidate(); + repaint(); + } + }); + } + + + public void start() { + if (!doTable) { + surface.start(); + } + } + + + public void stop() { + if (!doTable) { + surface.stop(); + } + } + + + public static void main(String argv[]) { + final Intro intro = new Intro(); + WindowListener l = new WindowAdapter() { + public void windowClosing(WindowEvent e) {System.exit(0);} + public void windowDeiconified(WindowEvent e) { intro.start(); } + public void windowIconified(WindowEvent e) { intro.stop(); } + }; + JFrame f = new JFrame("Java2D Demo - Intro"); + f.addWindowListener(l); + f.getContentPane().add("Center", intro); + f.pack(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); + int w = 720; + int h = 510; + f.setLocation(screenSize.width/2 - w/2, screenSize.height/2 - h/2); + f.setSize(w, h); + f.setVisible(true); + intro.start(); + } + + + /** + * ScenesTable is the list of scenes known to the Director. + * Scene participation, scene name and scene pause amount columns. + * Global animation delay for scene's steps. + */ + static class ScenesTable extends JPanel implements ActionListener, ChangeListener { + + private JTable table; + private TableModel dataModel; + + public ScenesTable() { + setBackground(Color.white); + setLayout(new BorderLayout()); + final String[] names = { "", "Scenes", "Pause" }; + + dataModel = new AbstractTableModel() { + public int getColumnCount() { return names.length; } + public int getRowCount() { return surface.director.size();} + public Object getValueAt(int row, int col) { + Surface.Scene scene = (Surface.Scene) surface.director.get(row); + if (col == 0) { + return scene.participate; + } else if (col == 1) { + return scene.name; + } else { + return scene.pauseAmt; + } + } + public String getColumnName(int col) {return names[col]; } + public Class getColumnClass(int c) { + return getValueAt(0, c).getClass(); + } + public boolean isCellEditable(int row, int col) { + return col != 1 ? true : false; + } + public void setValueAt(Object aValue, int row, int col) { + Surface.Scene scene = (Surface.Scene) surface.director.get(row); + if (col == 0) { + scene.participate = aValue; + } else if (col == 1) { + scene.name = aValue; + } else { + scene.pauseAmt = aValue; + } + } + }; + + table = new JTable(dataModel); + TableColumn col = table.getColumn(""); + col.setWidth(16); + col.setMinWidth(16); + col.setMaxWidth(20); + col = table.getColumn("Pause"); + col.setWidth(60); + col.setMinWidth(60); + col.setMaxWidth(60); + table.sizeColumnsToFit(0); + + JScrollPane scrollpane = new JScrollPane(table); + add(scrollpane); + + JPanel panel = new JPanel(new BorderLayout()); + JButton b = new JButton("Unselect All"); + b.setHorizontalAlignment(JButton.LEFT); + Font font = new Font("serif", Font.PLAIN, 10); + b.setFont(font); + b.addActionListener(this); + panel.add("West", b); + + JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 200, (int) surface.sleepAmt); + slider.addChangeListener(this); + TitledBorder tb = new TitledBorder(new EtchedBorder()); + tb.setTitleFont(font); + tb.setTitle("Anim delay = " + String.valueOf(surface.sleepAmt) + " ms"); + slider.setBorder(tb); + slider.setPreferredSize(new Dimension(140,40)); + slider.setMinimumSize(new Dimension(100,40)); + slider.setMaximumSize(new Dimension(180,40)); + panel.add("East", slider); + + add("South", panel); + } + + + public void actionPerformed(ActionEvent e) { + JButton b = (JButton) e.getSource(); + b.setSelected(!b.isSelected()); + b.setText(b.isSelected() ? "Select All" : "Unselect All"); + for (int i = 0; i < surface.director.size(); i++) { + Surface.Scene scene = (Surface.Scene) surface.director.get(i); + scene.participate = new Boolean(!b.isSelected()); + } + table.tableChanged(new TableModelEvent(dataModel)); + } + + + public void stateChanged(ChangeEvent e) { + JSlider slider = (JSlider) e.getSource(); + int value = slider.getValue(); + TitledBorder tb = (TitledBorder) slider.getBorder(); + tb.setTitle("Anim delay = " + String.valueOf(value) + " ms"); + surface.sleepAmt = (long) value; + slider.repaint(); + } + } // End ScenesTable class + + + + /** + * Surface is the stage where the Director plays its scenes. + */ + static class Surface extends JPanel implements Runnable { + + static Surface surf; + static Image cupanim, java_logo; + static BufferedImage bimg; + public Director director; + public int index; + public long sleepAmt = 30; + private Thread thread; + + + public Surface() { + surf = this; + setBackground(black); + setLayout(new BorderLayout()); + addMouseListener(new MouseAdapter() { + public void mouseClicked(MouseEvent e) { + if (thread == null) start(); else stop(); + } + }); + cupanim = DemoImages.getImage("cupanim.gif", this); + java_logo = DemoImages.getImage("java_logo.png", this); + director = new Director(); + } + + + static FontMetrics getMetrics(Font font) { + return surf.getFontMetrics(font); + } + + + public void paint(Graphics g) { + Dimension d = getSize(); + if (d.width <= 0 || d.height <= 0) { + return; + } + if (bimg == null || bimg.getWidth() != d.width || bimg.getHeight() != d.height) { + bimg = getGraphicsConfiguration().createCompatibleImage(d.width, d.height); + // reset future scenes + for (int i = index+1; i < director.size(); i++) { + ((Scene) director.get(i)).reset(d.width, d.height); + } + } + + Scene scene = (Scene) director.get(index); + if (scene.index <= scene.length) { + if (thread != null) { + scene.step(d.width, d.height); + } + + Graphics2D g2 = bimg.createGraphics(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + g2.setBackground(getBackground()); + g2.clearRect(0, 0, d.width, d.height); + + scene.render(d.width, d.height, g2); + + if (thread != null) { + // increment scene.index after scene.render + scene.index++; + } + g2.dispose(); + } + g.drawImage(bimg, 0, 0, this); + } + + + + public void start() { + if (thread == null) { + thread = new Thread(this); + thread.setPriority(Thread.MIN_PRIORITY); + thread.setName("Intro"); + thread.start(); + } + } + + + public synchronized void stop() { + if (thread != null) { + thread.interrupt(); + } + thread = null; + notifyAll(); + } + + + public void reset() { + index = 0; + Dimension d = getSize(); + for (int i = 0; i < director.size(); i++) { + ((Scene) director.get(i)).reset(d.width, d.height); + } + } + + + public void run() { + + Thread me = Thread.currentThread(); + + while (thread == me && !isShowing() || getSize().width <= 0) { + try { + thread.sleep(500); + } catch (InterruptedException e) { return; } + } + + if (index == 0) { + reset(); + } + + while (thread == me) { + Scene scene = (Scene) director.get(index); + if (((Boolean) scene.participate).booleanValue()) { + repaint(); + try { + thread.sleep(sleepAmt); + } catch (InterruptedException e) { break; } + if (scene.index > scene.length) { + scene.pause(thread); + if (++index >= director.size()) { + reset(); + } + } + } else { + if (++index >= director.size()) { + reset(); + } + } + } + thread = null; + } + + + + /** + * Part is a piece of the scene. Classes must implement Part + * inorder to participate in a scene. + */ + interface Part { + public void reset(int newwidth, int newheight); + public void step(int w, int h); + public void render(int w, int h, Graphics2D g2); + public int getBegin(); + public int getEnd(); + } + + + + /** + * Director is the holder of the scenes, their names & pause amounts + * between scenes. + */ + static class Director extends Vector { + + GradientPaint gp = new GradientPaint(0,40,blue,38,2,black); + Font f1 = new Font("serif", Font.PLAIN, 200); + Font f2 = new Font("serif", Font.PLAIN, 120); + Font f3 = new Font("serif", Font.PLAIN, 72); + Object parts[][][] = { + { { "J - scale text on gradient", "0" }, + { new GpE(GpE.BURI, black, blue, 0, 20), + new TxE("J", f1, TxE.SCI, yellow, 2, 20) } }, + { { "2 - scale & rotate text on gradient" , "0" }, + { new GpE(GpE.BURI, blue, black, 0, 22), + new TxE("2", f1, TxE.RI | TxE.SCI, yellow, 2, 22) } }, + { { "D - scale text on gradient", "0" }, + { new GpE(GpE.BURI, black, blue, 0, 20), + new TxE("D", f1, TxE.SCI, yellow, 2, 20) } }, + { { "Java2D - scale & rotate text on gradient", "1000" }, + { new GpE(GpE.SIH, blue, black, 0, 40), + new TxE("Java2D", f2, TxE.RI | TxE.SCI, yellow, 0, 40) }}, + { { "Previous scene dither dissolve out", "0"}, + { new DdE(0, 20, 1) }}, + { { "Graphics Features", "999" }, + { new Temp(Temp.RECT, null, 0, 15), + new Temp(Temp.IMG, java_logo, 2, 15), + new Temp(Temp.RNA | Temp.INA, java_logo, 16, 130), + new Features(Features.GRAPHICS, 16, 130) }}, + { { "Java2D - texture text on gradient", "1000"}, + { new GpE(GpE.WI, blue, black, 0, 20), + new GpE(GpE.WD, blue, black, 21, 40), + new TpE(TpE.OI | TpE.NF, black, yellow, 4, 0, 10), + new TpE(TpE.OD | TpE.NF, black, yellow, 4, 11, 20), + new TpE(TpE.OI | TpE.NF | TpE.HAF, black, yellow,5,21,40), + new TxE("Java2D", f2, 0, null, 0, 40) }}, + { { "Previous scene random close out", "0"}, + { new CoE(CoE.RAND, 0, 20) } }, + { { "Text Features", "999" }, + { new Temp(Temp.RECT, null, 0, 15), + new Temp(Temp.IMG, java_logo, 2, 15), + new Temp(Temp.RNA | Temp.INA, java_logo, 16, 130), + new Features(Features.TEXT, 16, 130) }}, + { { "Java2D - composite text on texture", "1000"}, + { new TpE(TpE.RI, black, gp, 40, 0, 20), + new TpE(TpE.RD, black, gp, 40, 21, 40), + new TpE(TpE.RI, black, gp, 40, 41, 60), + new TxE("Java2D", f2, TxE.AC, yellow, 0, 60) }}, + { { "Previous scene dither dissolve out", "0"}, + { new DdE(0, 20, 4) }}, + { { "Imaging Features", "999" }, + { new Temp(Temp.RECT, null, 0, 15), + new Temp(Temp.IMG, java_logo, 2, 15), + new Temp(Temp.RNA | Temp.INA, java_logo, 16, 130), + new Features(Features.IMAGES, 16, 130) }}, + { { "Java2D - text on gradient", "1000" }, + { new GpE(GpE.SDH, blue, black, 0, 20), + new GpE(GpE.SIH, blue, black, 21, 40), + new GpE(GpE.SDH, blue, black, 41, 50), + new GpE(GpE.INC | GpE.NF, red, yellow, 0, 50), + new TxE("Java2D", f2, TxE.NOP, null, 0, 50) }}, + { { "Previous scene ellipse close out", "0"}, + { new CoE(CoE.OVAL, 0, 20) } }, + { { "Color Features", "999" }, + { new Temp(Temp.RECT, null, 0, 15), + new Temp(Temp.IMG, java_logo, 2, 15), + new Temp(Temp.RNA | Temp.INA, java_logo, 16, 99), + new Features(Features.COLOR, 16, 99) }}, + { { "Java2D - composite and rotate text on paints", "2000" }, + { new GpE(GpE.BURI, black, blue, 0, 20), + new GpE(GpE.BURD, black, blue, 21, 30), + new TpE(TpE.OI | TpE.HAF, black, blue, 10, 31, 40), + new TxE("Java2D", f2, TxE.AC | TxE.RI, yellow, 0, 40) }}, + { { "Previous scene subimage transform out", "0" }, + { new SiE(60, 60, 0, 40) }}, + { { "CREDITS - transform in", "1000" }, + { new LnE(LnE.ACI | LnE.ZOOMI | LnE.RI, 0, 60), + new TxE("CREDITS", f3, TxE.AC | TxE.SCI, Color.red,20,30), + new TxE("CREDITS", f3, TxE.SCXD, Color.red, 31, 38), + new TxE("CREDITS", f3, TxE.SCXI, Color.red, 39, 48), + new TxE("CREDITS", f3, TxE.SCXD, Color.red, 49, 54), + new TxE("CREDITS", f3, TxE.SCXI, Color.red, 55, 60) }}, + { { "CREDITS - transform out", "0" }, + { new LnE(LnE.ACD | LnE.ZOOMD | LnE.RD, 0, 45), + new TxE("CREDITS", f3, 0, Color.red, 0, 9), + new TxE("CREDITS", f3, TxE.SCD | TxE.RD, Color.red,10,30)}}, + { { "Contributors", "1000" }, + { new Temp(Temp.RECT, null, 0, 30), + new Temp(Temp.IMG, cupanim, 4, 30), + new Temp(Temp.RNA | Temp.INA, cupanim, 31, 200), + new Contributors(34, 200) } }, + }; + + + public Director() { + for (int i = 0; i < parts.length; i++) { + Vector v = new Vector(); + for (int j = 0; j < parts[i][1].length; j++) { + v.addElement(parts[i][1][j]); + } + addElement(new Scene(v, parts[i][0][0], parts[i][0][1])); + } + } + } + + + + /** + * Scene is the manager of the parts. + */ + static class Scene extends Object { + public Object name; + public Object participate = new Boolean(true); + public Object pauseAmt; + public Vector parts; + public int index; + public int length; + + public Scene(Vector parts, Object name, Object pauseAmt) { + this.name = name; + this.parts = parts; + this.pauseAmt = pauseAmt; + for (int i = 0; i < parts.size(); i++) { + if (((Part) parts.get(i)).getEnd() > length) { + length = ((Part) parts.get(i)).getEnd(); + } + } + } + + public void reset(int w, int h) { + index = 0; + for (int i = 0; i < parts.size(); i++) { + ((Part) parts.get(i)).reset(w, h); + } + } + + public void step(int w, int h) { + for (int i = 0; i < parts.size(); i++) { + Part part = (Part) parts.get(i); + if (index >= part.getBegin() && index <= part.getEnd()) { + part.step(w, h); + } + } + } + + public void render(int w, int h, Graphics2D g2) { + for (int i = 0; i < parts.size(); i++) { + Part part = (Part) parts.get(i); + if (index >= part.getBegin() && index <= part.getEnd()) { + part.render(w, h, g2); + } + } + } + + public void pause(Thread thread) { + try { + thread.sleep(Long.parseLong((String) pauseAmt)); + } catch (Exception e) { } + System.gc(); + } + } // End Scene class + + + + /** + * Text Effect. Transformation of characters. Clip or fill. + */ + static class TxE implements Part { + + static final int INC = 1; + static final int DEC = 2; + static final int R = 4; // rotate + static final int RI = R | INC; + static final int RD = R | DEC; + static final int SC = 8; // scale + static final int SCI = SC | INC; + static final int SCD = SC | DEC; + static final int SCX = 16; // scale invert x + static final int SCXI = SCX | SC | INC; + static final int SCXD = SCX | SC | DEC; + static final int SCY = 32; // scale invert y + static final int SCYI = SCY | SC | INC; + static final int SCYD = SCY | SC | DEC; + static final int AC = 64; // AlphaComposite + static final int CLIP = 128; // Clipping + static final int NOP = 512; // No Paint + private int beginning, ending; + private int type; + private double rIncr, sIncr; + private double sx, sy, rotate; + private Shape shapes[], txShapes[]; + private int sw; + private int numRev; + private Paint paint; + + + public TxE(String text, + Font font, + int type, + Paint paint, + int beg, + int end) { + this.type = type; + this.paint = paint; + this.beginning = beg; + this.ending = end; + + setIncrements(2); + + char[] chars = text.toCharArray(); + shapes = new Shape[chars.length]; + txShapes = new Shape[chars.length]; + FontRenderContext frc = new FontRenderContext(null,true,true); + TextLayout tl = new TextLayout(text, font, frc); + sw = (int) tl.getOutline(null).getBounds().getWidth(); + for (int j = 0; j < chars.length; j++) { + String s = String.valueOf(chars[j]); + shapes[j] = new TextLayout(s, font, frc).getOutline(null); + } + } + + + public void setIncrements(double numRevolutions) { + this.numRev = (int) numRevolutions; + rIncr = 360.0 / ((ending - beginning) / numRevolutions); + sIncr = 1.0 / (ending - beginning); + if ((type & SCX) != 0 || (type & SCY) != 0) { + sIncr *= 2; + } + if ((type & DEC) != 0) { + rIncr = -rIncr; + sIncr = -sIncr; + } + } + + + public void reset(int w, int h) { + if (type == SCXI) { + sx = -1.0; sy = 1.0; + } else if (type == SCYI) { + sx = 1.0; sy = -1.0; + } else { + sx = sy = (type & DEC) != 0 ? 1.0 : 0.0; + } + rotate = 0; + } + + + public void step(int w, int h) { + + float charWidth = w/2-sw/2; + + for (int i = 0; i < shapes.length; i++) { + AffineTransform at = new AffineTransform(); + Rectangle2D maxBounds = shapes[i].getBounds(); + at.translate(charWidth, h/2+maxBounds.getHeight()/2); + charWidth += (float) maxBounds.getWidth() + 1; + Shape shape = at.createTransformedShape(shapes[i]); + Rectangle2D b1 = shape.getBounds2D(); + + if ((type & R) != 0) { + at.rotate(Math.toRadians(rotate)); + } + if ((type & SC) != 0) { + at.scale(sx, sy); + } + shape = at.createTransformedShape(shapes[i]); + Rectangle2D b2 = shape.getBounds2D(); + + double xx = (b1.getX()+b1.getWidth()/2) + - (b2.getX()+b2.getWidth()/2); + double yy = (b1.getY()+b1.getHeight()/2) + - (b2.getY()+b2.getHeight()/2); + AffineTransform toCenterAT = new AffineTransform(); + toCenterAT.translate(xx, yy); + toCenterAT.concatenate(at); + txShapes[i] = toCenterAT.createTransformedShape(shapes[i]); + } + // avoid over rotation + if (Math.abs(rotate) <= numRev * 360) { + rotate += rIncr; + if ((type & SCX) != 0) { + sx += sIncr; + } else if ((type & SCY) != 0) { + sy += sIncr; + } else { + sx += sIncr; sy += sIncr; + } + } + } + + + public void render(int w, int h, Graphics2D g2) { + Composite saveAC = null; + if ((type & AC) != 0 && sx > 0 && sx < 1) { + saveAC = g2.getComposite(); + g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) sx)); + } + GeneralPath path = null; + if ((type & CLIP) != 0) { + path = new GeneralPath(); + } + if (paint != null) { + g2.setPaint(paint); + } + for (int i = 0; i < txShapes.length; i++) { + if ((type & CLIP) != 0) { + path.append(txShapes[i], false); + } else { + g2.fill(txShapes[i]); + } + } + if ((type & CLIP) != 0) { + g2.clip(path); + } + if (saveAC != null) { + g2.setComposite(saveAC); + } + } + + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End TxE class + + + + + /** + * GradientPaint Effect. Burst, split, horizontal and + * vertical gradient fill effects. + */ + static class GpE implements Part { + + static final int INC = 1; // increasing + static final int DEC = 2; // decreasing + static final int CNT = 4; // center + static final int WID = 8; // width + static final int WI = WID | INC; + static final int WD = WID | DEC; + static final int HEI = 16; // height + static final int HI = HEI | INC; + static final int HD = HEI | DEC; + static final int SPL = 32 | CNT; // split + static final int SIW = SPL | INC | WID; + static final int SDW = SPL | DEC | WID; + static final int SIH = SPL | INC | HEI; + static final int SDH = SPL | DEC | HEI; + static final int BUR = 64 | CNT; // burst + static final int BURI = BUR | INC; + static final int BURD = BUR | DEC; + static final int NF = 128; // no fill + private Color c1, c2; + private int beginning, ending; + private float incr, index; + private Vector rect = new Vector(); + private Vector grad = new Vector(); + private int type; + + + public GpE(int type, Color c1, Color c2, int beg, int end) { + this.type = type; + this.c1 = c1; + this.c2 = c2; + this.beginning = beg; + this.ending = end; + } + + + public void reset(int w, int h) { + incr = 1.0f / (ending - beginning); + if ((type & CNT) != 0) { + incr /= 2.3f; + } + if ((type & CNT) != 0 && (type & INC) != 0) { + index = 0.5f; + } else if ((type & DEC) != 0) { + index = 1.0f; + incr = -incr; + } else { + index = 0.0f; + } + index += incr; + } + + + public void step(int w, int h) { + rect.clear(); + grad.clear(); + + if ((type & WID) != 0) { + float w2 = 0, x1 = 0, x2 = 0; + if ((type & SPL) != 0) { + w2 = w * 0.5f; + x1 = w * (1.0f - index); + x2 = w * index; + } else { + w2 = w * index; + x1 = x2 = w2; + } + rect.addElement(new Rectangle2D.Float(0, 0, w2, h)); + rect.addElement(new Rectangle2D.Float(w2, 0, w-w2, h)); + grad.addElement(new GradientPaint(0,0,c1,x1,0,c2)); + grad.addElement(new GradientPaint(x2,0,c2,w,0,c1)); + } else if ((type & HEI) != 0) { + float h2 = 0, y1 = 0, y2 = 0; + if ((type & SPL) != 0) { + h2 = h * 0.5f; + y1 = h * (1.0f - index); + y2 = h * index; + } else { + h2 = h * index; + y1 = y2 = h2; + } + rect.addElement(new Rectangle2D.Float(0, 0, w, h2)); + rect.addElement(new Rectangle2D.Float(0, h2, w, h-h2)); + grad.addElement(new GradientPaint(0,0,c1,0,y1,c2)); + grad.addElement(new GradientPaint(0,y2,c2,0,h,c1)); + } else if ((type & BUR) != 0) { + + float w2 = w/2; + float h2 = h/2; + + rect.addElement(new Rectangle2D.Float(0, 0, w2, h2)); + rect.addElement(new Rectangle2D.Float(w2, 0, w2, h2)); + rect.addElement(new Rectangle2D.Float(0, h2, w2, h2)); + rect.addElement(new Rectangle2D.Float(w2, h2, w2, h2)); + + float x1 = w * (1.0f - index); + float x2 = w * index; + float y1 = h * (1.0f - index); + float y2 = h * index; + + grad.addElement(new GradientPaint(0,0,c1,x1,y1,c2)); + grad.addElement(new GradientPaint(w,0,c1,x2,y1,c2)); + grad.addElement(new GradientPaint(0,h,c1,x1,y2,c2)); + grad.addElement(new GradientPaint(w,h,c1,x2,y2,c2)); + } else if ((type & NF) != 0) { + float x = w * index; + float y = h * index; + grad.addElement(new GradientPaint(0,0,c1,0,y,c2)); + } + + if ((type & INC) != 0 || (type & DEC) != 0) { + index += incr; + } + } + + + public void render(int w, int h, Graphics2D g2) { + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_OFF); + for (int i = 0; i < grad.size(); i++) { + g2.setPaint((GradientPaint) grad.get(i)); + if ((type & NF) == 0) { + g2.fill((Rectangle2D) rect.get(i)); + } + } + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End GpE class + + + + /** + * TexturePaint Effect. Expand and collapse a texture. + */ + static class TpE implements Part { + + static final int INC = 1; // increasing + static final int DEC = 2; // decreasing + static final int OVAL = 4; // oval + static final int RECT = 8; // rectangle + static final int HAF = 16; // half oval or rect size + static final int OI = OVAL | INC; + static final int OD = OVAL | DEC; + static final int RI = RECT | INC; + static final int RD = RECT | DEC; + static final int NF = 32; // no fill + private Paint p1, p2; + private int beginning, ending; + private float incr, index; + private TexturePaint texture; + private int type; + private int size; + private BufferedImage bimg; + private Rectangle rect; + + + public TpE(int type, Paint p1, Paint p2, int size, + int beg, int end) { + this.type = type; + this.p1 = p1; + this.p2 = p2; + this.beginning = beg; + this.ending = end; + setTextureSize(size); + } + + + public void setTextureSize(int size) { + this.size = size; + bimg = new BufferedImage(size,size,BufferedImage.TYPE_INT_RGB); + rect = new Rectangle(0,0,size,size); + } + + + public void reset(int w, int h) { + incr = (float) (size) / (float) (ending - beginning); + if ((type & HAF) != 0) { + incr /= 2; + } + if ((type & DEC) != 0) { + index = size; + if ((type & HAF) != 0) { + index /= 2; + } + incr = -incr; + } else { + index = 0.0f; + } + index += incr; + } + + + public void step(int w, int h) { + Graphics2D g2 = bimg.createGraphics(); + g2.setPaint(p1); + g2.fillRect(0,0,size,size); + g2.setPaint(p2); + if ((type & OVAL) != 0) { + g2.fill(new Ellipse2D.Float(0,0,index,index)); + } else if ((type & RECT) != 0) { + g2.fill(new Rectangle2D.Float(0,0,index,index)); + } + texture = new TexturePaint(bimg, rect); + g2.dispose(); + index += incr; + } + + + public void render(int w, int h, Graphics2D g2) { + g2.setPaint(texture); + if ((type & NF) == 0) { + g2.fillRect(0, 0, w, h); + } + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End TpE class + + + + /** + * Close out effect. Close out the buffered image with different + * geometry shapes. + */ + static class CoE implements Part { + + static final int WID = 1; + static final int HEI = 2; + static final int OVAL = 4; + static final int RECT = 8; + static final int RAND = 16; + static final int ARC = 32; + private int type; + private int beginning, ending; + private BufferedImage bimg; + private Shape shape; + private double zoom, extent; + private double zIncr, eIncr; + private boolean doRandom; + + + public CoE(int type, int beg, int end) { + this.type = type; + this.beginning = beg; + this.ending = end; + zIncr = -(2.0 / (ending - beginning)); + eIncr = 360.0 / (ending - beginning); + doRandom = (type & RAND) != 0; + } + + + public void reset(int w, int h) { + if (doRandom) { + int num = (int) (Math.random() * 5.0); + switch (num) { + case 0 : type = OVAL; break; + case 1 : type = RECT; break; + case 2 : type = RECT | WID; break; + case 3 : type = RECT | HEI; break; + case 4 : type = ARC; break; + default : type = OVAL; + } + } + shape = null; + bimg = null; + extent = 360.0; + zoom = 2.0; + } + + + public void step(int w, int h) { + if (bimg == null) { + int biw = Surface.bimg.getWidth(); + int bih = Surface.bimg.getHeight(); + bimg = new BufferedImage(biw, bih, BufferedImage.TYPE_INT_RGB); + Graphics2D big = bimg.createGraphics(); + big.drawImage(Surface.bimg, 0, 0, null); + } + double z = Math.min(w, h) * zoom; + if ((type & OVAL) != 0) { + shape = new Ellipse2D.Double(w/2-z/2,h/2-z/2,z,z); + } else if ((type & ARC) != 0) { + shape = new Arc2D.Double(-100,-100,w+200,h+200,90,extent,Arc2D.PIE); + extent -= eIncr; + } else if ((type & RECT) != 0) { + if ((type & WID) != 0) { + shape = new Rectangle2D.Double(w/2-z/2,0,z,h); + } else if ((type & HEI) != 0) { + shape = new Rectangle2D.Double(0,h/2-z/2,w,z); + } else { + shape = new Rectangle2D.Double(w/2-z/2,h/2-z/2,z,z); + } + } + zoom += zIncr; + } + + + public void render(int w, int h, Graphics2D g2) { + g2.clip(shape); + g2.drawImage(bimg, 0, 0, null); + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End CoE class + + + + /** + * Dither Dissolve Effect. For each successive step in the animation, + * a pseudo-random starting horizontal position is chosen using list, + * and then the corresponding points created from xlist and ylist are + * blacked out for the current "chunk". The x and y chunk starting + * positions are each incremented by the associated chunk size, and + * this process is repeated for the number of "steps" in the + * animation, causing an equal number of pseudo-randomly picked + * "blocks" to be blacked out during each step of the animation. + */ + static class DdE implements Part { + + private int beginning, ending; + private BufferedImage bimg; + private Graphics2D big; + private List list, xlist, ylist; + private int xeNum, yeNum; // element number + private int xcSize, ycSize; // chunk size + private int inc; + private int blocksize; + + + public DdE(int beg, int end, int blocksize) { + this.beginning = beg; + this.ending = end; + this.blocksize = blocksize; + } + + private void createShuffledLists() { + int width = bimg.getWidth(); + int height = bimg.getHeight(); + Integer xarray[] = new Integer[width]; + Integer yarray[] = new Integer[height]; + Integer array[] = new Integer[ending - beginning + 1]; + for (int i = 0; i < xarray.length; i++) { + xarray[i] = new Integer(i); + } + for (int j = 0; j < yarray.length; j++) { + yarray[j] = new Integer(j); + } + for (int k = 0; k < array.length; k++) { + array[k] = new Integer(k); + } + java.util.Collections.shuffle(xlist = Arrays.asList(xarray)); + java.util.Collections.shuffle(ylist = Arrays.asList(yarray)); + java.util.Collections.shuffle(list = Arrays.asList(array)); + } + + public void reset(int w, int h) { + bimg = null; + } + + public void step(int w, int h) { + if (bimg == null) { + int biw = Surface.bimg.getWidth(); + int bih = Surface.bimg.getHeight(); + bimg = new BufferedImage(biw, bih, BufferedImage.TYPE_INT_RGB); + createShuffledLists(); + big = bimg.createGraphics(); + big.drawImage(Surface.bimg, 0, 0, null); + xcSize = (xlist.size() / (ending - beginning)) + 1; + ycSize = (ylist.size() / (ending - beginning)) + 1; + xeNum = 0; + inc = 0; + } + xeNum = xcSize * ((Integer)list.get(inc)).intValue(); + yeNum = -ycSize; + inc++; + } + + + public void render(int w, int h, Graphics2D g2) { + big.setColor(black); + + for (int k = 0; k <= (ending - beginning); k++) { + if ((xeNum + xcSize) > xlist.size()) { + xeNum = 0; + } else { + xeNum += xcSize; + } + yeNum += ycSize; + + for (int i = xeNum; i < xeNum+xcSize && i < xlist.size(); i++) { + for (int j = yeNum; j < yeNum+ycSize && j < ylist.size(); j++) { + int xval = ((Integer)xlist.get(i)).intValue(); + int yval = ((Integer)ylist.get(j)).intValue(); + if (((xval % blocksize) == 0) && + ((yval % blocksize) == 0)) { + big.fillRect(xval, yval, blocksize, blocksize); + } + } + } + } + + g2.drawImage(bimg, 0, 0, null); + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End DdE class + + + /** + * Subimage effect. Subimage the scene's buffered + * image then rotate and scale down the subimages. + */ + static class SiE implements Part { + + private int beginning, ending; + private BufferedImage bimg; + private double rIncr, sIncr; + private double scale, rotate; + private int siw, sih; + private Vector subs = new Vector(20); + private Vector pts = new Vector(20); + + + public SiE(int siw, int sih, int beg, int end) { + this.siw = siw; + this.sih = sih; + this.beginning = beg; + this.ending = end; + rIncr = 360.0 / (ending - beginning); + sIncr = 1.0 / (ending - beginning); + } + + + public void reset(int w, int h) { + scale = 1.0; + rotate = 0.0; + bimg = null; + subs.clear(); + pts.clear(); + } + + + public void step(int w, int h) { + if (bimg == null) { + int biw = Surface.bimg.getWidth(); + int bih = Surface.bimg.getHeight(); + bimg = new BufferedImage(biw, bih, BufferedImage.TYPE_INT_RGB); + Graphics2D big = bimg.createGraphics(); + big.drawImage(Surface.bimg, 0, 0, null); + for (int x = 0; x < w && scale > 0.0; x+=siw) { + int ww = x+siw < w ? siw : w-x; + for (int y = 0; y < h; y+=sih) { + int hh = y+sih < h ? sih : h-y; + subs.addElement(bimg.getSubimage(x,y,ww,hh)); + pts.addElement(new Point(x, y)); + } + } + } + + rotate += rIncr; + scale -= sIncr; + } + + + public void render(int w, int h, Graphics2D g2) { + AffineTransform saveTx = g2.getTransform(); + g2.setColor(blue); + for (int i = 0; i < subs.size() && scale > 0.0; i++) { + BufferedImage bi = (BufferedImage) subs.get(i); + Point p = (Point) pts.get(i); + int ww = bi.getWidth(); + int hh = bi.getHeight(); + AffineTransform at = new AffineTransform(); + at.rotate(Math.toRadians(rotate), p.x+ww/2, p.y+hh/2); + at.translate(p.x, p.y); + at.scale(scale, scale); + + Rectangle b1 = new Rectangle(0, 0, ww, hh); + Shape shape = at.createTransformedShape(b1); + Rectangle2D b2 = shape.getBounds2D(); + double xx = (p.x+ww/2) - (b2.getX()+b2.getWidth()/2); + double yy = (p.y+hh/2) - (b2.getY()+b2.getHeight()/2); + AffineTransform toCenterAT = new AffineTransform(); + toCenterAT.translate(xx, yy); + toCenterAT.concatenate(at); + + g2.setTransform(toCenterAT); + g2.drawImage(bi, 0, 0, null); + g2.draw(b1); + } + g2.setTransform(saveTx); + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End SiE class + + + + + /** + * Line Effect. Flattened ellipse with lines from the center + * to the edge. Expand or collapse the ellipse. Fade in or out + * the lines. + */ + static class LnE implements Part { + + static final int INC = 1; + static final int DEC = 2; + static final int R = 4; // rotate + static final int RI = R | INC; + static final int RD = R | DEC; + static final int ZOOM = 8; // zoom + static final int ZOOMI = ZOOM | INC; + static final int ZOOMD = ZOOM | DEC; + static final int AC = 32; // AlphaComposite + static final int ACI = 32 | INC; + static final int ACD = 32 | DEC; + private int beginning, ending; + private double rIncr, rotate; + private double zIncr, zoom; + private Vector pts = new Vector(); + private float alpha, aIncr; + private int type; + + + public LnE(int type, int beg, int end) { + this.type = type; + this.beginning = beg; + this.ending = end; + rIncr = 360.0 / (ending - beginning); + aIncr = 0.9f / (ending - beginning); + zIncr = 2.0 / (ending - beginning); + if ((type & DEC) != 0) { + rIncr = -rIncr; + aIncr = -aIncr; + zIncr = -zIncr; + } + } + + + public void generatePts(int w, int h, double sizeF) { + pts.clear(); + double size = Math.min(w, h) * sizeF; + Ellipse2D ellipse = new Ellipse2D.Double(w/2-size/2,h/2-size/2,size,size); + PathIterator pi = ellipse.getPathIterator(null, 0.8); + while ( !pi.isDone() ) { + double[] pt = new double[6]; + switch ( pi.currentSegment(pt) ) { + case FlatteningPathIterator.SEG_MOVETO: + case FlatteningPathIterator.SEG_LINETO: + pts.addElement(new Point2D.Double(pt[0], pt[1])); + } + pi.next(); + } + } + + + public void reset(int w, int h) { + if ((type & DEC) != 0) { + rotate = 360; + alpha = 1.0f; + zoom = 2.0; + } else { + rotate = alpha = 0; + zoom = 0; + } + if ((type & ZOOM) == 0) { + generatePts(w, h, 0.5); + } + } + + + public void step(int w, int h) { + if ((type & ZOOM) != 0) { + generatePts(w, h, zoom += zIncr); + } + if ((type & RI) != 0 || (type & RI) != 0) { + rotate += rIncr; + } + if ((type & ACI) != 0 || (type & ACD) != 0) { + alpha += aIncr; + } + } + + + public void render(int w, int h, Graphics2D g2) { + Composite saveAC = null; + if ((type & AC) != 0 && alpha >= 0 && alpha <= 1) { + saveAC = g2.getComposite(); + g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); + } + AffineTransform saveTx = null; + if ((type & R) != 0) { + saveTx = g2.getTransform(); + AffineTransform at = new AffineTransform(); + at.rotate(Math.toRadians(rotate), w/2, h/2); + g2.setTransform(at); + } + Point2D p1 = new Point2D.Double(w/2, h/2); + g2.setColor(Color.yellow); + for (int i = 0; i < pts.size()-1; i++) { + g2.draw(new Line2D.Float(p1, (Point2D) pts.get(i))); + } + if (saveTx != null) { + g2.setTransform(saveTx); + } + if (saveAC != null) { + g2.setComposite(saveAC); + } + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End LnE class + + + + /** + * Template for Features & Contributors consisting of translating + * blue and red rectangles and an image going from transparent to + * opaque. + */ + static class Temp implements Part { + static final int NOANIM = 1; + static final int RECT = 2; + static final int RNA = RECT | NOANIM; + static final int IMG = 4; + static final int INA = IMG | NOANIM; + private int beginning, ending; + private float alpha, aIncr; + private int type; + private Rectangle rect1, rect2; + private int x, y, xIncr, yIncr; + private Image img; + + + public Temp(int type, Image img, int beg, int end) { + this.type = type; + this.img = img; + this.beginning = beg; + this.ending = end; + aIncr = 0.9f / (ending - beginning); + if ((type & NOANIM) != 0) { + alpha = 1.0f; + } + } + + + + public void reset(int w, int h) { + rect1 = new Rectangle(8, 20, w-20, 30); + rect2 = new Rectangle(20, 8, 30, h-20); + if ((type & NOANIM) == 0) { + alpha = 0.0f; + xIncr = w / (ending - beginning); + yIncr = h / (ending - beginning); + x = w+(int)(xIncr*1.4); + y = h+(int)(yIncr*1.4); + } + } + + + public void step(int w, int h) { + if ((type & NOANIM) != 0) { + return; + } + if ((type & RECT) != 0) { + rect1.setLocation(x-=xIncr, 20); + rect2.setLocation(20, y-=yIncr); + } + if ((type & IMG) != 0) { + alpha += aIncr; + } + } + + + public void render(int w, int h, Graphics2D g2) { + if ((type & RECT) != 0) { + g2.setColor(blue); + g2.fill(rect1); + g2.setColor(red); + g2.fill(rect2); + } + if ((type & IMG) != 0) { + Composite saveAC = g2.getComposite(); + if (alpha >= 0 && alpha <= 1) { + g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); + } + g2.drawImage(img, 30, 30, null); + g2.setComposite(saveAC); + } + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End Temp class + + + + /** + * Features of Java2D. Single character advancement effect. + */ + static class Features implements Part { + + static final int GRAPHICS = 0; + static final int TEXT = 1; + static final int IMAGES = 2; + static final int COLOR = 3; + static Font font1 = new Font("serif", Font.BOLD, 38); + static Font font2 = new Font("serif", Font.PLAIN, 24); + static FontMetrics fm1 = Surface.getMetrics(font1); + static FontMetrics fm2 = Surface.getMetrics(font2); + static String table[][] = + {{ "Graphics", "Antialiased rendering", "Bezier paths", + "Transforms", "Compositing", "Stroking parameters" }, + { "Text", "Extended font support", + "Advanced text layout", "Dynamic font loading", + "AttributeSets for font customization" }, + { "Images", "Flexible image layouts", + "Extended imaging operations", + " Convolutions, Lookup Tables", + "RenderableImage interface"}, + { "Color", "ICC profile support", "Color conversion", + "Arbitrary color spaces"} }; + private String list[]; + private int beginning, ending; + private int strH; + private int endIndex, listIndex; + private Vector v = new Vector(); + + + public Features(int type, int beg, int end) { + list = table[type]; + this.beginning = beg; + this.ending = end; + } + + + public void reset(int w, int h) { + strH = (int) (fm2.getAscent()+fm2.getDescent()); + endIndex = 1; + listIndex = 0; + v.clear(); + v.addElement(list[listIndex].substring(0,endIndex)); + } + + + public void step(int w, int h) { + if (listIndex < list.length) { + if (++endIndex > list[listIndex].length()) { + if (++listIndex < list.length) { + endIndex = 1; + v.addElement(list[listIndex].substring(0,endIndex)); + } + } else { + v.set(listIndex, list[listIndex].substring(0,endIndex)); + } + } + } + + + public void render(int w, int h, Graphics2D g2) { + g2.setColor(white); + g2.setFont(font1); + g2.drawString((String) v.get(0), 90, 85); + g2.setFont(font2); + for (int i = 1, y = 90; i < v.size(); i++) { + g2.drawString((String) v.get(i), 120, y += strH); + } + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End Features class + + + + /** + * Scrolling text of Java2D contributors. + */ + static class Contributors implements Part { + + static String members[] = + { + "Brian Lichtenwalter", "Jeannette Hung", + "Thanh Nguyen", "Jim Graham", "Jerry Evans", + "John Raley", "Michael Peirce", "Robert Kim", + "Jennifer Ball", "Deborah Adair", "Paul Charlton", + "Dmitry Feld", "Gregory Stone", "Richard Blanchard", + "Link Perry", "Phil Race", "Vincent Hardy", + "Parry Kejriwal", "Doug Felt", "Rekha Rangarajan", + "Paula Patel", "Michael Bundschuh", "Joe Warzecha", + "Joey Beheler", "Aastha Bhardwaj", "Daniel Rice", + "Chris Campbell", "Shinsuke Fukuda", "Dmitri Trembovetski", + "Chet Haase", "Jennifer Godinez", "Nicholas Talian", + "Raul Vera", "Ankit Patel", "Ilya Bagrak" + }; + static Font font = new Font("serif", Font.PLAIN, 26); + static FontMetrics fm = Surface.getMetrics(font); + private int beginning, ending; + private int nStrs, strH, index, yh, height; + private Vector v = new Vector(); + private Vector cast = new Vector(members.length+3); + private int counter, cntMod; + private GradientPaint gp; + + + public Contributors(int beg, int end) { + this.beginning = beg; + this.ending = end; + java.util.Arrays.sort(members); + cast.addElement("CONTRIBUTORS"); + cast.addElement(" "); + for (int i = 0; i < members.length; i++) { + cast.addElement(members[i]); + } + cast.addElement(" "); cast.addElement(" "); + cntMod = (ending - beginning) / cast.size() - 1; + } + + + public void reset(int w, int h) { + v.clear(); + strH = (int) (fm.getAscent()+fm.getDescent()); + nStrs = (h-40)/strH + 1; + height = strH * (nStrs-1) + 48; + index = 0; + gp = new GradientPaint(0,h/2,Color.white,0,h+20,Color.black); + counter = 0; + } + + + public void step(int w, int h) { + if (counter++%cntMod == 0) { + if (index < cast.size()) { + v.addElement(cast.get(index)); + } + if ((v.size() == nStrs || index >= cast.size()) && v.size() != 0) { + v.removeElementAt(0); + } + ++index; + } + } + + + public void render(int w, int h, Graphics2D g2) { + g2.setPaint(gp); + g2.setFont(font); + double remainder = counter%cntMod; + double incr = 1.0-remainder/cntMod; + incr = incr == 1.0 ? 0 : incr; + int y = (int) (incr * strH); + + if (index >= cast.size()) { + y = yh + y; + } else { + y = yh = height - v.size() * strH + y; + } + for (int i = 0; i < v.size(); i++) { + String s = (String) v.get(i); + g2.drawString(s, w/2-fm.stringWidth(s)/2, y += strH); + } + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End Contributors class + + } // End Surface class +} // End Intro class Added: external/Pygments-0.9/tests/examplefiles/Makefile ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/Makefile Tue Oct 23 20:20:22 2007 @@ -0,0 +1,1131 @@ +# Generated automatically from Makefile.pre by makesetup. +# Top-level Makefile for Python +# +# As distributed, this file is called Makefile.pre.in; it is processed +# into the real Makefile by running the script ./configure, which +# replaces things like @spam@ with values appropriate for your system. +# This means that if you edit Makefile, your changes get lost the next +# time you run the configure script. Ideally, you can do: +# +# ./configure +# make +# make test +# make install +# +# If you have a previous version of Python installed that you don't +# want to overwrite, you can use "make altinstall" instead of "make +# install". Refer to the "Installing" section in the README file for +# additional details. +# +# See also the section "Build instructions" in the README file. + +# === Variables set by makesetup === + +MODOBJS= Modules/threadmodule.o Modules/signalmodule.o Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/zipimport.o Modules/symtablemodule.o Modules/xxsubtype.o +MODLIBS= $(LOCALMODLIBS) $(BASEMODLIBS) + +# === Variables set by configure +VERSION= 2.6 +srcdir= . + + +CC= gcc -pthread +CXX= g++ -pthread +MAINCC= $(CC) +LINKCC= $(PURIFY) $(MAINCC) +AR= ar +RANLIB= ranlib +SVNVERSION= svnversion $(srcdir) + +# Shell used by make (some versions default to the login shell, which is bad) +SHELL= /bin/sh + +# Use this to make a link between python$(VERSION) and python in $(BINDIR) +LN= ln + +# Portable install script (configure doesn't always guess right) +INSTALL= /usr/bin/install -c +INSTALL_PROGRAM=${INSTALL} +INSTALL_SCRIPT= ${INSTALL} +INSTALL_DATA= ${INSTALL} -m 644 +# Shared libraries must be installed with executable mode on some systems; +# rather than figuring out exactly which, we always give them executable mode. +# Also, making them read-only seems to be a good idea... +INSTALL_SHARED= ${INSTALL} -m 555 + +MAKESETUP= $(srcdir)/Modules/makesetup + +# Compiler options +OPT= -g -Wall -Wstrict-prototypes +BASECFLAGS= -fno-strict-aliasing +CFLAGS= $(BASECFLAGS) $(OPT) $(EXTRA_CFLAGS) +# Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to +# be able to build extension modules using the directories specified in the +# environment variables +CPPFLAGS= -I. -I$(srcdir)/Include +LDFLAGS= +LDLAST= +SGI_ABI= +CCSHARED= -fPIC +LINKFORSHARED= -Xlinker -export-dynamic +# Extra C flags added for building the interpreter object files. +CFLAGSFORSHARED= +# C flags used for building the interpreter object files +PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE + + +# Machine-dependent subdirectories +MACHDEP= linux2 + +# Install prefix for architecture-independent files +prefix= /usr/local + +# Install prefix for architecture-dependent files +exec_prefix= ${prefix} + +# Expanded directories +BINDIR= $(exec_prefix)/bin +LIBDIR= $(exec_prefix)/lib +MANDIR= ${prefix}/man +INCLUDEDIR= ${prefix}/include +CONFINCLUDEDIR= $(exec_prefix)/include +SCRIPTDIR= $(prefix)/lib + +# Detailed destination directories +BINLIBDEST= $(LIBDIR)/python$(VERSION) +LIBDEST= $(SCRIPTDIR)/python$(VERSION) +INCLUDEPY= $(INCLUDEDIR)/python$(VERSION) +CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(VERSION) +LIBP= $(LIBDIR)/python$(VERSION) + +# Symbols used for using shared libraries +SO= .so +LDSHARED= $(CC) -shared +BLDSHARED= $(CC) -shared +DESTSHARED= $(BINLIBDEST)/lib-dynload + +# Executable suffix (.exe on Windows and Mac OS X) +EXE= +BUILDEXE= + +# Short name and location for Mac OS X Python framework +UNIVERSALSDK= +PYTHONFRAMEWORK= +PYTHONFRAMEWORKDIR= no-framework +PYTHONFRAMEWORKPREFIX= +PYTHONFRAMEWORKINSTALLDIR= +# Deployment target selected during configure, to be checked +# by distutils. The export statement is needed to ensure that the +# deployment target is active during build. +MACOSX_DEPLOYMENT_TARGET= +#export MACOSX_DEPLOYMENT_TARGET + +# Options to enable prebinding (for fast startup prior to Mac OS X 10.3) +OTHER_LIBTOOL_OPT= + +# Environment to run shared python without installed libraries +RUNSHARED= + +# Modes for directories, executables and data files created by the +# install process. Default to user-only-writable for all file types. +DIRMODE= 755 +EXEMODE= 755 +FILEMODE= 644 + +# configure script arguments +CONFIG_ARGS= '--with-pydebug' + + +# Subdirectories with code +SRCDIRS= Parser Grammar Objects Python Modules Mac + +# Other subdirectories +SUBDIRSTOO= Include Lib Misc Demo + +# Files and directories to be distributed +CONFIGFILES= configure configure.in acconfig.h pyconfig.h.in Makefile.pre.in +DISTFILES= README ChangeLog $(CONFIGFILES) +DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy +DIST= $(DISTFILES) $(DISTDIRS) + + +LIBRARY= libpython$(VERSION).a +LDLIBRARY= libpython$(VERSION).a +BLDLIBRARY= $(LDLIBRARY) +DLLLIBRARY= +LDLIBRARYDIR= +INSTSONAME= $(LDLIBRARY) + + +LIBS= -lpthread -ldl -lutil +LIBM= -lm +LIBC= +SYSLIBS= $(LIBM) $(LIBC) +SHLIBS= $(LIBS) + +THREADOBJ= Python/thread.o +DLINCLDIR= . +DYNLOADFILE= dynload_shlib.o +MACHDEP_OBJS= +UNICODE_OBJS= Objects/unicodeobject.o Objects/unicodectype.o + +PYTHON= python$(EXE) +BUILDPYTHON= python$(BUILDEXE) + +# === Definitions added by makesetup === + +LOCALMODLIBS= +BASEMODLIBS= +GLHACK=-Dclear=__GLclear +PYTHONPATH=$(COREPYTHONPATH) +COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH)$(TKPATH) +TKPATH=:lib-tk +EXTRAMACHDEPPATH= +MACHDEPPATH=:plat-$(MACHDEP) +TESTPATH= +SITEPATH= +DESTPATH= +MACHDESTLIB=$(BINLIBDEST) +DESTLIB=$(LIBDEST) + + + +########################################################################## +# Modules +MODULE_OBJS= \ + Modules/config.o \ + Modules/getpath.o \ + Modules/main.o \ + Modules/gcmodule.o + +# Used of signalmodule.o is not available +SIGNAL_OBJS= + + +########################################################################## +# Grammar +GRAMMAR_H= $(srcdir)/Include/graminit.h +GRAMMAR_C= $(srcdir)/Python/graminit.c +GRAMMAR_INPUT= $(srcdir)/Grammar/Grammar + + +########################################################################## +# Parser +PGEN= Parser/pgen$(EXE) + +POBJS= \ + Parser/acceler.o \ + Parser/grammar1.o \ + Parser/listnode.o \ + Parser/node.o \ + Parser/parser.o \ + Parser/parsetok.o \ + Parser/bitset.o \ + Parser/metagrammar.o \ + Parser/firstsets.o \ + Parser/grammar.o \ + Parser/pgen.o + +PARSER_OBJS= $(POBJS) Parser/myreadline.o Parser/tokenizer.o + +PGOBJS= \ + Objects/obmalloc.o \ + Python/mysnprintf.o \ + Parser/tokenizer_pgen.o \ + Parser/printgrammar.o \ + Parser/pgenmain.o + +PGENOBJS= $(PGENMAIN) $(POBJS) $(PGOBJS) + +########################################################################## +# AST +AST_H_DIR= $(srcdir)/Include +AST_H= $(AST_H_DIR)/Python-ast.h +AST_C_DIR= $(srcdir)/Python +AST_C= $(AST_C_DIR)/Python-ast.c +AST_ASDL= $(srcdir)/Parser/Python.asdl + +ASDLGEN_FILES= $(srcdir)/Parser/asdl.py $(srcdir)/Parser/asdl_c.py +# XXX Note that a build now requires Python exist before the build starts +ASDLGEN= $(srcdir)/Parser/asdl_c.py + +########################################################################## +# Python +PYTHON_OBJS= \ + Python/Python-ast.o \ + Python/asdl.o \ + Python/ast.o \ + Python/bltinmodule.o \ + Python/ceval.o \ + Python/compile.o \ + Python/codecs.o \ + Python/errors.o \ + Python/frozen.o \ + Python/frozenmain.o \ + Python/future.o \ + Python/getargs.o \ + Python/getcompiler.o \ + Python/getcopyright.o \ + Python/getmtime.o \ + Python/getplatform.o \ + Python/getversion.o \ + Python/graminit.o \ + Python/import.o \ + Python/importdl.o \ + Python/marshal.o \ + Python/modsupport.o \ + Python/mystrtoul.o \ + Python/mysnprintf.o \ + Python/peephole.o \ + Python/pyarena.o \ + Python/pyfpe.o \ + Python/pystate.o \ + Python/pythonrun.o \ + Python/structmember.o \ + Python/symtable.o \ + Python/sysmodule.o \ + Python/traceback.o \ + Python/getopt.o \ + Python/pystrtod.o \ + Python/$(DYNLOADFILE) \ + $(MACHDEP_OBJS) \ + $(THREADOBJ) + + +########################################################################## +# Objects +OBJECT_OBJS= \ + Objects/abstract.o \ + Objects/boolobject.o \ + Objects/bufferobject.o \ + Objects/cellobject.o \ + Objects/classobject.o \ + Objects/cobject.o \ + Objects/codeobject.o \ + Objects/complexobject.o \ + Objects/descrobject.o \ + Objects/enumobject.o \ + Objects/exceptions.o \ + Objects/genobject.o \ + Objects/fileobject.o \ + Objects/floatobject.o \ + Objects/frameobject.o \ + Objects/funcobject.o \ + Objects/intobject.o \ + Objects/iterobject.o \ + Objects/listobject.o \ + Objects/longobject.o \ + Objects/dictobject.o \ + Objects/methodobject.o \ + Objects/moduleobject.o \ + Objects/object.o \ + Objects/obmalloc.o \ + Objects/rangeobject.o \ + Objects/setobject.o \ + Objects/sliceobject.o \ + Objects/stringobject.o \ + Objects/structseq.o \ + Objects/tupleobject.o \ + Objects/typeobject.o \ + Objects/weakrefobject.o \ + $(UNICODE_OBJS) + + +########################################################################## +# objects that get linked into the Python library +LIBRARY_OBJS= \ + Modules/_typesmodule.o \ + Modules/getbuildinfo.o \ + $(PARSER_OBJS) \ + $(OBJECT_OBJS) \ + $(PYTHON_OBJS) \ + $(MODULE_OBJS) \ + $(SIGNAL_OBJS) \ + $(MODOBJS) + +######################################################################### +# Rules + +# Default target +all: $(BUILDPYTHON) oldsharedmods sharedmods + +# Build the interpreter +$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) + $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \ + Modules/python.o \ + $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) + +platform: $(BUILDPYTHON) + $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform + + +# Build the shared modules +sharedmods: $(BUILDPYTHON) + @case $$MAKEFLAGS in \ + *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \ + *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ + esac + +# Build static library +# avoid long command lines, same as LIBRARY_OBJS +$(LIBRARY): $(LIBRARY_OBJS) + -rm -f $@ + $(AR) cr $@ Modules/getbuildinfo.o + $(AR) cr $@ Modules/_typesmodule.o + $(AR) cr $@ $(PARSER_OBJS) + $(AR) cr $@ $(OBJECT_OBJS) + $(AR) cr $@ $(PYTHON_OBJS) + $(AR) cr $@ $(MODULE_OBJS) $(SIGNAL_OBJS) + $(AR) cr $@ $(MODOBJS) + $(RANLIB) $@ + +libpython$(VERSION).so: $(LIBRARY_OBJS) + if test $(INSTSONAME) != $(LDLIBRARY); then \ + $(LDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ + $(LN) -f $(INSTSONAME) $@; \ + else\ + $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ + fi + +libpython$(VERSION).sl: $(LIBRARY_OBJS) + $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) + +# This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary +# minimal framework (not including the Lib directory and such) in the current +# directory. +RESSRCDIR=$(srcdir)/Mac/Resources/framework +$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \ + $(LIBRARY) \ + $(RESSRCDIR)/Info.plist \ + $(RESSRCDIR)/version.plist \ + $(RESSRCDIR)/English.lproj/InfoPlist.strings + $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION) + if test "${UNIVERSALSDK}"; then \ + $(CC) -o $(LDLIBRARY) -arch i386 -arch ppc -dynamiclib \ + -isysroot "${UNIVERSALSDK}" \ + -all_load $(LIBRARY) -Wl,-single_module \ + -install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python \ + -compatibility_version $(VERSION) \ + -current_version $(VERSION); \ + else \ + libtool -o $(LDLIBRARY) -dynamic $(OTHER_LIBTOOL_OPT) $(LIBRARY) \ + ;\ + fi + $(INSTALL) -d -m $(DIRMODE) \ + $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj + $(INSTALL_DATA) $(RESSRCDIR)/Info.plist \ + $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist + $(INSTALL_DATA) $(RESSRCDIR)/version.plist \ + $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/version.plist + $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \ + $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj/InfoPlist.strings + $(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current + $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK) + $(LN) -fsn Versions/Current/Headers $(PYTHONFRAMEWORKDIR)/Headers + $(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources + +# This rule builds the Cygwin Python DLL and import library if configured +# for a shared core library; otherwise, this rule is a noop. +$(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS) + if test -n "$(DLLLIBRARY)"; then \ + $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \ + $(LIBS) $(MODLIBS) $(SYSLIBS); \ + else true; \ + fi + + +oldsharedmods: $(SHAREDMODS) + + +Makefile Modules/config.c: Makefile.pre \ + $(srcdir)/Modules/config.c.in \ + $(MAKESETUP) \ + Modules/Setup.config \ + Modules/Setup \ + Modules/Setup.local + $(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \ + -s Modules \ + Modules/Setup.config \ + Modules/Setup.local \ + Modules/Setup + @mv config.c Modules + @echo "The Makefile was updated, you may need to re-run make." + + +Modules/Setup: $(srcdir)/Modules/Setup.dist + @if test -f Modules/Setup; then \ + echo "-----------------------------------------------"; \ + echo "Modules/Setup.dist is newer than Modules/Setup;"; \ + echo "check to make sure you have all the updates you"; \ + echo "need in your Modules/Setup file."; \ + echo "Usually, copying Setup.dist to Setup will work."; \ + echo "-----------------------------------------------"; \ + fi + +############################################################################ +# Special rules for object files + +Modules/getbuildinfo.o: $(PARSER_OBJS) \ + $(OBJECT_OBJS) \ + $(PYTHON_OBJS) \ + $(MODULE_OBJS) \ + $(SIGNAL_OBJS) \ + $(MODOBJS) \ + $(srcdir)/Modules/getbuildinfo.c + $(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LC_ALL=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c + +Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile + $(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \ + -DPREFIX='"$(prefix)"' \ + -DEXEC_PREFIX='"$(exec_prefix)"' \ + -DVERSION='"$(VERSION)"' \ + -DVPATH='"$(VPATH)"' \ + -o $@ $(srcdir)/Modules/getpath.c + +Modules/python.o: $(srcdir)/Modules/python.c + $(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c + + +$(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) + -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) + +$(PGEN): $(PGENOBJS) + $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) + +Parser/grammar.o: $(srcdir)/Parser/grammar.c \ + $(srcdir)/Include/token.h \ + $(srcdir)/Include/grammar.h +Parser/metagrammar.o: $(srcdir)/Parser/metagrammar.c + +Parser/tokenizer_pgen.o: $(srcdir)/Parser/tokenizer.c + +Parser/pgenmain.o: $(srcdir)/Include/parsetok.h + +$(AST_H): $(AST_ASDL) $(ASDLGEN_FILES) + $(ASDLGEN) -h $(AST_H_DIR) $(AST_ASDL) + +$(AST_C): $(AST_ASDL) $(ASDLGEN_FILES) + $(ASDLGEN) -c $(AST_C_DIR) $(AST_ASDL) + +Python/compile.o Python/symtable.o: $(GRAMMAR_H) $(AST_H) + +Python/getplatform.o: $(srcdir)/Python/getplatform.c + $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c + +Python/importdl.o: $(srcdir)/Python/importdl.c + $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c + +Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \ + $(srcdir)/Objects/unicodetype_db.h + +############################################################################ +# Header files + +PYTHON_HEADERS= \ + Include/Python.h \ + Include/Python-ast.h \ + Include/asdl.h \ + Include/abstract.h \ + Include/boolobject.h \ + Include/bufferobject.h \ + Include/ceval.h \ + Include/classobject.h \ + Include/cobject.h \ + Include/code.h \ + Include/codecs.h \ + Include/compile.h \ + Include/complexobject.h \ + Include/descrobject.h \ + Include/dictobject.h \ + Include/enumobject.h \ + Include/genobject.h \ + Include/fileobject.h \ + Include/floatobject.h \ + Include/funcobject.h \ + Include/import.h \ + Include/intobject.h \ + Include/intrcheck.h \ + Include/iterobject.h \ + Include/listobject.h \ + Include/longobject.h \ + Include/methodobject.h \ + Include/modsupport.h \ + Include/moduleobject.h \ + Include/object.h \ + Include/objimpl.h \ + Include/parsetok.h \ + Include/patchlevel.h \ + Include/pyarena.h \ + Include/pydebug.h \ + Include/pyerrors.h \ + Include/pyfpe.h \ + Include/pymem.h \ + Include/pyport.h \ + Include/pystate.h \ + Include/pythonrun.h \ + Include/rangeobject.h \ + Include/setobject.h \ + Include/sliceobject.h \ + Include/stringobject.h \ + Include/structseq.h \ + Include/structmember.h \ + Include/symtable.h \ + Include/sysmodule.h \ + Include/traceback.h \ + Include/tupleobject.h \ + Include/unicodeobject.h \ + Include/weakrefobject.h \ + pyconfig.h + +$(LIBRARY_OBJS) $(MODOBJS) Modules/python.o: $(PYTHON_HEADERS) + + +###################################################################### + +# Test the interpreter (twice, once without .pyc files, once with) +# In the past, we've had problems where bugs in the marshalling or +# elsewhere caused bytecode read from .pyc files to behave differently +# than bytecode generated directly from a .py source file. Sometimes +# the bytecode read from a .pyc file had the bug, somtimes the directly +# generated bytecode. This is sometimes a very shy bug needing a lot of +# sample data. + +TESTOPTS= -l $(EXTRATESTOPTS) +TESTPROG= $(srcdir)/Lib/test/regrtest.py +TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) -E -tt +test: all platform + -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f + -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS) + $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) + +testall: all platform + -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f + -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall + $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall + +# Run the unitests for both architectures in a Universal build on OSX +# Must be run on an Intel box. +testuniversal: all platform + if [ `arch` != 'i386' ];then \ + echo "This can only be used on OSX/i386" ;\ + exit 1 ;\ + fi + -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f + -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall + $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall + $(RUNSHARED) /usr/libexec/oah/translate ./$(BUILDPYTHON) -E -tt $(TESTPROG) $(TESTOPTS) -uall + + +# Like testall, but with a single pass only +buildbottest: all platform + $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall -rw + +QUICKTESTOPTS= $(TESTOPTS) -x test_thread test_signal test_strftime \ + test_unicodedata test_re test_sre test_select test_poll \ + test_linuxaudiodev test_struct test_sunaudiodev test_zlib +quicktest: all platform + -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f + -$(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS) + $(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS) + +MEMTESTOPTS= $(QUICKTESTOPTS) -x test_dl test___all__ test_fork1 \ + test_longexp +memtest: all platform + -rm -f $(srcdir)/Lib/test/*.py[co] + -$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS) + $(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS) + +# Install everything +install: altinstall bininstall maninstall + +# Install almost everything without disturbing previous versions +altinstall: altbininstall libinstall inclinstall libainstall \ + sharedinstall oldsharedinstall + +# Install shared libraries enabled by Setup +DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED) + +oldsharedinstall: $(DESTSHARED) $(SHAREDMODS) + @for i in X $(SHAREDMODS); do \ + if test $$i != X; then \ + echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \ + $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \ + fi; \ + done + +$(DESTSHARED): + @for i in $(DESTDIRS); \ + do \ + if test ! -d $(DESTDIR)$$i; then \ + echo "Creating directory $$i"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ + else true; \ + fi; \ + done + + +# Install the interpreter (by creating a hard link to python$(VERSION)) +bininstall: altbininstall + -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \ + then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \ + else true; \ + fi + (cd $(DESTDIR)$(BINDIR); $(LN) python$(VERSION)$(EXE) $(PYTHON)) + (cd $(DESTDIR)$(BINDIR); $(LN) -sf python$(VERSION)-config python-config) + +# Install the interpreter with $(VERSION) affixed +# This goes into $(exec_prefix) +altbininstall: $(BUILDPYTHON) + @for i in $(BINDIR) $(LIBDIR); \ + do \ + if test ! -d $(DESTDIR)$$i; then \ + echo "Creating directory $$i"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ + else true; \ + fi; \ + done + $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE) + if test -f libpython$(VERSION)$(SO); then \ + if test "$(SO)" = .dll; then \ + $(INSTALL_SHARED) libpython$(VERSION)$(SO) $(DESTDIR)$(BINDIR); \ + else \ + $(INSTALL_SHARED) libpython$(VERSION)$(SO) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \ + if test libpython$(VERSION)$(SO) != $(INSTSONAME); then \ + (cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) libpython$(VERSION)$(SO)); \ + fi \ + fi; \ + else true; \ + fi + +# Install the manual page +maninstall: + @for i in $(MANDIR) $(MANDIR)/man1; \ + do \ + if test ! -d $(DESTDIR)$$i; then \ + echo "Creating directory $$i"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ + else true; \ + fi; \ + done + $(INSTALL_DATA) $(srcdir)/Misc/python.man \ + $(DESTDIR)$(MANDIR)/man1/python.1 + +# Install the library +PLATDIR= plat-$(MACHDEP) +EXTRAPLATDIR= +EXTRAMACHDEPPATH= +MACHDEPS= $(PLATDIR) $(EXTRAPLATDIR) +XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax +PLATMACDIRS= plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages \ + plat-mac/lib-scriptpackages/_builtinSuites \ + plat-mac/lib-scriptpackages/CodeWarrior \ + plat-mac/lib-scriptpackages/Explorer \ + plat-mac/lib-scriptpackages/Finder \ + plat-mac/lib-scriptpackages/Netscape \ + plat-mac/lib-scriptpackages/StdSuites \ + plat-mac/lib-scriptpackages/SystemEvents \ + plat-mac/lib-scriptpackages/Terminal +PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages +LIBSUBDIRS= lib-tk site-packages test test/output test/data \ + test/decimaltestdata \ + encodings compiler hotshot \ + email email/mime email/test email/test/data \ + sqlite3 sqlite3/test \ + logging bsddb bsddb/test csv wsgiref \ + ctypes ctypes/test ctypes/macholib idlelib idlelib/Icons \ + distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \ + setuptools setuptools/command setuptools/tests setuptools.egg-info \ + curses $(MACHDEPS) +libinstall: $(BUILDPYTHON) $(srcdir)/Lib/$(PLATDIR) + @for i in $(SCRIPTDIR) $(LIBDEST); \ + do \ + if test ! -d $(DESTDIR)$$i; then \ + echo "Creating directory $$i"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ + else true; \ + fi; \ + done + @for d in $(LIBSUBDIRS); \ + do \ + a=$(srcdir)/Lib/$$d; \ + if test ! -d $$a; then continue; else true; fi; \ + b=$(LIBDEST)/$$d; \ + if test ! -d $(DESTDIR)$$b; then \ + echo "Creating directory $$b"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$b; \ + else true; \ + fi; \ + done + @for i in $(srcdir)/Lib/*.py $(srcdir)/Lib/*.doc $(srcdir)/Lib/*.egg-info ; \ + do \ + if test -x $$i; then \ + $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \ + echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \ + else \ + $(INSTALL_DATA) $$i $(DESTDIR)$(LIBDEST); \ + echo $(INSTALL_DATA) $$i $(LIBDEST); \ + fi; \ + done + @for d in $(LIBSUBDIRS); \ + do \ + a=$(srcdir)/Lib/$$d; \ + if test ! -d $$a; then continue; else true; fi; \ + if test `ls $$a | wc -l` -lt 1; then continue; fi; \ + b=$(LIBDEST)/$$d; \ + for i in $$a/*; \ + do \ + case $$i in \ + *CVS) ;; \ + *.py[co]) ;; \ + *.orig) ;; \ + *~) ;; \ + *) \ + if test -d $$i; then continue; fi; \ + if test -x $$i; then \ + echo $(INSTALL_SCRIPT) $$i $$b; \ + $(INSTALL_SCRIPT) $$i $(DESTDIR)$$b; \ + else \ + echo $(INSTALL_DATA) $$i $$b; \ + $(INSTALL_DATA) $$i $(DESTDIR)$$b; \ + fi;; \ + esac; \ + done; \ + done + $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt + PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f \ + -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST) + PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f \ + -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + +# Create the PLATDIR source directory, if one wasn't distributed.. +$(srcdir)/Lib/$(PLATDIR): + mkdir $(srcdir)/Lib/$(PLATDIR) + cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen + export PATH; PATH="`pwd`:$$PATH"; \ + export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \ + export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \ + export EXE; EXE="$(BUILDEXE)"; \ + cd $(srcdir)/Lib/$(PLATDIR); ./regen + +# Install the include files +INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY) +inclinstall: + @for i in $(INCLDIRSTOMAKE); \ + do \ + if test ! -d $(DESTDIR)$$i; then \ + echo "Creating directory $$i"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ + else true; \ + fi; \ + done + @for i in $(srcdir)/Include/*.h; \ + do \ + echo $(INSTALL_DATA) $$i $(INCLUDEPY); \ + $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \ + done + $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h + +# Install the library and miscellaneous stuff needed for extending/embedding +# This goes into $(exec_prefix) +LIBPL= $(LIBP)/config +libainstall: all + @for i in $(LIBDIR) $(LIBP) $(LIBPL); \ + do \ + if test ! -d $(DESTDIR)$$i; then \ + echo "Creating directory $$i"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ + else true; \ + fi; \ + done + @if test -d $(LIBRARY); then :; else \ + if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ + if test "$(SO)" = .dll; then \ + $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \ + else \ + $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ + $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ + fi; \ + else \ + echo Skip install of $(LIBRARY) - use make frameworkinstall; \ + fi; \ + fi + $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c + $(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o + $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in + $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile + $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup + $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local + $(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config + $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup + $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh + # Substitution happens here, as the completely-expanded BINDIR + # is not available in configure + sed -e "s, at EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config + $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config + rm python-config + @if [ -s Modules/python.exp -a \ + "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ + echo; echo "Installing support files for building shared extension modules on AIX:"; \ + $(INSTALL_DATA) Modules/python.exp \ + $(DESTDIR)$(LIBPL)/python.exp; \ + echo; echo "$(LIBPL)/python.exp"; \ + $(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix \ + $(DESTDIR)$(LIBPL)/makexp_aix; \ + echo "$(LIBPL)/makexp_aix"; \ + $(INSTALL_SCRIPT) $(srcdir)/Modules/ld_so_aix \ + $(DESTDIR)$(LIBPL)/ld_so_aix; \ + echo "$(LIBPL)/ld_so_aix"; \ + echo; echo "See Misc/AIX-NOTES for details."; \ + else true; \ + fi + @case "$(MACHDEP)" in beos*) \ + echo; echo "Installing support files for building shared extension modules on BeOS:"; \ + $(INSTALL_DATA) Misc/BeOS-NOTES $(DESTDIR)$(LIBPL)/README; \ + echo; echo "$(LIBPL)/README"; \ + $(INSTALL_SCRIPT) Modules/ar_beos $(DESTDIR)$(LIBPL)/ar_beos; \ + echo "$(LIBPL)/ar_beos"; \ + $(INSTALL_SCRIPT) Modules/ld_so_beos $(DESTDIR)$(LIBPL)/ld_so_beos; \ + echo "$(LIBPL)/ld_so_beos"; \ + echo; echo "See Misc/BeOS-NOTES for details."; \ + ;; \ + esac + +# Install the dynamically loadable modules +# This goes into $(exec_prefix) +sharedinstall: + $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \ + --prefix=$(prefix) \ + --install-scripts=$(BINDIR) \ + --install-platlib=$(DESTSHARED) \ + --root=/$(DESTDIR) + +# Here are a couple of targets for MacOSX again, to install a full +# framework-based Python. frameworkinstall installs everything, the +# subtargets install specific parts. Much of the actual work is offloaded to +# the Makefile in Mac +# +# +# This target is here for backward compatiblity, previous versions of Python +# hadn't integrated framework installation in the normal install process. +frameworkinstall: install + +# On install, we re-make the framework +# structure in the install location, /Library/Frameworks/ or the argument to +# --enable-framework. If --enable-framework has been specified then we have +# automatically set prefix to the location deep down in the framework, so we +# only have to cater for the structural bits of the framework. + +frameworkinstallframework: frameworkinstallstructure install frameworkinstallmaclib + +frameworkinstallstructure: $(LDLIBRARY) + @if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ + echo Not configured with --enable-framework; \ + exit 1; \ + else true; \ + fi + @for i in $(prefix)/Resources/English.lproj $(prefix)/lib; do\ + if test ! -d $(DESTDIR)$$i; then \ + echo "Creating directory $(DESTDIR)$$i"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ + else true; \ + fi; \ + done + $(LN) -fsn include/python$(VERSION) $(DESTDIR)$(prefix)/Headers + $(INSTALL_DATA) $(RESSRCDIR)/Info.plist $(DESTDIR)$(prefix)/Resources/Info.plist + $(INSTALL_DATA) $(RESSRCDIR)/version.plist $(DESTDIR)$(prefix)/Resources/version.plist + $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \ + $(DESTDIR)$(prefix)/Resources/English.lproj/InfoPlist.strings + $(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current + $(LN) -fsn Versions/Current/Python $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Python + $(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers + $(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources + $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY) + +# This installs Mac/Lib into the framework +# Install a number of symlinks to keep software that expects a normal unix +# install (which includes python-config) happy. +frameworkinstallmaclib: + ln -fs "../../../Python" "$(DESTDIR)$(prefix)/lib/python$(VERSION)/config/libpython$(VERSION).a" + cd Mac && $(MAKE) installmacsubtree DESTDIR="$(DESTDIR)" + +# This installs the IDE, the Launcher and other apps into /Applications +frameworkinstallapps: + cd Mac && $(MAKE) installapps DESTDIR="$(DESTDIR)" + +# This install the unix python and pythonw tools in /usr/local/bin +frameworkinstallunixtools: + cd Mac && $(MAKE) installunixtools DESTDIR="$(DESTDIR)" + +frameworkaltinstallunixtools: + cd Mac && $(MAKE) altinstallunixtools DESTDIR="$(DESTDIR)" + +# This installs the Demos and Tools into the applications directory. +# It is not part of a normal frameworkinstall +frameworkinstallextras: + cd Mac && Make installextras DESTDIR="$(DESTDIR)" + +# This installs a few of the useful scripts in Tools/scripts +scriptsinstall: + SRCDIR=$(srcdir) $(RUNSHARED) \ + ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/setup.py install \ + --prefix=$(prefix) \ + --install-scripts=$(BINDIR) \ + --root=/$(DESTDIR) + +# Build the toplevel Makefile +Makefile.pre: Makefile.pre.in config.status + CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status + $(MAKE) -f Makefile.pre Makefile + +# Run the configure script. +config.status: $(srcdir)/configure + $(SHELL) $(srcdir)/configure $(CONFIG_ARGS) + +.PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre + +# Some make's put the object file in the current directory +.c.o: + $(CC) -c $(PY_CFLAGS) -o $@ $< + +# Run reindent on the library +reindent: + ./python$(EXEEXT) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib + +# Rerun configure with the same options as it was run last time, +# provided the config.status script exists +recheck: + $(SHELL) config.status --recheck + $(SHELL) config.status + +# Rebuild the configure script from configure.in; also rebuild pyconfig.h.in +autoconf: + (cd $(srcdir); autoconf) + (cd $(srcdir); autoheader) + +# Create a tags file for vi +tags:: + cd $(srcdir); \ + ctags -w -t Include/*.h; \ + for i in $(SRCDIRS); do ctags -w -t -a $$i/*.[ch]; \ + done; \ + sort -o tags tags + +# Create a tags file for GNU Emacs +TAGS:: + cd $(srcdir); \ + etags Include/*.h; \ + for i in $(SRCDIRS); do etags -a $$i/*.[ch]; done + +# Sanitation targets -- clean leaves libraries, executables and tags +# files, which clobber removes those as well +pycremoval: + find $(srcdir) -name '*.py[co]' -exec rm -f {} ';' + +clean: pycremoval + find . -name '*.o' -exec rm -f {} ';' + find . -name '*.s[ol]' -exec rm -f {} ';' + find $(srcdir)/build -name 'fficonfig.h' -exec rm -f {} ';' || true + find $(srcdir)/build -name 'fficonfig.py' -exec rm -f {} ';' || true + +clobber: clean + -rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \ + tags TAGS \ + config.cache config.log pyconfig.h Modules/config.c + -rm -rf build platform + -rm -rf $(PYTHONFRAMEWORKDIR) + +# Make things extra clean, before making a distribution: +# remove all generated files, even Makefile[.pre] +# Keep configure and Python-ast.[ch], it's possible they can't be generated +distclean: clobber + -rm -f core Makefile Makefile.pre config.status \ + Modules/Setup Modules/Setup.local Modules/Setup.config + find $(srcdir) '(' -name '*.fdc' -o -name '*~' \ + -o -name '[@,#]*' -o -name '*.old' \ + -o -name '*.orig' -o -name '*.rej' \ + -o -name '*.bak' ')' \ + -exec rm -f {} ';' + +# Check for smelly exported symbols (not starting with Py/_Py) +smelly: all + nm -p $(LIBRARY) | \ + sed -n "/ [TDB] /s/.* //p" | grep -v "^_*Py" | sort -u; \ + +# Find files with funny names +funny: + find $(DISTDIRS) -type d \ + -o -name '*.[chs]' \ + -o -name '*.py' \ + -o -name '*.doc' \ + -o -name '*.sty' \ + -o -name '*.bib' \ + -o -name '*.dat' \ + -o -name '*.el' \ + -o -name '*.fd' \ + -o -name '*.in' \ + -o -name '*.tex' \ + -o -name '*,[vpt]' \ + -o -name 'Setup' \ + -o -name 'Setup.*' \ + -o -name README \ + -o -name Makefile \ + -o -name ChangeLog \ + -o -name Repository \ + -o -name Root \ + -o -name Entries \ + -o -name Tag \ + -o -name tags \ + -o -name TAGS \ + -o -name .cvsignore \ + -o -name MANIFEST \ + -o -print + +# Dependencies + +Python/thread.o: $(srcdir)/Python/thread_atheos.h $(srcdir)/Python/thread_beos.h $(srcdir)/Python/thread_cthread.h $(srcdir)/Python/thread_foobar.h $(srcdir)/Python/thread_lwp.h $(srcdir)/Python/thread_nt.h $(srcdir)/Python/thread_os2.h $(srcdir)/Python/thread_pth.h $(srcdir)/Python/thread_pthread.h $(srcdir)/Python/thread_sgi.h $(srcdir)/Python/thread_solaris.h $(srcdir)/Python/thread_wince.h + +# Declare targets that aren't real files +.PHONY: all sharedmods oldsharedmods test quicktest memtest +.PHONY: install altinstall oldsharedinstall bininstall altbininstall +.PHONY: maninstall libinstall inclinstall libainstall sharedinstall +.PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure +.PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools +.PHONY: frameworkaltinstallunixtools recheck autoconf clean clobber distclean +.PHONY: smelly funny + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY + +# Rules appended by makedepend + +Modules/threadmodule.o: $(srcdir)/Modules/threadmodule.c; $(CC) $(PY_CFLAGS) -c $(srcdir)/Modules/threadmodule.c -o Modules/threadmodule.o +Modules/threadmodule$(SO): Modules/threadmodule.o; $(LDSHARED) Modules/threadmodule.o -o Modules/threadmodule$(SO) +Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c; $(CC) $(PY_CFLAGS) -c $(srcdir)/Modules/signalmodule.c -o Modules/signalmodule.o +Modules/signalmodule$(SO): Modules/signalmodule.o; $(LDSHARED) Modules/signalmodule.o -o Modules/signalmodule$(SO) +Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c; $(CC) $(PY_CFLAGS) -c $(srcdir)/Modules/posixmodule.c -o Modules/posixmodule.o +Modules/posixmodule$(SO): Modules/posixmodule.o; $(LDSHARED) Modules/posixmodule.o -o Modules/posixmodule$(SO) +Modules/errnomodule.o: $(srcdir)/Modules/errnomodule.c; $(CC) $(PY_CFLAGS) -c $(srcdir)/Modules/errnomodule.c -o Modules/errnomodule.o +Modules/errnomodule$(SO): Modules/errnomodule.o; $(LDSHARED) Modules/errnomodule.o -o Modules/errnomodule$(SO) +Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c; $(CC) $(PY_CFLAGS) -c $(srcdir)/Modules/pwdmodule.c -o Modules/pwdmodule.o +Modules/pwdmodule$(SO): Modules/pwdmodule.o; $(LDSHARED) Modules/pwdmodule.o -o Modules/pwdmodule$(SO) +Modules/_sre.o: $(srcdir)/Modules/_sre.c; $(CC) $(PY_CFLAGS) -c $(srcdir)/Modules/_sre.c -o Modules/_sre.o +Modules/_sre$(SO): Modules/_sre.o; $(LDSHARED) Modules/_sre.o -o Modules/_sre$(SO) +Modules/_codecsmodule.o: $(srcdir)/Modules/_codecsmodule.c; $(CC) $(PY_CFLAGS) -c $(srcdir)/Modules/_codecsmodule.c -o Modules/_codecsmodule.o +Modules/_codecsmodule$(SO): Modules/_codecsmodule.o; $(LDSHARED) Modules/_codecsmodule.o -o Modules/_codecsmodule$(SO) +Modules/zipimport.o: $(srcdir)/Modules/zipimport.c; $(CC) $(PY_CFLAGS) -c $(srcdir)/Modules/zipimport.c -o Modules/zipimport.o +Modules/zipimport$(SO): Modules/zipimport.o; $(LDSHARED) Modules/zipimport.o -o Modules/zipimport$(SO) +Modules/symtablemodule.o: $(srcdir)/Modules/symtablemodule.c; $(CC) $(PY_CFLAGS) -c $(srcdir)/Modules/symtablemodule.c -o Modules/symtablemodule.o +Modules/_symtablemodule$(SO): Modules/symtablemodule.o; $(LDSHARED) Modules/symtablemodule.o -o Modules/_symtablemodule$(SO) +Modules/xxsubtype.o: $(srcdir)/Modules/xxsubtype.c; $(CC) $(PY_CFLAGS) -c $(srcdir)/Modules/xxsubtype.c -o Modules/xxsubtype.o +Modules/xxsubtype$(SO): Modules/xxsubtype.o; $(LDSHARED) Modules/xxsubtype.o -o Modules/xxsubtype$(SO) Added: external/Pygments-0.9/tests/examplefiles/SmallCheck.hs ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/SmallCheck.hs Tue Oct 23 20:20:22 2007 @@ -0,0 +1,378 @@ +--------------------------------------------------------------------- +-- SmallCheck: another lightweight testing library. +-- Colin Runciman, August 2006 +-- Version 0.2 (November 2006) +-- +-- After QuickCheck, by Koen Claessen and John Hughes (2000-2004). +--------------------------------------------------------------------- + +module SmallCheck ( + smallCheck, depthCheck, + Property, Testable, + forAll, forAllElem, + exists, existsDeeperBy, thereExists, thereExistsElem, + (==>), + Series, Serial(..), + (\/), (><), two, three, four, + cons0, cons1, cons2, cons3, cons4, + alts0, alts1, alts2, alts3, alts4, + N(..), Nat, Natural, + depth, inc, dec + ) where + +import Data.List (intersperse) +import Control.Monad (when) +import System.IO (stdout, hFlush) + +------------------ ----------------- + +-- Series arguments should be interpreted as a depth bound (>=0) +-- Series results should have finite length + +type Series a = Int -> [a] + +-- sum +infixr 7 \/ +(\/) :: Series a -> Series a -> Series a +s1 \/ s2 = \d -> s1 d ++ s2 d + +-- product +infixr 8 >< +(><) :: Series a -> Series b -> Series (a,b) +s1 >< s2 = \d -> [(x,y) | x <- s1 d, y <- s2 d] + +------------------- ------------------ + +-- enumerated data values should be finite and fully defined +-- enumerated functional values should be total and strict + +-- bounds: +-- for data values, the depth of nested constructor applications +-- for functional values, both the depth of nested case analysis +-- and the depth of results + +class Serial a where + series :: Series a + coseries :: Serial b => Series (a->b) + +instance Serial () where + series _ = [()] + coseries d = [ \() -> b + | b <- series d ] + +instance Serial Int where + series d = [(-d)..d] + coseries d = [ \i -> if i > 0 then f (N (i - 1)) + else if i < 0 then g (N (abs i - 1)) + else z + | z <- alts0 d, f <- alts1 d, g <- alts1 d ] + +instance Serial Integer where + series d = [ toInteger (i :: Int) + | i <- series d ] + coseries d = [ f . (fromInteger :: Integer->Int) + | f <- series d ] + +newtype N a = N a + +instance Show a => Show (N a) where + show (N i) = show i + +instance (Integral a, Serial a) => Serial (N a) where + series d = map N [0..d'] + where + d' = fromInteger (toInteger d) + coseries d = [ \(N i) -> if i > 0 then f (N (i - 1)) + else z + | z <- alts0 d, f <- alts1 d ] + +type Nat = N Int +type Natural = N Integer + +instance Serial Float where + series d = [ encodeFloat sig exp + | (sig,exp) <- series d, + odd sig || sig==0 && exp==0 ] + coseries d = [ f . decodeFloat + | f <- series d ] + +instance Serial Double where + series d = [ frac (x :: Float) + | x <- series d ] + coseries d = [ f . (frac :: Double->Float) + | f <- series d ] + +frac :: (Real a, Fractional a, Real b, Fractional b) => a -> b +frac = fromRational . toRational + +instance Serial Char where + series d = take (d+1) ['a'..'z'] + coseries d = [ \c -> f (N (fromEnum c - fromEnum 'a')) + | f <- series d ] + +instance (Serial a, Serial b) => + Serial (a,b) where + series = series >< series + coseries = map uncurry . coseries + +instance (Serial a, Serial b, Serial c) => + Serial (a,b,c) where + series = \d -> [(a,b,c) | (a,(b,c)) <- series d] + coseries = map uncurry3 . coseries + +instance (Serial a, Serial b, Serial c, Serial d) => + Serial (a,b,c,d) where + series = \d -> [(a,b,c,d) | (a,(b,(c,d))) <- series d] + coseries = map uncurry4 . coseries + +uncurry3 :: (a->b->c->d) -> ((a,b,c)->d) +uncurry3 f (x,y,z) = f x y z + +uncurry4 :: (a->b->c->d->e) -> ((a,b,c,d)->e) +uncurry4 f (w,x,y,z) = f w x y z + +two :: Series a -> Series (a,a) +two s = s >< s + +three :: Series a -> Series (a,a,a) +three s = \d -> [(x,y,z) | (x,(y,z)) <- (s >< s >< s) d] + +four :: Series a -> Series (a,a,a,a) +four s = \d -> [(w,x,y,z) | (w,(x,(y,z))) <- (s >< s >< s >< s) d] + +cons0 :: + a -> Series a +cons0 c _ = [c] + +cons1 :: Serial a => + (a->b) -> Series b +cons1 c d = [c z | d > 0, z <- series (d-1)] + +cons2 :: (Serial a, Serial b) => + (a->b->c) -> Series c +cons2 c d = [c y z | d > 0, (y,z) <- series (d-1)] + +cons3 :: (Serial a, Serial b, Serial c) => + (a->b->c->d) -> Series d +cons3 c d = [c x y z | d > 0, (x,y,z) <- series (d-1)] + +cons4 :: (Serial a, Serial b, Serial c, Serial d) => + (a->b->c->d->e) -> Series e +cons4 c d = [c w x y z | d > 0, (w,x,y,z) <- series (d-1)] + +alts0 :: Serial a => + Series a +alts0 d = series d + +alts1 :: (Serial a, Serial b) => + Series (a->b) +alts1 d = if d > 0 then series (dec d) + else [\_ -> x | x <- series d] + +alts2 :: (Serial a, Serial b, Serial c) => + Series (a->b->c) +alts2 d = if d > 0 then series (dec d) + else [\_ _ -> x | x <- series d] + +alts3 :: (Serial a, Serial b, Serial c, Serial d) => + Series (a->b->c->d) +alts3 d = if d > 0 then series (dec d) + else [\_ _ _ -> x | x <- series d] + +alts4 :: (Serial a, Serial b, Serial c, Serial d, Serial e) => + Series (a->b->c->d->e) +alts4 d = if d > 0 then series (dec d) + else [\_ _ _ _ -> x | x <- series d] + +instance Serial Bool where + series = cons0 True \/ cons0 False + coseries d = [ \x -> if x then b1 else b2 + | (b1,b2) <- series d ] + +instance Serial a => Serial (Maybe a) where + series = cons0 Nothing \/ cons1 Just + coseries d = [ \m -> case m of + Nothing -> z + Just x -> f x + | z <- alts0 d , + f <- alts1 d ] + +instance (Serial a, Serial b) => Serial (Either a b) where + series = cons1 Left \/ cons1 Right + coseries d = [ \e -> case e of + Left x -> f x + Right y -> g y + | f <- alts1 d , + g <- alts1 d ] + +instance Serial a => Serial [a] where + series = cons0 [] \/ cons2 (:) + coseries d = [ \xs -> case xs of + [] -> y + (x:xs') -> f x xs' + | y <- alts0 d , + f <- alts2 d ] + +-- Warning: the coseries instance here may generate duplicates. +instance (Serial a, Serial b) => Serial (a->b) where + series = coseries + coseries d = [ \f -> g [f x | x <- series d] + | g <- series d ] + +-- For customising the depth measure. Use with care! + +depth :: Int -> Int -> Int +depth d d' | d >= 0 = d'+1-d + | otherwise = error "SmallCheck.depth: argument < 0" + +dec :: Int -> Int +dec d | d > 0 = d-1 + | otherwise = error "SmallCheck.dec: argument <= 0" + +inc :: Int -> Int +inc d = d+1 + +-- show the extension of a function (in part, bounded both by +-- the number and depth of arguments) +instance (Serial a, Show a, Show b) => Show (a->b) where + show f = + if maxarheight == 1 + && sumarwidth + length ars * length "->;" < widthLimit then + "{"++( + concat $ intersperse ";" $ [a++"->"++r | (a,r) <- ars] + )++"}" + else + concat $ [a++"->\n"++indent r | (a,r) <- ars] + where + ars = take lengthLimit [ (show x, show (f x)) + | x <- series depthLimit ] + maxarheight = maximum [ max (height a) (height r) + | (a,r) <- ars ] + sumarwidth = sum [ length a + length r + | (a,r) <- ars] + indent = unlines . map (" "++) . lines + height = length . lines + (widthLimit,lengthLimit,depthLimit) = (80,20,3)::(Int,Int,Int) + +---------------- ------------------ + +-- adapted from QuickCheck originals: here results come in lists, +-- properties have depth arguments, stamps (for classifying random +-- tests) are omitted, existentials are introduced + +newtype PR = Prop [Result] + +data Result = Result {ok :: Maybe Bool, arguments :: [String]} + +nothing :: Result +nothing = Result {ok = Nothing, arguments = []} + +result :: Result -> PR +result res = Prop [res] + +newtype Property = Property (Int -> PR) + +class Testable a where + property :: a -> Int -> PR + +instance Testable Bool where + property b _ = Prop [Result (Just b) []] + +instance Testable PR where + property prop _ = prop + +instance (Serial a, Show a, Testable b) => Testable (a->b) where + property f = f' where Property f' = forAll series f + +instance Testable Property where + property (Property f) d = f d + +evaluate :: Testable a => a -> Series Result +evaluate x d = rs where Prop rs = property x d + +forAll :: (Show a, Testable b) => Series a -> (a->b) -> Property +forAll xs f = Property $ \d -> Prop $ + [ r{arguments = show x : arguments r} + | x <- xs d, r <- evaluate (f x) d ] + +forAllElem :: (Show a, Testable b) => [a] -> (a->b) -> Property +forAllElem xs = forAll (const xs) + +thereExists :: Testable b => Series a -> (a->b) -> Property +thereExists xs f = Property $ \d -> Prop $ + [ Result + ( Just $ or [ all pass (evaluate (f x) d) + | x <- xs d ] ) + [] ] + where + pass (Result Nothing _) = True + pass (Result (Just b) _) = b + +thereExistsElem :: Testable b => [a] -> (a->b) -> Property +thereExistsElem xs = thereExists (const xs) + +exists :: (Serial a, Testable b) => + (a->b) -> Property +exists = thereExists series + +existsDeeperBy :: (Serial a, Testable b) => + (Int->Int) -> (a->b) -> Property +existsDeeperBy f = thereExists (series . f) + +infixr 0 ==> + +(==>) :: Testable a => Bool -> a -> Property +True ==> x = Property (property x) +False ==> x = Property (const (result nothing)) + +--------------------- ---------------------- + +-- similar in spirit to QuickCheck but with iterative deepening + +-- test for values of depths 0..d stopping when a property +-- fails or when it has been checked for all these values +smallCheck :: Testable a => Int -> a -> IO String +smallCheck d = iterCheck 0 (Just d) + +depthCheck :: Testable a => Int -> a -> IO String +depthCheck d = iterCheck d (Just d) + +iterCheck :: Testable a => Int -> Maybe Int -> a -> IO String +iterCheck dFrom mdTo t = iter dFrom + where + iter :: Int -> IO String + iter d = do + let Prop results = property t d + (ok,s) <- check (mdTo==Nothing) 0 0 True results + maybe (iter (d+1)) + (\dTo -> if ok && d < dTo + then iter (d+1) + else return s) + mdTo + +check :: Bool -> Int -> Int -> Bool -> [Result] -> IO (Bool, String) +check i n x ok rs | null rs = do + let s = " Completed "++show n++" test(s)" + y = if i then "." else " without failure." + z | x > 0 = " But "++show x++" did not meet ==> condition." + | otherwise = "" + return (ok, s ++ y ++ z) + +check i n x ok (Result Nothing _ : rs) = do + progressReport i n x + check i (n+1) (x+1) ok rs + +check i n x f (Result (Just True) _ : rs) = do + progressReport i n x + check i (n+1) x f rs + +check i n x f (Result (Just False) args : rs) = do + let s = " Failed test no. "++show (n+1)++". Test values follow." + s' = s ++ ": " ++ concat (intersperse ", " args) + if i then + check i (n+1) x False rs + else + return (False, s') + +progressReport :: Bool -> Int -> Int -> IO () +progressReport _ _ _ = return () Added: external/Pygments-0.9/tests/examplefiles/Sudoku.lhs ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/Sudoku.lhs Tue Oct 23 20:20:22 2007 @@ -0,0 +1,382 @@ +% Copyright 2005 Brian Alliet + +\documentclass[11pt]{article} +\usepackage{palatino} +\usepackage{fullpage} +\usepackage{parskip} +\usepackage{lhs} + +\begin{document} + +\title{Sudoku Solver} +\author{Brian Alliet} +\maketitle + +\ignore{ +\begin{code} +module Sudoku ( + Sudoku, + makeSudoku, solve, eliminate, analyze, backtrack, + main + ) where + +import Array +import Monad +import List (union,intersperse,transpose,(\\),nub,nubBy) +\end{code} +} + +\section{Introduction} + +This Haskell module implements a solver for Sudoku~\footnote{http://en.wikipedia.org/wiki/Sudoku} puzzles. It can solve +any Sudoku puzzle, even those that require backtracking. + +\section{Data Types} + +\begin{code} +data CellState a = Known a | Unknown [a] | Impossible deriving Eq +\end{code} + +Each cell in a Sudoku grid can be in one of three states: ``Known'' if it has a known correct value~\footnote{Actually +this doesn't always means it is correct. While we are in the backtracking stage we make our guesses ``Known''.}, +``Unknown'' if there is still more than one possible correct value, or ``Impossible'' if there is no value that can +possibly fit the cell. Sudoku grids with ``Impossible'' cells are quickly discarded by the {\tt solve} function. + +\begin{code} +type Coords = (Int,Int) +type Grid a = Array Coords (CellState a) +newtype Sudoku a = Sudoku { unSudoku :: Grid a } deriving Eq +\end{code} + +We represent a Sudoku grid as an Array indexed by integer coordinates. We additionally define a newtype wrapper for the +grid. The smart constructor, {\tt makeSudoku} verifies some invariants before creating the Sudoku value. All the public +API functions operate on the Sudoku type. + +\begin{code} +instance Show a => Show (Sudoku a) where showsPrec p = showParen (p>0) . showsGrid . unSudoku +instance Show a => Show (CellState a) where showsPrec _ = showsCell +\end{code} + +We define {\tt Show} instances for the above types. + +\section{Internal Functions} + +\begin{code} +size :: Grid a -> Int +size = (+1).fst.snd.bounds +\end{code} + +{\tt size} returns the size (the width, height, and number of subboxes) for a Sudoku grid. We ensure Grid's are always +square and indexed starting at $(0,0)$ so simply incrementing either of the array's upper bounds is correct. + +\begin{code} +getRow,getCol,getBox :: Grid a -> Int -> [(Coords,CellState a)] +getRow grid r = [let l = (r,c) in (l,grid!l)|c <- [0..size grid - 1]] +getCol grid c = [let l = (r,c) in (l,grid!l)|r <- [0..size grid - 1]] +getBox grid b = [let l = (r,c) in (l,grid!l)|r <- [boxR..boxR+boxN-1],c <- [boxC..boxC+boxN-1]] + where + boxN = intSqrt (size grid); boxR = b `quot` boxN * boxN; boxC = b `rem` boxN * boxN + +getBoxOf :: Grid a -> Coords -> [(Coords,CellState a)] +getBoxOf grid (r,c) = grid `getBox` ((r `quot` boxN * boxN) + (c `quot` boxN)) + where boxN = intSqrt (size grid) +\end{code} + +{\tt getRow}, {\tt getCol}, and {\tt getBox} return the coordinates and values of the cell in row, column, or box +number {\tt n}, {\tt r}, or {\tt b}. + +\begin{code} +getNeighbors :: Eq a => Grid a -> Coords -> [(Coords,CellState a)] +getNeighbors grid l@(r,c) = filter ((/=l).fst) + $ foldr (union.($grid)) [] + [(`getRow`r),(`getCol`c),(`getBoxOf`l)] +\end{code} + +{\tt getNeighbors} returns the coordinates and values of all the neighbors of this cell. + +\begin{code} +impossible :: Eq a => Grid a -> Coords -> [a] +impossible grid l = map snd $ justKnowns $ grid `getNeighbors` l +\end{code} + +{\tt impossible} returns a list of impossible values for a given cell. The impossible values consist of the values any +``Known'' neighbors. + +\begin{code} +justUnknowns :: [(Coords,CellState a)] -> [(Coords,[a])] +justUnknowns = foldr (\c -> case c of (p,Unknown xs) -> ((p,xs):); _ -> id) [] + +justKnowns :: [(Coords,CellState a)] -> [(Coords,a)] +justKnowns = foldr (\c -> case c of (p,Known x) -> ((p,x):); _ -> id) [] +\end{code} + +{\tt justUnknowns} and {\tt justKnowns} return only the Known or Unknown values (with the constructor stripped off) +from a list of cells. + +\begin{code} +updateGrid :: Grid a -> [(Coords,CellState a)] -> Maybe (Grid a) +updateGrid _ [] = Nothing +updateGrid grid xs = Just $ grid // nubBy (\(x,_) (y,_) -> x==y) xs +\end{code} + +{\tt updateGrid} applies a set of updates to a grid and returns the new grid only if it was updated. + +\section{Public API} + +\begin{code} +makeSudoku :: (Num a, Ord a, Enum a) => [[a]] -> Sudoku a +makeSudoku xs + | not (all ((==size).length) xs) = error "error not a square" + | (intSqrt size)^(2::Int) /= size = error "error dims aren't perfect squares" + | any (\x -> x < 0 || x > fromIntegral size) (concat xs) = error "value out of range" + | otherwise = Sudoku (listArray ((0,0),(size-1,size-1)) states) + where + size = length xs + states = map f (concat xs) + f 0 = Unknown [1..fromIntegral size] + f x = Known x +\end{code} + +{\tt makeSudoku} makes a {\tt Sudoku} value from a list of numbers. The given matrix must be square and have dimensions +that are a perfect square. The possible values for each cell range from 1 to the dimension of the square with ``0'' +representing unknown values.\footnote{The rest of the code doesn't depend on any of this weird ``0'' is unknown +representation. In fact, it doesn't depend on numeric values at all. ``0'' is just used here because it makes +representing grids in Haskell source code easier.} + +\begin{code} +eliminate :: Eq a => Sudoku a -> Maybe (Sudoku a) +eliminate (Sudoku grid) = fmap Sudoku $ updateGrid grid changes >>= sanitize + where + changes = concatMap findChange $ assocs grid + findChange (l,Unknown xs) + = map ((,) l) + $ case filter (not.(`elem`impossible grid l)) xs of + [] -> return Impossible + [x] -> return $ Known x + xs' + | xs' /= xs -> return $ Unknown xs' + | otherwise -> mzero + findChange _ = mzero + sanitize grid = return $ grid // [(l,Impossible) | + (l,x) <- justKnowns changes, x `elem` impossible grid l] +\end{code} + +The {\tt eliminate} phase tries to remove possible choices for ``Unknowns'' based on ``Known'' values in the same row, +column, or box as the ``Unknown'' value. For each cell on the grid we find its ``neighbors'', that is, cells in the +same row, column, or box. Out of those neighbors we get a list of all the ``Known'' values. We can eliminate all of +these from our list of candidates for this cell. If we're lucky enough to eliminate all the candidates but one we have +a new ``Known'' value. If we're unlucky enough to have eliminates {\bf all} the possible candidates we have a new +``Impossible'' value. + +After iterating though every cell we make one more pass looking for conflicting changes. {\tt sanitize} marks cells as +``Impossible'' if we have conflicting ``Known'' values. + +\begin{code} +analyze :: Eq a => Sudoku a -> Maybe (Sudoku a) +analyze (Sudoku grid) = fmap Sudoku $ updateGrid grid $ nub [u | + f <- map ($grid) [getRow,getCol,getBox], + n <- [0..size grid - 1], + u <- unique (f n)] + where + unique xs = foldr f [] $ foldr (union.snd) [] unknowns \\ map snd (justKnowns xs) + where + unknowns = justUnknowns xs + f c = case filter ((c`elem`).snd) unknowns of + [(p,_)] -> ((p,Known c):) + _ -> id +\end{code} + +The {\tt analyze} phase tries to turn ``Unknowns'' into ``Knowns'' when a certain ``Unknown'' is the only cell that +contains a value needed in a given row, column, or box. We apply each of the functions {\tt getRow}, {\tt getCol}, and +{\tt getBox} to all the indices on the grid, apply {\tt unique} to each group, and update the array with the +results. {\tt unique} gets a list of all the unknown cells in the group and finds all the unknown values in each of +those cells. Each of these values are iterated though looking for a value that is only contained in one cell. If such a +value is found the cell containing it must be that value. + +\begin{code} +backtrack :: (MonadPlus m, Eq a) => Sudoku a -> m (Sudoku a) +backtrack (Sudoku grid) = case (justUnknowns (assocs grid)) of + [] -> return $ Sudoku grid + ((p,xs):_) -> msum $ map (\x -> solve $ Sudoku $ grid // [(p,Known x)]) xs +\end{code} + +Sometimes the above two phases still aren't enough to solve a puzzle. For these rare puzzles backtracking is required. +We attempt to solve the puzzle by replacing the first ``Unknown'' value with each of the candidate values and solving +the resulting puzzles. Hopefully at least one of our choices will result in a solvable puzzle. + +We could actually solve any puzzle using backtracking alone, although this would be very inefficient. The above +functions simplify most puzzles enough that the backtracking phase has to do hardly any work. + +\begin{code} +solve :: (MonadPlus m, Eq a) => Sudoku a -> m (Sudoku a) +solve sudoku = + case eliminate sudoku of + Just new + | any (==Impossible) (elems (unSudoku new))-> mzero + | otherwise -> solve new + Nothing -> case analyze sudoku of + Just new -> solve new + Nothing -> backtrack sudoku +\end{code} + +{\tt solve} glues all the above phases together. First we run the {\tt eliminate} phase. If that found the puzzle to +be unsolvable we abort immediately. If {\tt eliminate} changed the grid we go though the {\tt eliminate} phase again +hoping to eliminate more. Once {\tt eliminate} can do no more work we move on to the {\tt analyze} phase. If this +succeeds in doing some work we start over again with the {\tt eliminate} phase. Once {\tt analyze} can do no more work +we have no choice but to resort to backtracking. (However in most cases backtracking won't actually do anything because +the puzzle is already solved.) + +\begin{code} +showsCell :: Show a => CellState a -> ShowS +showsCell (Known x) = shows x +showsCell (Impossible) = showChar 'X' +showsCell (Unknown xs) = \rest -> ('(':) + $ foldr id (')':rest) + $ intersperse (showChar ' ') + $ map shows xs +\end{code} + +{\tt showCell} shows a cell. + +\begin{code} +showsGrid :: Show a => Grid a -> ShowS +showsGrid grid = showsTable [[grid!(r,c) | c <- [0..size grid-1]] | r <- [0..size grid-1]] +\end{code} + +{\tt showGrid} show a grid. + +\begin{code} +-- FEATURE: This is pretty inefficient +showsTable :: Show a => [[a]] -> ShowS +showsTable xs = (showChar '\n' .) $ showString $ unlines $ map (concat . intersperse " ") xs'' + where + xs' = (map.map) show xs + colWidths = map (max 2 . maximum . map length) (transpose xs') + xs'' = map (zipWith (\n s -> s ++ (replicate (n - length s) ' ')) colWidths) xs' +\end{code} + +{\tt showsTable} shows a table (or matrix). Every column has the same width so things line up. + +\begin{code} +intSqrt :: Integral a => a -> a +intSqrt n + | n < 0 = error "intSqrt: negative n" + | otherwise = f n + where + f x = if y < x then f y else x + where y = (x + (n `quot` x)) `quot` 2 +\end{code} + +{\tt intSqrt} is Newton`s Iteration for finding integral square roots. + +\ignore{ +\begin{code} +test :: Sudoku Int +test = makeSudoku [ + [0,6,0,1,0,4,0,5,0], + [0,0,8,3,0,5,6,0,0], + [2,0,0,0,0,0,0,0,1], + [8,0,0,4,0,7,0,0,6], + [0,0,6,0,0,0,3,0,0], + [7,0,0,9,0,1,0,0,4], + [5,0,0,0,0,0,0,0,2], + [0,0,7,2,0,6,9,0,0], + [0,4,0,5,0,8,0,7,0]] + +test2 :: Sudoku Int +test2 = makeSudoku [ + [0,7,0,0,0,0,8,0,0], + [0,0,0,2,0,4,0,0,0], + [0,0,6,0,0,0,0,3,0], + [0,0,0,5,0,0,0,0,6], + [9,0,8,0,0,2,0,4,0], + [0,5,0,0,3,0,9,0,0], + [0,0,2,0,8,0,0,6,0], + [0,6,0,9,0,0,7,0,1], + [4,0,0,0,0,3,0,0,0]] + +testSmall :: Sudoku Int +testSmall = makeSudoku [ + [1,0,0,0,0,0,0,0,0], + [0,0,2,7,4,0,0,0,0], + [0,0,0,5,0,0,0,0,4], + [0,3,0,0,0,0,0,0,0], + [7,5,0,0,0,0,0,0,0], + [0,0,0,0,0,9,6,0,0], + [0,4,0,0,0,6,0,0,0], + [0,0,0,0,0,0,0,7,1], + [0,0,0,0,0,1,0,3,0]] + +testHard :: Sudoku Int +testHard = makeSudoku [ + [0,0,0,8,0,2,0,0,0], + [5,0,0,0,0,0,0,0,1], + [0,0,6,0,5,0,3,0,0], + [0,0,9,0,1,0,8,0,0], + [1,0,0,0,0,0,0,0,2], + [0,0,0,9,0,7,0,0,0], + [0,6,1,0,3,0,7,8,0], + [0,5,0,0,0,0,0,4,0], + [0,7,2,0,4,0,1,5,0]] + +testHard2 :: Sudoku Int +testHard2 = makeSudoku [ + [3,0,0,2,0,0,9,0,0], + [0,0,0,0,0,0,0,0,5], + [0,7,0,1,0,4,0,0,0], + [0,0,9,0,0,0,8,0,0], + [5,0,0,0,7,0,0,0,6], + [0,0,1,0,0,0,2,0,0], + [0,0,0,3,0,9,0,4,0], + [8,0,0,0,0,0,0,0,0], + [0,0,6,0,0,5,0,0,7]] + +testHW :: Sudoku Int +testHW = makeSudoku [ + [0,0,0,1,0,0,7,0,2], + [0,3,0,9,5,0,0,0,0], + [0,0,1,0,0,2,0,0,3], + [5,9,0,0,0,0,3,0,1], + [0,2,0,0,0,0,0,7,0], + [7,0,3,0,0,0,0,9,8], + [8,0,0,2,0,0,1,0,0], + [0,0,0,0,8,5,0,6,0], + [6,0,5,0,0,9,0,0,0]] + +testTough :: Sudoku Int +testTough = makeSudoku $ map (map read . words) $ lines $ + "8 3 0 0 0 0 0 4 6\n"++ + "0 2 0 1 0 4 0 3 0\n"++ + "0 0 0 0 0 0 0 0 0\n"++ + "0 0 2 9 0 6 5 0 0\n"++ + "1 4 0 0 0 0 0 2 3\n"++ + "0 0 5 4 0 3 1 0 0\n"++ + "0 0 0 0 0 0 0 0 0\n"++ + "0 6 0 3 0 8 0 7 0\n"++ + "9 5 0 0 0 0 0 6 2\n" + +testDiabolical :: Sudoku Int +testDiabolical = makeSudoku $ map (map read . words) $ lines $ + "8 0 0 7 0 1 0 0 2\n"++ + "0 0 6 0 0 0 7 0 0\n"++ + "0 1 7 0 0 0 8 9 0\n"++ + "0 0 0 1 7 3 0 0 0\n"++ + "7 0 0 0 0 0 0 0 6\n"++ + "0 0 0 9 5 6 0 0 0\n"++ + "0 9 5 0 0 0 4 1 0\n"++ + "0 0 8 0 0 0 5 0 0\n"++ + "3 0 0 6 0 5 0 0 7\n" + +main :: IO () +main = do + let + solve' p = case solve p of + [] -> fail $ "couldn't solve: " ++ show p + sols -> return sols + mapM_ (\p -> solve' p >>= putStrLn.show) [test,test2,testSmall,testHard,testHard2,testHW,testTough,testDiabolical] + return () + +\end{code} +} + +\end{document} Added: external/Pygments-0.9/tests/examplefiles/apache2.conf ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/apache2.conf Tue Oct 23 20:20:22 2007 @@ -0,0 +1,393 @@ +# Based upon the NCSA server configuration files originally by Rob McCool. +# Changed extensively for the Debian package by Daniel Stone +# and also by Thom May . + +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the LockFile documentation +# (available at ); +# you will save yourself a lot of trouble. + +ServerRoot "/etc/apache2" + +# The LockFile directive sets the path to the lockfile used when Apache +# is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or +# USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be left at +# its default value. The main reason for changing it is if the logs +# directory is NFS mounted, since the lockfile MUST BE STORED ON A LOCAL +# DISK. The PID of the main server process is automatically appended to +# the filename. + +LockFile /var/lock/apache2/accept.lock + +# PidFile: The file in which the server should record its process +# identification number when it starts. + +PidFile /var/run/apache2.pid + +# Timeout: The number of seconds before receives and sends time out. + +Timeout 300 + +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. + +KeepAlive On + +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. + +MaxKeepAliveRequests 100 + +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. + +KeepAliveTimeout 15 + +## +## Server-Pool Size Regulation (MPM specific) +## + +# prefork MPM +# StartServers ......... number of server processes to start +# MinSpareServers ...... minimum number of server processes which are kept spare +# MaxSpareServers ...... maximum number of server processes which are kept spare +# MaxClients ........... maximum number of server processes allowed to start +# MaxRequestsPerChild .. maximum number of requests a server process serves + +StartServers 5 +MinSpareServers 5 +MaxSpareServers 10 +MaxClients 20 +MaxRequestsPerChild 0 + + +# pthread MPM +# StartServers ......... initial number of server processes to start +# MaxClients ........... maximum number of server processes allowed to start +# MinSpareThreads ...... minimum number of worker threads which are kept spare +# MaxSpareThreads ...... maximum number of worker threads which are kept spare +# ThreadsPerChild ...... constant number of worker threads in each server process +# MaxRequestsPerChild .. maximum number of requests a server process serves + +StartServers 2 +MaxClients 150 +MinSpareThreads 25 +MaxSpareThreads 75 +ThreadsPerChild 25 +MaxRequestsPerChild 0 + + +# perchild MPM +# NumServers ........... constant number of server processes +# StartThreads ......... initial number of worker threads in each server process +# MinSpareThreads ...... minimum number of worker threads which are kept spare +# MaxSpareThreads ...... maximum number of worker threads which are kept spare +# MaxThreadsPerChild ... maximum number of worker threads in each server process +# MaxRequestsPerChild .. maximum number of connections per server process (then it dies) + +NumServers 5 +StartThreads 5 +MinSpareThreads 5 +MaxSpareThreads 10 +MaxThreadsPerChild 20 +MaxRequestsPerChild 0 +AcceptMutex fcntl + + +User www-data +Group www-data + +# The following directives define some format nicknames for use with +# a CustomLog directive (see below). +LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %b" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + + +# Global error log. +ErrorLog /var/log/apache2/error.log + +# Include module configuration: +Include /etc/apache2/mods-enabled/*.load +Include /etc/apache2/mods-enabled/*.conf + +# Include all the user configurations: +Include /etc/apache2/httpd.conf + +# Include ports listing +Include /etc/apache2/ports.conf + +# Include generic snippets of statements +Include /etc/apache2/conf.d/[^.#]* + +#Let's have some Icons, shall we? +Alias /icons/ "/usr/share/apache2/icons/" + + Options Indexes MultiViews + AllowOverride None + Order allow,deny + Allow from all + + +# Set up the default error docs. +# +# Customizable error responses come in three flavors: +# 1) plain text 2) local redirects 3) external redirects +# +# Some examples: +#ErrorDocument 500 "The server made a boo boo." +#ErrorDocument 404 /missing.html +#ErrorDocument 404 "/cgi-bin/missing_handler.pl" +#ErrorDocument 402 http://www.example.com/subscription_info.html +# + +# +# Putting this all together, we can Internationalize error responses. +# +# We use Alias to redirect any /error/HTTP_.html.var response to +# our collection of by-error message multi-language collections. We use +# includes to substitute the appropriate text. +# +# You can modify the messages' appearance without changing any of the +# default HTTP_.html.var files by adding the line; +# +# Alias /error/include/ "/your/include/path/" +# +# which allows you to create your own set of files by starting with the +# /usr/local/apache2/error/include/ files and +# copying them to /your/include/path/, even on a per-VirtualHost basis. +# + + + + Alias /error/ "/usr/share/apache2/error/" + + + AllowOverride None + Options IncludesNoExec + AddOutputFilter Includes html + AddHandler type-map var + Order allow,deny + Allow from all + LanguagePriority en es de fr + ForceLanguagePriority Prefer Fallback + + + ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var + ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var + ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var + ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var + ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var + ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var + ErrorDocument 410 /error/HTTP_GONE.html.var + ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var + ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var + ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var + ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var + ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var + ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var + ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var + ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var + ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var + ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var + + + + +DirectoryIndex index.html index.cgi index.pl index.php index.xhtml + +# UserDir is now a module +#UserDir public_html +#UserDir disabled root + +# +# AllowOverride FileInfo AuthConfig Limit +# Options Indexes SymLinksIfOwnerMatch IncludesNoExec +# + +AccessFileName .htaccess + + + Order allow,deny + Deny from all + + +UseCanonicalName Off + +TypesConfig /etc/mime.types +DefaultType text/plain + +HostnameLookups Off + +IndexOptions FancyIndexing VersionSort + +AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip + +AddIconByType (TXT,/icons/text.gif) text/* +AddIconByType (IMG,/icons/image2.gif) image/* +AddIconByType (SND,/icons/sound2.gif) audio/* +AddIconByType (VID,/icons/movie.gif) video/* + +# This really should be .jpg. + +AddIcon /icons/binary.gif .bin .exe +AddIcon /icons/binhex.gif .hqx +AddIcon /icons/tar.gif .tar +AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv +AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip +AddIcon /icons/a.gif .ps .ai .eps +AddIcon /icons/layout.gif .html .shtml .htm .pdf +AddIcon /icons/text.gif .txt +AddIcon /icons/c.gif .c +AddIcon /icons/p.gif .pl .py +AddIcon /icons/f.gif .for +AddIcon /icons/dvi.gif .dvi +AddIcon /icons/uuencoded.gif .uu +AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl +AddIcon /icons/tex.gif .tex +AddIcon /icons/bomb.gif core + +AddIcon /icons/back.gif .. +AddIcon /icons/hand.right.gif README +AddIcon /icons/folder.gif ^^DIRECTORY^^ +AddIcon /icons/blank.gif ^^BLANKICON^^ + + +# This is from Matty J's patch. Anyone want to make the icons? +#AddIcon /icons/dirsymlink.jpg ^^SYMDIR^^ +#AddIcon /icons/symlink.jpg ^^SYMLINK^^ + +DefaultIcon /icons/unknown.gif + +ReadmeName README.html +HeaderName HEADER.html + +IndexIgnore .??* *~ *# HEADER* RCS CVS *,t + +AddEncoding x-compress Z +AddEncoding x-gzip gz tgz + +AddLanguage da .dk +AddLanguage nl .nl +AddLanguage en .en +AddLanguage et .et +AddLanguage fr .fr +AddLanguage de .de +AddLanguage el .el +AddLanguage it .it +AddLanguage ja .ja +AddLanguage pl .po +AddLanguage ko .ko +AddLanguage pt .pt +AddLanguage no .no +AddLanguage pt-br .pt-br +AddLanguage ltz .ltz +AddLanguage ca .ca +AddLanguage es .es +AddLanguage sv .se +AddLanguage cz .cz +AddLanguage ru .ru +AddLanguage tw .tw +AddLanguage zh-tw .tw + +LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw + + +#AddDefaultCharset ISO-8859-1 + +AddCharset ISO-8859-1 .iso8859-1 .latin1 +AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen +AddCharset ISO-8859-3 .iso8859-3 .latin3 +AddCharset ISO-8859-4 .iso8859-4 .latin4 +AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru +AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb +AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk +AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb +AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk +AddCharset ISO-2022-JP .iso2022-jp .jis +AddCharset ISO-2022-KR .iso2022-kr .kis +AddCharset ISO-2022-CN .iso2022-cn .cis +AddCharset Big5 .Big5 .big5 +# For russian, more than one charset is used (depends on client, mostly): +AddCharset WINDOWS-1251 .cp-1251 .win-1251 +AddCharset CP866 .cp866 +AddCharset KOI8-r .koi8-r .koi8-ru +AddCharset KOI8-ru .koi8-uk .ua +AddCharset ISO-10646-UCS-2 .ucs2 +AddCharset ISO-10646-UCS-4 .ucs4 +AddCharset UTF-8 .utf8 + +AddCharset GB2312 .gb2312 .gb +AddCharset utf-7 .utf7 +AddCharset utf-8 .utf8 +AddCharset big5 .big5 .b5 +AddCharset EUC-TW .euc-tw +AddCharset EUC-JP .euc-jp +AddCharset EUC-KR .euc-kr +AddCharset shift_jis .sjis + +#AddType application/x-httpd-php .php +#AddType application/x-httpd-php-source .phps + +AddType application/x-tar .tgz + +# To use CGI scripts outside /cgi-bin/: +# +#AddHandler cgi-script .cgi + +# To use server-parsed HTML files +# + + SetOutputFilter INCLUDES + + +# If you wish to use server-parsed imagemap files, use +# +#AddHandler imap-file map + +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0 + +# +# The following directive disables redirects on non-GET requests for +# a directory that does not include the trailing slash. This fixes a +# problem with Microsoft WebFolders which does not appropriately handle +# redirects for folders with DAV methods. +# + +BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully +BrowserMatch "^WebDrive" redirect-carefully +BrowserMatch "^gnome-vfs" redirect-carefully +BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully + +# Allow server status reports, with the URL of http://servername/server-status +# Change the ".your_domain.com" to match your domain to enable. +# +# +# SetHandler server-status +# Order deny,allow +# Deny from all +# Allow from .your_domain.com +# + +# Allow remote server configuration reports, with the URL of +# http://servername/server-info (requires that mod_info.c be loaded). +# Change the ".your_domain.com" to match your domain to enable. +# +# +# SetHandler server-info +# Order deny,allow +# Deny from all +# Allow from .your_domain.com +# + +# Include the virtual host configurations: +Include /etc/apache2/sites-enabled/[^.#]* Added: external/Pygments-0.9/tests/examplefiles/badcase.java ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/badcase.java Tue Oct 23 20:20:22 2007 @@ -0,0 +1,2 @@ +// this used to take ages +void foo() throws xxxxxxxxxxxxxxxxxxxxxx{ } Added: external/Pygments-0.9/tests/examplefiles/batchfile.bat ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/batchfile.bat Tue Oct 23 20:20:22 2007 @@ -0,0 +1,46 @@ +rem this is a demo file. + at rem + at echo off + +call c:\temp.bat somearg +call :lab somearg +rem This next one is wrong in the vim lexer! +call c:temp.bat + +echo "Hi!" +echo hi +echo on +echo off +echo. + at echo off +if exist *.log echo The log file has arrived. +rem These are all escapes, also done incorrectly by the vim lexer +echo ^^ ^> ^< ^| + +x=beginning +setlocal +x = new text +endlocal + +for %%var in (*.jpg) do echo %%var +for /D %%var in (a b c) do echo %%var +for /R C:\temp %%var in (*.jpg) do iexplore.exe %%var +rem Vim has this one wrong too. +for /L %%var in (10,-1,1) do echo %%var +for /F %%var in ("hi!") do echo %%var +for /F "eol=c,skip=1,usebackq" %%var in (`command`) do echo %%var %~l %~fl %~dl %~pl %~nl %~xl %~sl %~al %~tl %~zl %~$PATH:l %~dpl %~dp$PATH:l %~ftzal + +echo some file ?! > somefile.txt + +set PATH=%PATH%;c:\windows + +goto answer%errorlevel% + :answer0 + echo Hi it's zero + :answer1 + echo New + +if exist a del a +else echo A is missing! + + Added: external/Pygments-0.9/tests/examplefiles/boot-9.scm ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/boot-9.scm Tue Oct 23 20:20:22 2007 @@ -0,0 +1,1557 @@ +;;; installed-scm-file + +;;;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;;;; +;;;; This program is free software; you can redistribute it and/or modify +;;;; it under the terms of the GNU General Public License as published by +;;;; the Free Software Foundation; either version 2, or (at your option) +;;;; any later version. +;;;; +;;;; This program is distributed in the hope that it will be useful, +;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;;; GNU General Public License for more details. +;;;; +;;;; You should have received a copy of the GNU General Public License +;;;; along with this software; see the file COPYING. If not, write to +;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;;;; Boston, MA 02111-1307 USA +;;;; +;;;; As a special exception, the Free Software Foundation gives permission +;;;; for additional uses of the text contained in its release of GUILE. +;;;; +;;;; The exception is that, if you link the GUILE library with other files +;;;; to produce an executable, this does not by itself cause the +;;;; resulting executable to be covered by the GNU General Public License. +;;;; Your use of that executable is in no way restricted on account of +;;;; linking the GUILE library code into it. +;;;; +;;;; This exception does not however invalidate any other reasons why +;;;; the executable file might be covered by the GNU General Public License. +;;;; +;;;; This exception applies only to the code released by the +;;;; Free Software Foundation under the name GUILE. If you copy +;;;; code from other Free Software Foundation releases into a copy of +;;;; GUILE, as the General Public License permits, the exception does +;;;; not apply to the code that you add in this way. To avoid misleading +;;;; anyone as to the status of such modified files, you must delete +;;;; this exception notice from them. +;;;; +;;;; If you write modifications of your own for GUILE, it is your choice +;;;; whether to permit this exception to apply to your modifications. +;;;; If you do not wish that, delete this exception notice. +;;;; + + +;;; Commentary: + +;;; This file is the first thing loaded into Guile. It adds many mundane +;;; definitions and a few that are interesting. +;;; +;;; The module system (hence the hierarchical namespace) are defined in this +;;; file. +;;; + +;;; Code: + + +;;; {Deprecation} +;;; + +;; We don't have macros here, but we do want to define +;; `begin-deprecated' early. + +(define begin-deprecated + (procedure->memoizing-macro + (lambda (exp env) + (if (include-deprecated-features) + `(begin ,@(cdr exp)) + `#f)))) + + +;;; {Features} +;; + +(define (provide sym) + (if (not (memq sym *features*)) + (set! *features* (cons sym *features*)))) + +;;; Return #t iff FEATURE is available to this Guile interpreter. +;;; In SLIB, provided? also checks to see if the module is available. +;;; We should do that too, but don't. +(define (provided? feature) + (and (memq feature *features*) #t)) + +(begin-deprecated + (define (feature? sym) + (issue-deprecation-warning + "`feature?' is deprecated. Use `provided?' instead.") + (provided? sym))) + +;;; let format alias simple-format until the more complete version is loaded +(define format simple-format) + + +;;; {R4RS compliance} + +(primitive-load-path "ice-9/r4rs.scm") + + +;;; {Simple Debugging Tools} +;; + + +;; peek takes any number of arguments, writes them to the +;; current ouput port, and returns the last argument. +;; It is handy to wrap around an expression to look at +;; a value each time is evaluated, e.g.: +;; +;; (+ 10 (troublesome-fn)) +;; => (+ 10 (pk 'troublesome-fn-returned (troublesome-fn))) +;; + +(define (peek . stuff) + (newline) + (display ";;; ") + (write stuff) + (newline) + (car (last-pair stuff))) + +(define pk peek) + +(define (warn . stuff) + (with-output-to-port (current-error-port) + (lambda () + (newline) + (display ";;; WARNING ") + (display stuff) + (newline) + (car (last-pair stuff))))) + + +;;; {Trivial Functions} +;;; + +(define (identity x) x) +(define (1+ n) (+ n 1)) +(define (1- n) (+ n -1)) +(define (and=> value procedure) (and value (procedure value))) +(define (make-hash-table k) (make-vector k '())) + +(begin-deprecated + (define (id x) + (issue-deprecation-warning "`id' is deprecated. Use `identity' instead.") + (identity x)) + (define (-1+ n) + (issue-deprecation-warning "`-1+' is deprecated. Use `1-' instead.") + (1- n)) + (define (return-it . args) + (issue-deprecation-warning "`return-it' is deprecated. Use `noop' instead.") + (apply noop args))) + +;;; apply-to-args is functionally redundant with apply and, worse, +;;; is less general than apply since it only takes two arguments. +;;; +;;; On the other hand, apply-to-args is a syntacticly convenient way to +;;; perform binding in many circumstances when the "let" family of +;;; of forms don't cut it. E.g.: +;;; +;;; (apply-to-args (return-3d-mouse-coords) +;;; (lambda (x y z) +;;; ...)) +;;; + +(define (apply-to-args args fn) (apply fn args)) + + + +;;; {Integer Math} +;;; + +(define (ipow-by-squaring x k acc proc) + (cond ((zero? k) acc) + ((= 1 k) (proc acc x)) + (else (ipow-by-squaring (proc x x) + (quotient k 2) + (if (even? k) acc (proc acc x)) + proc)))) + +(begin-deprecated + (define (string-character-length s) + (issue-deprecation-warning "`string-character-length' is deprecated. Use `string-length' instead.") + (string-length s)) + (define (flags . args) + (issue-deprecation-warning "`flags' is deprecated. Use `logior' instead.") + (apply logior args))) + + +;;; {Symbol Properties} +;;; + +(define (symbol-property sym prop) + (let ((pair (assoc prop (symbol-pref sym)))) + (and pair (cdr pair)))) + +(define (set-symbol-property! sym prop val) + (let ((pair (assoc prop (symbol-pref sym)))) + (if pair + (set-cdr! pair val) + (symbol-pset! sym (acons prop val (symbol-pref sym)))))) + +(define (symbol-property-remove! sym prop) + (let ((pair (assoc prop (symbol-pref sym)))) + (if pair + (symbol-pset! sym (delq! pair (symbol-pref sym)))))) + +;;; {General Properties} +;;; + +;; This is a more modern interface to properties. It will replace all +;; other property-like things eventually. + +(define (make-object-property) + (let ((prop (primitive-make-property #f))) + (make-procedure-with-setter + (lambda (obj) (primitive-property-ref prop obj)) + (lambda (obj val) (primitive-property-set! prop obj val))))) + + + +;;; {Arrays} +;;; + +(if (provided? 'array) + (primitive-load-path "ice-9/arrays.scm")) + + +;;; {Keywords} +;;; + +(define (symbol->keyword symbol) + (make-keyword-from-dash-symbol (symbol-append '- symbol))) + +(define (keyword->symbol kw) + (let ((sym (symbol->string (keyword-dash-symbol kw)))) + (string->symbol (substring sym 1 (string-length sym))))) + +(define (kw-arg-ref args kw) + (let ((rem (member kw args))) + (and rem (pair? (cdr rem)) (cadr rem)))) + + + +;;; {Structs} + +(define (struct-layout s) + (struct-ref (struct-vtable s) vtable-index-layout)) + + + +;;; Environments + +(define the-environment + (procedure->syntax + (lambda (x e) + e))) + +(define the-root-environment (the-environment)) + +(define (environment-module env) + (let ((closure (and (pair? env) (car (last-pair env))))) + (and closure (procedure-property closure 'module)))) + + +;;; {Records} +;;; + +;; Printing records: by default, records are printed as +;; +;; # +;; +;; You can change that by giving a custom printing function to +;; MAKE-RECORD-TYPE (after the list of field symbols). This function +;; will be called like +;; +;; ( object port) +;; +;; It should print OBJECT to PORT. + +(define (inherit-print-state old-port new-port) + (if (get-print-state old-port) + (port-with-print-state new-port (get-print-state old-port)) + new-port)) + +;; 0: type-name, 1: fields +(define record-type-vtable + (make-vtable-vtable "prpr" 0 + (lambda (s p) + (cond ((eq? s record-type-vtable) + (display "#" p)) + (else + (display "#" p)))))) + +(define (record-type? obj) + (and (struct? obj) (eq? record-type-vtable (struct-vtable obj)))) + +(define (make-record-type type-name fields . opt) + (let ((printer-fn (and (pair? opt) (car opt)))) + (let ((struct (make-struct record-type-vtable 0 + (make-struct-layout + (apply string-append + (map (lambda (f) "pw") fields))) + (or printer-fn + (lambda (s p) + (display "#<" p) + (display type-name p) + (let loop ((fields fields) + (off 0)) + (cond + ((not (null? fields)) + (display " " p) + (display (car fields) p) + (display ": " p) + (display (struct-ref s off) p) + (loop (cdr fields) (+ 1 off))))) + (display ">" p))) + type-name + (copy-tree fields)))) + ;; Temporary solution: Associate a name to the record type descriptor + ;; so that the object system can create a wrapper class for it. + (set-struct-vtable-name! struct (if (symbol? type-name) + type-name + (string->symbol type-name))) + struct))) + +(define (record-type-name obj) + (if (record-type? obj) + (struct-ref obj vtable-offset-user) + (error 'not-a-record-type obj))) + +(define (record-type-fields obj) + (if (record-type? obj) + (struct-ref obj (+ 1 vtable-offset-user)) + (error 'not-a-record-type obj))) + +(define (record-constructor rtd . opt) + (let ((field-names (if (pair? opt) (car opt) (record-type-fields rtd)))) + (local-eval `(lambda ,field-names + (make-struct ',rtd 0 ,@(map (lambda (f) + (if (memq f field-names) + f + #f)) + (record-type-fields rtd)))) + the-root-environment))) + +(define (record-predicate rtd) + (lambda (obj) (and (struct? obj) (eq? rtd (struct-vtable obj))))) + +(define (record-accessor rtd field-name) + (let* ((pos (list-index (record-type-fields rtd) field-name))) + (if (not pos) + (error 'no-such-field field-name)) + (local-eval `(lambda (obj) + (and (eq? ',rtd (record-type-descriptor obj)) + (struct-ref obj ,pos))) + the-root-environment))) + +(define (record-modifier rtd field-name) + (let* ((pos (list-index (record-type-fields rtd) field-name))) + (if (not pos) + (error 'no-such-field field-name)) + (local-eval `(lambda (obj val) + (and (eq? ',rtd (record-type-descriptor obj)) + (struct-set! obj ,pos val))) + the-root-environment))) + + +(define (record? obj) + (and (struct? obj) (record-type? (struct-vtable obj)))) + +(define (record-type-descriptor obj) + (if (struct? obj) + (struct-vtable obj) + (error 'not-a-record obj))) + +(provide 'record) + + +;;; {Booleans} +;;; + +(define (->bool x) (not (not x))) + + +;;; {Symbols} +;;; + +(define (symbol-append . args) + (string->symbol (apply string-append (map symbol->string args)))) + +(define (list->symbol . args) + (string->symbol (apply list->string args))) + +(define (symbol . args) + (string->symbol (apply string args))) + + +;;; {Lists} +;;; + +(define (list-index l k) + (let loop ((n 0) + (l l)) + (and (not (null? l)) + (if (eq? (car l) k) + n + (loop (+ n 1) (cdr l)))))) + +(define (make-list n . init) + (if (pair? init) (set! init (car init))) + (let loop ((answer '()) + (n n)) + (if (<= n 0) + answer + (loop (cons init answer) (- n 1))))) + + +;;; {and-map and or-map} +;;; +;;; (and-map fn lst) is like (and (fn (car lst)) (fn (cadr lst)) (fn...) ...) +;;; (or-map fn lst) is like (or (fn (car lst)) (fn (cadr lst)) (fn...) ...) +;;; + +;; and-map f l +;; +;; Apply f to successive elements of l until exhaustion or f returns #f. +;; If returning early, return #f. Otherwise, return the last value returned +;; by f. If f has never been called because l is empty, return #t. +;; +(define (and-map f lst) + (let loop ((result #t) + (l lst)) + (and result + (or (and (null? l) + result) + (loop (f (car l)) (cdr l)))))) + +;; or-map f l +;; +;; Apply f to successive elements of l until exhaustion or while f returns #f. +;; If returning early, return the return value of f. +;; +(define (or-map f lst) + (let loop ((result #f) + (l lst)) + (or result + (and (not (null? l)) + (loop (f (car l)) (cdr l)))))) + + + +(if (provided? 'posix) + (primitive-load-path "ice-9/posix.scm")) + +(if (provided? 'socket) + (primitive-load-path "ice-9/networking.scm")) + +(define file-exists? + (if (provided? 'posix) + (lambda (str) + (->bool (false-if-exception (stat str)))) + (lambda (str) + (let ((port (catch 'system-error (lambda () (open-file str OPEN_READ)) + (lambda args #f)))) + (if port (begin (close-port port) #t) + #f))))) + +(define file-is-directory? + (if (provided? 'posix) + (lambda (str) + (eq? (stat:type (stat str)) 'directory)) + (lambda (str) + (let ((port (catch 'system-error + (lambda () (open-file (string-append str "/.") + OPEN_READ)) + (lambda args #f)))) + (if port (begin (close-port port) #t) + #f))))) + +(define (has-suffix? str suffix) + (let ((sufl (string-length suffix)) + (sl (string-length str))) + (and (> sl sufl) + (string=? (substring str (- sl sufl) sl) suffix)))) + +(define (system-error-errno args) + (if (eq? (car args) 'system-error) + (car (list-ref args 4)) + #f)) + + +;;; {Error Handling} +;;; + +(define (error . args) + (save-stack) + (if (null? args) + (scm-error 'misc-error #f "?" #f #f) + (let loop ((msg "~A") + (rest (cdr args))) + (if (not (null? rest)) + (loop (string-append msg " ~S") + (cdr rest)) + (scm-error 'misc-error #f msg args #f))))) + +;; bad-throw is the hook that is called upon a throw to a an unhandled +;; key (unless the throw has four arguments, in which case +;; it's usually interpreted as an error throw.) +;; If the key has a default handler (a throw-handler-default property), +;; it is applied to the throw. +;; +(define (bad-throw key . args) + (let ((default (symbol-property key 'throw-handler-default))) + (or (and default (apply default key args)) + (apply error "unhandled-exception:" key args)))) + + + +(define (tm:sec obj) (vector-ref obj 0)) +(define (tm:min obj) (vector-ref obj 1)) +(define (tm:hour obj) (vector-ref obj 2)) +(define (tm:mday obj) (vector-ref obj 3)) +(define (tm:mon obj) (vector-ref obj 4)) +(define (tm:year obj) (vector-ref obj 5)) +(define (tm:wday obj) (vector-ref obj 6)) +(define (tm:yday obj) (vector-ref obj 7)) +(define (tm:isdst obj) (vector-ref obj 8)) +(define (tm:gmtoff obj) (vector-ref obj 9)) +(define (tm:zone obj) (vector-ref obj 10)) + +(define (set-tm:sec obj val) (vector-set! obj 0 val)) +(define (set-tm:min obj val) (vector-set! obj 1 val)) +(define (set-tm:hour obj val) (vector-set! obj 2 val)) +(define (set-tm:mday obj val) (vector-set! obj 3 val)) +(define (set-tm:mon obj val) (vector-set! obj 4 val)) +(define (set-tm:year obj val) (vector-set! obj 5 val)) +(define (set-tm:wday obj val) (vector-set! obj 6 val)) +(define (set-tm:yday obj val) (vector-set! obj 7 val)) +(define (set-tm:isdst obj val) (vector-set! obj 8 val)) +(define (set-tm:gmtoff obj val) (vector-set! obj 9 val)) +(define (set-tm:zone obj val) (vector-set! obj 10 val)) + +(define (tms:clock obj) (vector-ref obj 0)) +(define (tms:utime obj) (vector-ref obj 1)) +(define (tms:stime obj) (vector-ref obj 2)) +(define (tms:cutime obj) (vector-ref obj 3)) +(define (tms:cstime obj) (vector-ref obj 4)) + +(define file-position ftell) +(define (file-set-position port offset . whence) + (let ((whence (if (eq? whence '()) SEEK_SET (car whence)))) + (seek port offset whence))) + +(define (move->fdes fd/port fd) + (cond ((integer? fd/port) + (dup->fdes fd/port fd) + (close fd/port) + fd) + (else + (primitive-move->fdes fd/port fd) + (set-port-revealed! fd/port 1) + fd/port))) + +(define (release-port-handle port) + (let ((revealed (port-revealed port))) + (if (> revealed 0) + (set-port-revealed! port (- revealed 1))))) + +(define (dup->port port/fd mode . maybe-fd) + (let ((port (fdopen (apply dup->fdes port/fd maybe-fd) + mode))) + (if (pair? maybe-fd) + (set-port-revealed! port 1)) + port)) + +(define (dup->inport port/fd . maybe-fd) + (apply dup->port port/fd "r" maybe-fd)) + +(define (dup->outport port/fd . maybe-fd) + (apply dup->port port/fd "w" maybe-fd)) + +(define (dup port/fd . maybe-fd) + (if (integer? port/fd) + (apply dup->fdes port/fd maybe-fd) + (apply dup->port port/fd (port-mode port/fd) maybe-fd))) + +(define (duplicate-port port modes) + (dup->port port modes)) + +(define (fdes->inport fdes) + (let loop ((rest-ports (fdes->ports fdes))) + (cond ((null? rest-ports) + (let ((result (fdopen fdes "r"))) + (set-port-revealed! result 1) + result)) + ((input-port? (car rest-ports)) + (set-port-revealed! (car rest-ports) + (+ (port-revealed (car rest-ports)) 1)) + (car rest-ports)) + (else + (loop (cdr rest-ports)))))) + +(define (fdes->outport fdes) + (let loop ((rest-ports (fdes->ports fdes))) + (cond ((null? rest-ports) + (let ((result (fdopen fdes "w"))) + (set-port-revealed! result 1) + result)) + ((output-port? (car rest-ports)) + (set-port-revealed! (car rest-ports) + (+ (port-revealed (car rest-ports)) 1)) + (car rest-ports)) + (else + (loop (cdr rest-ports)))))) + +(define (port->fdes port) + (set-port-revealed! port (+ (port-revealed port) 1)) + (fileno port)) + +(define (setenv name value) + (if value + (putenv (string-append name "=" value)) + (putenv name))) + + +;;; {Load Paths} +;;; + +;;; Here for backward compatability +;; +(define scheme-file-suffix (lambda () ".scm")) + +(define (in-vicinity vicinity file) + (let ((tail (let ((len (string-length vicinity))) + (if (zero? len) + #f + (string-ref vicinity (- len 1)))))) + (string-append vicinity + (if (or (not tail) + (eq? tail #\/)) + "" + "/") + file))) + + +;;; {Help for scm_shell} +;;; The argument-processing code used by Guile-based shells generates +;;; Scheme code based on the argument list. This page contains help +;;; functions for the code it generates. + +(define (command-line) (program-arguments)) + +;; This is mostly for the internal use of the code generated by +;; scm_compile_shell_switches. +(define (load-user-init) + (let* ((home (or (getenv "HOME") + (false-if-exception (passwd:dir (getpwuid (getuid)))) + "/")) ;; fallback for cygwin etc. + (init-file (in-vicinity home ".guile"))) + (if (file-exists? init-file) + (primitive-load init-file)))) + + +;;; {Loading by paths} + +;;; Load a Scheme source file named NAME, searching for it in the +;;; directories listed in %load-path, and applying each of the file +;;; name extensions listed in %load-extensions. +(define (load-from-path name) + (start-stack 'load-stack + (primitive-load-path name))) + + + +;;; {Transcendental Functions} +;;; +;;; Derived from "Transcen.scm", Complex trancendental functions for SCM. +;;; Written by Jerry D. Hedden, (C) FSF. +;;; See the file `COPYING' for terms applying to this program. +;;; + +(define (exp z) + (if (real? z) ($exp z) + (make-polar ($exp (real-part z)) (imag-part z)))) + +(define (log z) + (if (and (real? z) (>= z 0)) + ($log z) + (make-rectangular ($log (magnitude z)) (angle z)))) + +(define (sqrt z) + (if (real? z) + (if (negative? z) (make-rectangular 0 ($sqrt (- z))) + ($sqrt z)) + (make-polar ($sqrt (magnitude z)) (/ (angle z) 2)))) + +(define expt + (let ((integer-expt integer-expt)) + (lambda (z1 z2) + (cond ((integer? z2) + (if (negative? z2) + (/ 1 (integer-expt z1 (- z2))) + (integer-expt z1 z2))) + ((and (real? z2) (real? z1) (>= z1 0)) + ($expt z1 z2)) + (else + (exp (* z2 (log z1)))))))) + +(define (sinh z) + (if (real? z) ($sinh z) + (let ((x (real-part z)) (y (imag-part z))) + (make-rectangular (* ($sinh x) ($cos y)) + (* ($cosh x) ($sin y)))))) +(define (cosh z) + (if (real? z) ($cosh z) + (let ((x (real-part z)) (y (imag-part z))) + (make-rectangular (* ($cosh x) ($cos y)) + (* ($sinh x) ($sin y)))))) +(define (tanh z) + (if (real? z) ($tanh z) + (let* ((x (* 2 (real-part z))) + (y (* 2 (imag-part z))) + (w (+ ($cosh x) ($cos y)))) + (make-rectangular (/ ($sinh x) w) (/ ($sin y) w))))) + +(define (asinh z) + (if (real? z) ($asinh z) + (log (+ z (sqrt (+ (* z z) 1)))))) + +(define (acosh z) + (if (and (real? z) (>= z 1)) + ($acosh z) + (log (+ z (sqrt (- (* z z) 1)))))) + +(define (atanh z) + (if (and (real? z) (> z -1) (< z 1)) + ($atanh z) + (/ (log (/ (+ 1 z) (- 1 z))) 2))) + +(define (sin z) + (if (real? z) ($sin z) + (let ((x (real-part z)) (y (imag-part z))) + (make-rectangular (* ($sin x) ($cosh y)) + (* ($cos x) ($sinh y)))))) +(define (cos z) + (if (real? z) ($cos z) + (let ((x (real-part z)) (y (imag-part z))) + (make-rectangular (* ($cos x) ($cosh y)) + (- (* ($sin x) ($sinh y))))))) +(define (tan z) + (if (real? z) ($tan z) + (let* ((x (* 2 (real-part z))) + (y (* 2 (imag-part z))) + (w (+ ($cos x) ($cosh y)))) + (make-rectangular (/ ($sin x) w) (/ ($sinh y) w))))) + +(define (asin z) + (if (and (real? z) (>= z -1) (<= z 1)) + ($asin z) + (* -i (asinh (* +i z))))) + +(define (acos z) + (if (and (real? z) (>= z -1) (<= z 1)) + ($acos z) + (+ (/ (angle -1) 2) (* +i (asinh (* +i z)))))) + +(define (atan z . y) + (if (null? y) + (if (real? z) ($atan z) + (/ (log (/ (- +i z) (+ +i z))) +2i)) + ($atan2 z (car y)))) + +(define (log10 arg) + (/ (log arg) (log 10))) + + + +;;; {Reader Extensions} +;;; + +;;; Reader code for various "#c" forms. +;;; + +(read-hash-extend #\' (lambda (c port) + (read port))) + +(define read-eval? (make-fluid)) +(fluid-set! read-eval? #f) +(read-hash-extend #\. + (lambda (c port) + (if (fluid-ref read-eval?) + (eval (read port) (interaction-environment)) + (error + "#. read expansion found and read-eval? is #f.")))) + + +;;; {Command Line Options} +;;; + +(define (get-option argv kw-opts kw-args return) + (cond + ((null? argv) + (return #f #f argv)) + + ((or (not (eq? #\- (string-ref (car argv) 0))) + (eq? (string-length (car argv)) 1)) + (return 'normal-arg (car argv) (cdr argv))) + + ((eq? #\- (string-ref (car argv) 1)) + (let* ((kw-arg-pos (or (string-index (car argv) #\=) + (string-length (car argv)))) + (kw (symbol->keyword (substring (car argv) 2 kw-arg-pos))) + (kw-opt? (member kw kw-opts)) + (kw-arg? (member kw kw-args)) + (arg (or (and (not (eq? kw-arg-pos (string-length (car argv)))) + (substring (car argv) + (+ kw-arg-pos 1) + (string-length (car argv)))) + (and kw-arg? + (begin (set! argv (cdr argv)) (car argv)))))) + (if (or kw-opt? kw-arg?) + (return kw arg (cdr argv)) + (return 'usage-error kw (cdr argv))))) + + (else + (let* ((char (substring (car argv) 1 2)) + (kw (symbol->keyword char))) + (cond + + ((member kw kw-opts) + (let* ((rest-car (substring (car argv) 2 (string-length (car argv)))) + (new-argv (if (= 0 (string-length rest-car)) + (cdr argv) + (cons (string-append "-" rest-car) (cdr argv))))) + (return kw #f new-argv))) + + ((member kw kw-args) + (let* ((rest-car (substring (car argv) 2 (string-length (car argv)))) + (arg (if (= 0 (string-length rest-car)) + (cadr argv) + rest-car)) + (new-argv (if (= 0 (string-length rest-car)) + (cddr argv) + (cdr argv)))) + (return kw arg new-argv))) + + (else (return 'usage-error kw argv))))))) + +(define (for-next-option proc argv kw-opts kw-args) + (let loop ((argv argv)) + (get-option argv kw-opts kw-args + (lambda (opt opt-arg argv) + (and opt (proc opt opt-arg argv loop)))))) + +(define (display-usage-report kw-desc) + (for-each + (lambda (kw) + (or (eq? (car kw) #t) + (eq? (car kw) 'else) + (let* ((opt-desc kw) + (help (cadr opt-desc)) + (opts (car opt-desc)) + (opts-proper (if (string? (car opts)) (cdr opts) opts)) + (arg-name (if (string? (car opts)) + (string-append "<" (car opts) ">") + "")) + (left-part (string-append + (with-output-to-string + (lambda () + (map (lambda (x) (display (keyword->symbol x)) (display " ")) + opts-proper))) + arg-name)) + (middle-part (if (and (< (string-length left-part) 30) + (< (string-length help) 40)) + (make-string (- 30 (string-length left-part)) #\ ) + "\n\t"))) + (display left-part) + (display middle-part) + (display help) + (newline)))) + kw-desc)) + + + +(define (transform-usage-lambda cases) + (let* ((raw-usage (delq! 'else (map car cases))) + (usage-sans-specials (map (lambda (x) + (or (and (not (list? x)) x) + (and (symbol? (car x)) #t) + (and (boolean? (car x)) #t) + x)) + raw-usage)) + (usage-desc (delq! #t usage-sans-specials)) + (kw-desc (map car usage-desc)) + (kw-opts (apply append (map (lambda (x) (and (not (string? (car x))) x)) kw-desc))) + (kw-args (apply append (map (lambda (x) (and (string? (car x)) (cdr x))) kw-desc))) + (transmogrified-cases (map (lambda (case) + (cons (let ((opts (car case))) + (if (or (boolean? opts) (eq? 'else opts)) + opts + (cond + ((symbol? (car opts)) opts) + ((boolean? (car opts)) opts) + ((string? (caar opts)) (cdar opts)) + (else (car opts))))) + (cdr case))) + cases))) + `(let ((%display-usage (lambda () (display-usage-report ',usage-desc)))) + (lambda (%argv) + (let %next-arg ((%argv %argv)) + (get-option %argv + ',kw-opts + ',kw-args + (lambda (%opt %arg %new-argv) + (case %opt + ,@ transmogrified-cases)))))))) + + + + +;;; {Low Level Modules} +;;; +;;; These are the low level data structures for modules. +;;; +;;; !!! warning: The interface to lazy binder procedures is going +;;; to be changed in an incompatible way to permit all the basic +;;; module ops to be virtualized. +;;; +;;; (make-module size use-list lazy-binding-proc) => module +;;; module-{obarray,uses,binder}[|-set!] +;;; (module? obj) => [#t|#f] +;;; (module-locally-bound? module symbol) => [#t|#f] +;;; (module-bound? module symbol) => [#t|#f] +;;; (module-symbol-locally-interned? module symbol) => [#t|#f] +;;; (module-symbol-interned? module symbol) => [#t|#f] +;;; (module-local-variable module symbol) => [# | #f] +;;; (module-variable module symbol) => [# | #f] +;;; (module-symbol-binding module symbol opt-value) +;;; => [ | opt-value | an error occurs ] +;;; (module-make-local-var! module symbol) => # +;;; (module-add! module symbol var) => unspecified +;;; (module-remove! module symbol) => unspecified +;;; (module-for-each proc module) => unspecified +;;; (make-scm-module) => module ; a lazy copy of the symhash module +;;; (set-current-module module) => unspecified +;;; (current-module) => # +;;; +;;; + + +;;; {Printing Modules} +;; This is how modules are printed. You can re-define it. +;; (Redefining is actually more complicated than simply redefining +;; %print-module because that would only change the binding and not +;; the value stored in the vtable that determines how record are +;; printed. Sigh.) + +(define (%print-module mod port) ; unused args: depth length style table) + (display "#<" port) + (display (or (module-kind mod) "module") port) + (let ((name (module-name mod))) + (if name + (begin + (display " " port) + (display name port)))) + (display " " port) + (display (number->string (object-address mod) 16) port) + (display ">" port)) + +;; module-type +;; +;; A module is characterized by an obarray in which local symbols +;; are interned, a list of modules, "uses", from which non-local +;; bindings can be inherited, and an optional lazy-binder which +;; is a (CLOSURE module symbol) which, as a last resort, can provide +;; bindings that would otherwise not be found locally in the module. +;; +;; NOTE: If you change here, you also need to change libguile/modules.h. +;; +(define module-type + (make-record-type 'module + '(obarray uses binder eval-closure transformer name kind + observers weak-observers observer-id) + %print-module)) + +;; make-module &opt size uses binder +;; +;; Create a new module, perhaps with a particular size of obarray, +;; initial uses list, or binding procedure. +;; +(define make-module + (lambda args + + (define (parse-arg index default) + (if (> (length args) index) + (list-ref args index) + default)) + + (if (> (length args) 3) + (error "Too many args to make-module." args)) + + (let ((size (parse-arg 0 1021)) + (uses (parse-arg 1 '())) + (binder (parse-arg 2 #f))) + + (if (not (integer? size)) + (error "Illegal size to make-module." size)) + (if (not (and (list? uses) + (and-map module? uses))) + (error "Incorrect use list." uses)) + (if (and binder (not (procedure? binder))) + (error + "Lazy-binder expected to be a procedure or #f." binder)) + + (let ((module (module-constructor (make-vector size '()) + uses binder #f #f #f #f + '() + (make-weak-value-hash-table 31) + 0))) + + ;; We can't pass this as an argument to module-constructor, + ;; because we need it to close over a pointer to the module + ;; itself. + (set-module-eval-closure! module (standard-eval-closure module)) + + module)))) + +(define module-constructor (record-constructor module-type)) +(define module-obarray (record-accessor module-type 'obarray)) +(define set-module-obarray! (record-modifier module-type 'obarray)) +(define module-uses (record-accessor module-type 'uses)) +(define set-module-uses! (record-modifier module-type 'uses)) +(define module-binder (record-accessor module-type 'binder)) +(define set-module-binder! (record-modifier module-type 'binder)) + +;; NOTE: This binding is used in libguile/modules.c. +(define module-eval-closure (record-accessor module-type 'eval-closure)) + +(define module-transformer (record-accessor module-type 'transformer)) +(define set-module-transformer! (record-modifier module-type 'transformer)) +(define module-name (record-accessor module-type 'name)) +(define set-module-name! (record-modifier module-type 'name)) +(define module-kind (record-accessor module-type 'kind)) +(define set-module-kind! (record-modifier module-type 'kind)) +(define module-observers (record-accessor module-type 'observers)) +(define set-module-observers! (record-modifier module-type 'observers)) +(define module-weak-observers (record-accessor module-type 'weak-observers)) +(define module-observer-id (record-accessor module-type 'observer-id)) +(define set-module-observer-id! (record-modifier module-type 'observer-id)) +(define module? (record-predicate module-type)) + +(define set-module-eval-closure! + (let ((setter (record-modifier module-type 'eval-closure))) + (lambda (module closure) + (setter module closure) + ;; Make it possible to lookup the module from the environment. + ;; This implementation is correct since an eval closure can belong + ;; to maximally one module. + (set-procedure-property! closure 'module module)))) + +(begin-deprecated + (define (eval-in-module exp mod) + (issue-deprecation-warning + "`eval-in-module' is deprecated. Use `eval' instead.") + (eval exp mod))) + + +;;; {Observer protocol} +;;; + +(define (module-observe module proc) + (set-module-observers! module (cons proc (module-observers module))) + (cons module proc)) + +(define (module-observe-weak module proc) + (let ((id (module-observer-id module))) + (hash-set! (module-weak-observers module) id proc) + (set-module-observer-id! module (+ 1 id)) + (cons module id))) + +(define (module-unobserve token) + (let ((module (car token)) + (id (cdr token))) + (if (integer? id) + (hash-remove! (module-weak-observers module) id) + (set-module-observers! module (delq1! id (module-observers module))))) + *unspecified*) + +(define (module-modified m) + (for-each (lambda (proc) (proc m)) (module-observers m)) + (hash-fold (lambda (id proc res) (proc m)) #f (module-weak-observers m))) + + +;;; {Module Searching in General} +;;; +;;; We sometimes want to look for properties of a symbol +;;; just within the obarray of one module. If the property +;;; holds, then it is said to hold ``locally'' as in, ``The symbol +;;; DISPLAY is locally rebound in the module `safe-guile'.'' +;;; +;;; +;;; Other times, we want to test for a symbol property in the obarray +;;; of M and, if it is not found there, try each of the modules in the +;;; uses list of M. This is the normal way of testing for some +;;; property, so we state these properties without qualification as +;;; in: ``The symbol 'fnord is interned in module M because it is +;;; interned locally in module M2 which is a member of the uses list +;;; of M.'' +;;; + +;; module-search fn m +;; +;; return the first non-#f result of FN applied to M and then to +;; the modules in the uses of m, and so on recursively. If all applications +;; return #f, then so does this function. +;; +(define (module-search fn m v) + (define (loop pos) + (and (pair? pos) + (or (module-search fn (car pos) v) + (loop (cdr pos))))) + (or (fn m v) + (loop (module-uses m)))) + + +;;; {Is a symbol bound in a module?} +;;; +;;; Symbol S in Module M is bound if S is interned in M and if the binding +;;; of S in M has been set to some well-defined value. +;;; + +;; module-locally-bound? module symbol +;; +;; Is a symbol bound (interned and defined) locally in a given module? +;; +(define (module-locally-bound? m v) + (let ((var (module-local-variable m v))) + (and var + (variable-bound? var)))) + +;; module-bound? module symbol +;; +;; Is a symbol bound (interned and defined) anywhere in a given module +;; or its uses? +;; +(define (module-bound? m v) + (module-search module-locally-bound? m v)) + +;;; {Is a symbol interned in a module?} +;;; +;;; Symbol S in Module M is interned if S occurs in +;;; of S in M has been set to some well-defined value. +;;; +;;; It is possible to intern a symbol in a module without providing +;;; an initial binding for the corresponding variable. This is done +;;; with: +;;; (module-add! module symbol (make-undefined-variable)) +;;; +;;; In that case, the symbol is interned in the module, but not +;;; bound there. The unbound symbol shadows any binding for that +;;; symbol that might otherwise be inherited from a member of the uses list. +;;; + +(define (module-obarray-get-handle ob key) + ((if (symbol? key) hashq-get-handle hash-get-handle) ob key)) + +(define (module-obarray-ref ob key) + ((if (symbol? key) hashq-ref hash-ref) ob key)) + +(define (module-obarray-set! ob key val) + ((if (symbol? key) hashq-set! hash-set!) ob key val)) + +(define (module-obarray-remove! ob key) + ((if (symbol? key) hashq-remove! hash-remove!) ob key)) + +;; module-symbol-locally-interned? module symbol +;; +;; is a symbol interned (not neccessarily defined) locally in a given module +;; or its uses? Interned symbols shadow inherited bindings even if +;; they are not themselves bound to a defined value. +;; +(define (module-symbol-locally-interned? m v) + (not (not (module-obarray-get-handle (module-obarray m) v)))) + +;; module-symbol-interned? module symbol +;; +;; is a symbol interned (not neccessarily defined) anywhere in a given module +;; or its uses? Interned symbols shadow inherited bindings even if +;; they are not themselves bound to a defined value. +;; +(define (module-symbol-interned? m v) + (module-search module-symbol-locally-interned? m v)) + + +;;; {Mapping modules x symbols --> variables} +;;; + +;; module-local-variable module symbol +;; return the local variable associated with a MODULE and SYMBOL. +;; +;;; This function is very important. It is the only function that can +;;; return a variable from a module other than the mutators that store +;;; new variables in modules. Therefore, this function is the location +;;; of the "lazy binder" hack. +;;; +;;; If symbol is defined in MODULE, and if the definition binds symbol +;;; to a variable, return that variable object. +;;; +;;; If the symbols is not found at first, but the module has a lazy binder, +;;; then try the binder. +;;; +;;; If the symbol is not found at all, return #f. +;;; +(define (module-local-variable m v) +; (caddr +; (list m v + (let ((b (module-obarray-ref (module-obarray m) v))) + (or (and (variable? b) b) + (and (module-binder m) + ((module-binder m) m v #f))))) +;)) + +;; module-variable module symbol +;; +;; like module-local-variable, except search the uses in the +;; case V is not found in M. +;; +;; NOTE: This function is superseded with C code (see modules.c) +;;; when using the standard eval closure. +;; +(define (module-variable m v) + (module-search module-local-variable m v)) + + +;;; {Mapping modules x symbols --> bindings} +;;; +;;; These are similar to the mapping to variables, except that the +;;; variable is dereferenced. +;;; + +;; module-symbol-binding module symbol opt-value +;; +;; return the binding of a variable specified by name within +;; a given module, signalling an error if the variable is unbound. +;; If the OPT-VALUE is passed, then instead of signalling an error, +;; return OPT-VALUE. +;; +(define (module-symbol-local-binding m v . opt-val) + (let ((var (module-local-variable m v))) + (if var + (variable-ref var) + (if (not (null? opt-val)) + (car opt-val) + (error "Locally unbound variable." v))))) + +;; module-symbol-binding module symbol opt-value +;; +;; return the binding of a variable specified by name within +;; a given module, signalling an error if the variable is unbound. +;; If the OPT-VALUE is passed, then instead of signalling an error, +;; return OPT-VALUE. +;; +(define (module-symbol-binding m v . opt-val) + (let ((var (module-variable m v))) + (if var + (variable-ref var) + (if (not (null? opt-val)) + (car opt-val) + (error "Unbound variable." v))))) + + + +;;; {Adding Variables to Modules} +;;; +;;; + + +;; module-make-local-var! module symbol +;; +;; ensure a variable for V in the local namespace of M. +;; If no variable was already there, then create a new and uninitialzied +;; variable. +;; +(define (module-make-local-var! m v) + (or (let ((b (module-obarray-ref (module-obarray m) v))) + (and (variable? b) + (begin + (module-modified m) + b))) + (and (module-binder m) + ((module-binder m) m v #t)) + (begin + (let ((answer (make-undefined-variable))) + (variable-set-name-hint! answer v) + (module-obarray-set! (module-obarray m) v answer) + (module-modified m) + answer)))) + +;; module-ensure-local-variable! module symbol +;; +;; Ensure that there is a local variable in MODULE for SYMBOL. If +;; there is no binding for SYMBOL, create a new uninitialized +;; variable. Return the local variable. +;; +(define (module-ensure-local-variable! module symbol) + (or (module-local-variable module symbol) + (let ((var (make-undefined-variable))) + (variable-set-name-hint! var symbol) + (module-add! module symbol var) + var))) + +;; module-add! module symbol var +;; +;; ensure a particular variable for V in the local namespace of M. +;; +(define (module-add! m v var) + (if (not (variable? var)) + (error "Bad variable to module-add!" var)) + (module-obarray-set! (module-obarray m) v var) + (module-modified m)) + +;; module-remove! +;; +;; make sure that a symbol is undefined in the local namespace of M. +;; +(define (module-remove! m v) + (module-obarray-remove! (module-obarray m) v) + (module-modified m)) + +(define (module-clear! m) + (vector-fill! (module-obarray m) '()) + (module-modified m)) + +;; MODULE-FOR-EACH -- exported +;; +;; Call PROC on each symbol in MODULE, with arguments of (SYMBOL VARIABLE). +;; +(define (module-for-each proc module) + (let ((obarray (module-obarray module))) + (do ((index 0 (+ index 1)) + (end (vector-length obarray))) + ((= index end)) + (for-each + (lambda (bucket) + (proc (car bucket) (cdr bucket))) + (vector-ref obarray index))))) + + +(define (module-map proc module) + (let* ((obarray (module-obarray module)) + (end (vector-length obarray))) + + (let loop ((i 0) + (answer '())) + (if (= i end) + answer + (loop (+ 1 i) + (append! + (map (lambda (bucket) + (proc (car bucket) (cdr bucket))) + (vector-ref obarray i)) + answer)))))) + + +;;; {Low Level Bootstrapping} +;;; + +;; make-root-module + +;; A root module uses the pre-modules-obarray as its obarray. This +;; special obarray accumulates all bindings that have been established +;; before the module system is fully booted. +;; +;; (The obarray continues to be used by code that has been closed over +;; before the module system has been booted.) + +(define (make-root-module) + (let ((m (make-module 0))) + (set-module-obarray! m (%get-pre-modules-obarray)) + m)) + +;; make-scm-module + +;; The root interface is a module that uses the same obarray as the +;; root module. It does not allow new definitions, tho. + +(define (make-scm-module) + (let ((m (make-module 0))) + (set-module-obarray! m (%get-pre-modules-obarray)) + (set-module-eval-closure! m (standard-interface-eval-closure m)) + m)) + + + +;;; {Module-based Loading} +;;; + +(define (save-module-excursion thunk) + (let ((inner-module (current-module)) + (outer-module #f)) + (dynamic-wind (lambda () + (set! outer-module (current-module)) + (set-current-module inner-module) + (set! inner-module #f)) + thunk + (lambda () + (set! inner-module (current-module)) + (set-current-module outer-module) + (set! outer-module #f))))) + +(define basic-load load) + +(define (load-module filename) + (save-module-excursion + (lambda () + (let ((oldname (and (current-load-port) + (port-filename (current-load-port))))) + (basic-load (if (and oldname + (> (string-length filename) 0) + (not (char=? (string-ref filename 0) #\/)) + (not (string=? (dirname oldname) "."))) + (string-append (dirname oldname) "/" filename) + filename)))))) + + + +;;; {MODULE-REF -- exported} +;; +;; Returns the value of a variable called NAME in MODULE or any of its +;; used modules. If there is no such variable, then if the optional third +;; argument DEFAULT is present, it is returned; otherwise an error is signaled. +;; +(define (module-ref module name . rest) + (let ((variable (module-variable module name))) + (if (and variable (variable-bound? variable)) + (variable-ref variable) + (if (null? rest) + (error "No variable named" name 'in module) + (car rest) ; default value + )))) + +;; MODULE-SET! -- exported +;; +;; Sets the variable called NAME in MODULE (or in a module that MODULE uses) +;; to VALUE; if there is no such variable, an error is signaled. +;; +(define (module-set! module name value) + (let ((variable (module-variable module name))) + (if variable + (variable-set! variable value) + (error "No variable named" name 'in module)))) + +;; MODULE-DEFINE! -- exported +;; +;; Sets the variable called NAME in MODULE to VALUE; if there is no such +;; variable, it is added first. +;; +(define (module-define! module name value) + (let ((variable (module-local-variable module name))) + (if variable + (begin + (variable-set! variable value) + (module-modified module)) + (let ((variable (make-variable value))) + (variable-set-name-hint! variable name) + (module-add! module name variable))))) + +;; MODULE-DEFINED? -- exported +;; +;; Return #t iff NAME is defined in MODULE (or in a module that MODULE +;; uses) +;; +(define (module-defined? module name) + (let ((variable (module-variable module name))) + (and variable (variable-bound? variable)))) + +;; MODULE-USE! module interface +;; +;; Add INTERFACE to the list of interfaces used by MODULE. +;; +(define (module-use! module interface) + (set-module-uses! module + (cons interface (delq! interface (module-uses module)))) + (module-modified module)) + + +;;; {Recursive Namespaces} +;;; +;;; +;;; A hierarchical namespace emerges if we consider some module to be +;;; root, and variables bound to modules as nested namespaces. +;;; +;;; The routines in this file manage variable names in hierarchical namespace. +;;; Each variable name is a list of elements, looked up in successively nested +;;; modules. +;;; +;;; (nested-ref some-root-module '(foo bar baz)) +;;; => +;;; +;;; +;;; There are: +;;; +;;; ;; a-root is a module +;;; ;; name is a list of symbols +;;; +;;; nested-ref a-root name +;;; nested-set! a-root name val +;;; nested-define! a-root name val +;;; nested-remove! a-root name +;;; +;;; +;;; (current-module) is a natural choice for a-root so for convenience there are +;;; also: +;;; +;;; local-ref name == nested-ref (current-module) name +;;; local-set! name val == nested-set! (current-module) name val +;;; local-define! name val == nested-define! (current-module) name val +;;; local-remove! name == nested-remove! (current-module) name +;;; + + +(define (nested-ref root names) + (let loop ((cur root) + (elts names)) + (cond + ((null? elts) cur) + ((not (module? cur)) #f) + (else (loop (module-ref cur (car elts) #f) (cdr elts)))))) + +(define (nested-set! root names val) + (let loop ((cur root) + (elts names)) + (if (null? (cdr elts)) + (module-set! cur (car elts) val) + (loop (module-ref cur (car elts)) (cdr elts))))) + +(define (nested-define! root names val) + (let loop ((cur root) + (elts names)) + (if (null? (cdr elts)) + (module-define! cur (car elts) val) + (loop (module-ref cur (car elts)) (cdr elts))))) + +(define (nested-remove! root names) + (let loop ((cur root) + (elts names)) + (if (null? (cdr elts)) + (module-remove! cur (car elts)) + (loop (module-ref cur (car elts)) (cdr elts))))) + +(define (local-ref names) (nested-ref (current-module) names)) +(define (local-set! names val) (nested-set! (current-module) names val)) +(define (local-define names val) (nested-define! (current-module) names val)) +(define (local-remove names) (nested-remove! (current-module) names)) +;;; boot-9.scm ends here Added: external/Pygments-0.9/tests/examplefiles/ceval.c ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/ceval.c Tue Oct 23 20:20:22 2007 @@ -0,0 +1,2604 @@ + +/* Execute compiled code */ + +/* XXX TO DO: + XXX speed up searching for keywords by using a dictionary + XXX document it! + */ + +/* enable more aggressive intra-module optimizations, where available */ +#define PY_LOCAL_AGGRESSIVE + +#include "Python.h" + +#include "code.h" +#include "frameobject.h" +#include "eval.h" +#include "opcode.h" +#include "structmember.h" + +#include + +#ifndef WITH_TSC + +#define READ_TIMESTAMP(var) + +#else + +typedef unsigned long long uint64; + +#if defined(__ppc__) /* <- Don't know if this is the correct symbol; this + section should work for GCC on any PowerPC platform, + irrespective of OS. POWER? Who knows :-) */ + +#define READ_TIMESTAMP(var) ppc_getcounter(&var) + +static void +ppc_getcounter(uint64 *v) +{ + register unsigned long tbu, tb, tbu2; + + loop: + asm volatile ("mftbu %0" : "=r" (tbu) ); + asm volatile ("mftb %0" : "=r" (tb) ); + asm volatile ("mftbu %0" : "=r" (tbu2)); + if (__builtin_expect(tbu != tbu2, 0)) goto loop; + + /* The slightly peculiar way of writing the next lines is + compiled better by GCC than any other way I tried. */ + ((long*)(v))[0] = tbu; + ((long*)(v))[1] = tb; +} + +#else /* this is for linux/x86 (and probably any other GCC/x86 combo) */ + +#define READ_TIMESTAMP(val) \ + __asm__ __volatile__("rdtsc" : "=A" (val)) + +#endif + +void dump_tsc(int opcode, int ticked, uint64 inst0, uint64 inst1, + uint64 loop0, uint64 loop1, uint64 intr0, uint64 intr1) +{ + uint64 intr, inst, loop; + PyThreadState *tstate = PyThreadState_Get(); + if (!tstate->interp->tscdump) + return; + intr = intr1 - intr0; + inst = inst1 - inst0 - intr; + loop = loop1 - loop0 - intr; + fprintf(stderr, "opcode=%03d t=%d inst=%06lld loop=%06lld\n", + opcode, ticked, inst, loop); +} + +#endif + +/* Turn this on if your compiler chokes on the big switch: */ +/* #define CASE_TOO_BIG 1 */ + +#ifdef Py_DEBUG +/* For debugging the interpreter: */ +#define LLTRACE 1 /* Low-level trace feature */ +#define CHECKEXC 1 /* Double-check exception checking */ +#endif + +typedef PyObject *(*callproc)(PyObject *, PyObject *, PyObject *); + +/* Forward declarations */ +#ifdef WITH_TSC +static PyObject * call_function(PyObject ***, int, uint64*, uint64*); +#else +static PyObject * call_function(PyObject ***, int); +#endif +static PyObject * fast_function(PyObject *, PyObject ***, int, int, int); +static PyObject * do_call(PyObject *, PyObject ***, int, int); +static PyObject * ext_do_call(PyObject *, PyObject ***, int, int, int); +static PyObject * update_keyword_args(PyObject *, int, PyObject ***,PyObject *); +static PyObject * update_star_args(int, int, PyObject *, PyObject ***); +static PyObject * load_args(PyObject ***, int); +#define CALL_FLAG_VAR 1 +#define CALL_FLAG_KW 2 + +#ifdef LLTRACE +static int lltrace; +static int prtrace(PyObject *, char *); +#endif +static int call_trace(Py_tracefunc, PyObject *, PyFrameObject *, + int, PyObject *); +static void call_trace_protected(Py_tracefunc, PyObject *, + PyFrameObject *, int, PyObject *); +static void call_exc_trace(Py_tracefunc, PyObject *, PyFrameObject *); +static int maybe_call_line_trace(Py_tracefunc, PyObject *, + PyFrameObject *, int *, int *, int *); + +static PyObject * apply_slice(PyObject *, PyObject *, PyObject *); +static int assign_slice(PyObject *, PyObject *, + PyObject *, PyObject *); +static PyObject * cmp_outcome(int, PyObject *, PyObject *); +static PyObject * import_from(PyObject *, PyObject *); +static int import_all_from(PyObject *, PyObject *); +static PyObject * build_class(PyObject *, PyObject *, PyObject *); +static int exec_statement(PyFrameObject *, + PyObject *, PyObject *, PyObject *); +static void set_exc_info(PyThreadState *, PyObject *, PyObject *, PyObject *); +static void reset_exc_info(PyThreadState *); +static void format_exc_check_arg(PyObject *, char *, PyObject *); +static PyObject * string_concatenate(PyObject *, PyObject *, + PyFrameObject *, unsigned char *); + +#define NAME_ERROR_MSG \ + "name '%.200s' is not defined" +#define GLOBAL_NAME_ERROR_MSG \ + "global name '%.200s' is not defined" +#define UNBOUNDLOCAL_ERROR_MSG \ + "local variable '%.200s' referenced before assignment" +#define UNBOUNDFREE_ERROR_MSG \ + "free variable '%.200s' referenced before assignment" \ + " in enclosing scope" + +/* Dynamic execution profile */ +#ifdef DYNAMIC_EXECUTION_PROFILE +#ifdef DXPAIRS +static long dxpairs[257][256]; +#define dxp dxpairs[256] +#else +static long dxp[256]; +#endif +#endif + +/* Function call profile */ +#ifdef CALL_PROFILE +#define PCALL_NUM 11 +static int pcall[PCALL_NUM]; + +#define PCALL_ALL 0 +#define PCALL_FUNCTION 1 +#define PCALL_FAST_FUNCTION 2 +#define PCALL_FASTER_FUNCTION 3 +#define PCALL_METHOD 4 +#define PCALL_BOUND_METHOD 5 +#define PCALL_CFUNCTION 6 +#define PCALL_TYPE 7 +#define PCALL_GENERATOR 8 +#define PCALL_OTHER 9 +#define PCALL_POP 10 + +/* Notes about the statistics + + PCALL_FAST stats + + FAST_FUNCTION means no argument tuple needs to be created. + FASTER_FUNCTION means that the fast-path frame setup code is used. + + If there is a method call where the call can be optimized by changing + the argument tuple and calling the function directly, it gets recorded + twice. + + As a result, the relationship among the statistics appears to be + PCALL_ALL == PCALL_FUNCTION + PCALL_METHOD - PCALL_BOUND_METHOD + + PCALL_CFUNCTION + PCALL_TYPE + PCALL_GENERATOR + PCALL_OTHER + PCALL_FUNCTION > PCALL_FAST_FUNCTION > PCALL_FASTER_FUNCTION + PCALL_METHOD > PCALL_BOUND_METHOD +*/ + +#define PCALL(POS) pcall[POS]++ + +PyObject * +PyEval_GetCallStats(PyObject *self) +{ + return Py_BuildValue("iiiiiiiiii", + pcall[0], pcall[1], pcall[2], pcall[3], + pcall[4], pcall[5], pcall[6], pcall[7], + pcall[8], pcall[9]); +} +#else +#define PCALL(O) + +PyObject * +PyEval_GetCallStats(PyObject *self) +{ + Py_INCREF(Py_None); + return Py_None; +} +#endif + + +#ifdef WITH_THREAD + +#ifdef HAVE_ERRNO_H +#include +#endif +#include "pythread.h" + +static PyThread_type_lock interpreter_lock = 0; /* This is the GIL */ +static long main_thread = 0; + +int +PyEval_ThreadsInitialized(void) +{ + return interpreter_lock != 0; +} + +void +PyEval_InitThreads(void) +{ + if (interpreter_lock) + return; + interpreter_lock = PyThread_allocate_lock(); + PyThread_acquire_lock(interpreter_lock, 1); + main_thread = PyThread_get_thread_ident(); +} + +void +PyEval_AcquireLock(void) +{ + PyThread_acquire_lock(interpreter_lock, 1); +} + +void +PyEval_ReleaseLock(void) +{ + PyThread_release_lock(interpreter_lock); +} + +void +PyEval_AcquireThread(PyThreadState *tstate) +{ + if (tstate == NULL) + Py_FatalError("PyEval_AcquireThread: NULL new thread state"); + /* Check someone has called PyEval_InitThreads() to create the lock */ + assert(interpreter_lock); + PyThread_acquire_lock(interpreter_lock, 1); + if (PyThreadState_Swap(tstate) != NULL) + Py_FatalError( + "PyEval_AcquireThread: non-NULL old thread state"); +} + +void +PyEval_ReleaseThread(PyThreadState *tstate) +{ + if (tstate == NULL) + Py_FatalError("PyEval_ReleaseThread: NULL thread state"); + if (PyThreadState_Swap(NULL) != tstate) + Py_FatalError("PyEval_ReleaseThread: wrong thread state"); + PyThread_release_lock(interpreter_lock); +} + +/* This function is called from PyOS_AfterFork to ensure that newly + created child processes don't hold locks referring to threads which + are not running in the child process. (This could also be done using + pthread_atfork mechanism, at least for the pthreads implementation.) */ + +void +PyEval_ReInitThreads(void) +{ + if (!interpreter_lock) + return; + /*XXX Can't use PyThread_free_lock here because it does too + much error-checking. Doing this cleanly would require + adding a new function to each thread_*.h. Instead, just + create a new lock and waste a little bit of memory */ + interpreter_lock = PyThread_allocate_lock(); + PyThread_acquire_lock(interpreter_lock, 1); + main_thread = PyThread_get_thread_ident(); +} +#endif + +/* Functions save_thread and restore_thread are always defined so + dynamically loaded modules needn't be compiled separately for use + with and without threads: */ + +PyThreadState * +PyEval_SaveThread(void) +{ + PyThreadState *tstate = PyThreadState_Swap(NULL); + if (tstate == NULL) + Py_FatalError("PyEval_SaveThread: NULL tstate"); +#ifdef WITH_THREAD + if (interpreter_lock) + PyThread_release_lock(interpreter_lock); +#endif + return tstate; +} + +void +PyEval_RestoreThread(PyThreadState *tstate) +{ + if (tstate == NULL) + Py_FatalError("PyEval_RestoreThread: NULL tstate"); +#ifdef WITH_THREAD + if (interpreter_lock) { + int err = errno; + PyThread_acquire_lock(interpreter_lock, 1); + errno = err; + } +#endif + PyThreadState_Swap(tstate); +} + + +/* Mechanism whereby asynchronously executing callbacks (e.g. UNIX + signal handlers or Mac I/O completion routines) can schedule calls + to a function to be called synchronously. + The synchronous function is called with one void* argument. + It should return 0 for success or -1 for failure -- failure should + be accompanied by an exception. + + If registry succeeds, the registry function returns 0; if it fails + (e.g. due to too many pending calls) it returns -1 (without setting + an exception condition). + + Note that because registry may occur from within signal handlers, + or other asynchronous events, calling malloc() is unsafe! + +#ifdef WITH_THREAD + Any thread can schedule pending calls, but only the main thread + will execute them. +#endif + + XXX WARNING! ASYNCHRONOUSLY EXECUTING CODE! + There are two possible race conditions: + (1) nested asynchronous registry calls; + (2) registry calls made while pending calls are being processed. + While (1) is very unlikely, (2) is a real possibility. + The current code is safe against (2), but not against (1). + The safety against (2) is derived from the fact that only one + thread (the main thread) ever takes things out of the queue. + + XXX Darn! With the advent of thread state, we should have an array + of pending calls per thread in the thread state! Later... +*/ + +#define NPENDINGCALLS 32 +static struct { + int (*func)(void *); + void *arg; +} pendingcalls[NPENDINGCALLS]; +static volatile int pendingfirst = 0; +static volatile int pendinglast = 0; +static volatile int things_to_do = 0; + +int +Py_AddPendingCall(int (*func)(void *), void *arg) +{ + static volatile int busy = 0; + int i, j; + /* XXX Begin critical section */ + /* XXX If you want this to be safe against nested + XXX asynchronous calls, you'll have to work harder! */ + if (busy) + return -1; + busy = 1; + i = pendinglast; + j = (i + 1) % NPENDINGCALLS; + if (j == pendingfirst) { + busy = 0; + return -1; /* Queue full */ + } + pendingcalls[i].func = func; + pendingcalls[i].arg = arg; + pendinglast = j; + + _Py_Ticker = 0; + things_to_do = 1; /* Signal main loop */ + busy = 0; + /* XXX End critical section */ + return 0; +} + +int +Py_MakePendingCalls(void) +{ + static int busy = 0; +#ifdef WITH_THREAD + if (main_thread && PyThread_get_thread_ident() != main_thread) + return 0; +#endif + if (busy) + return 0; + busy = 1; + things_to_do = 0; + for (;;) { + int i; + int (*func)(void *); + void *arg; + i = pendingfirst; + if (i == pendinglast) + break; /* Queue empty */ + func = pendingcalls[i].func; + arg = pendingcalls[i].arg; + pendingfirst = (i + 1) % NPENDINGCALLS; + if (func(arg) < 0) { + busy = 0; + things_to_do = 1; /* We're not done yet */ + return -1; + } + } + busy = 0; + return 0; +} + + +/* The interpreter's recursion limit */ + +#ifndef Py_DEFAULT_RECURSION_LIMIT +#define Py_DEFAULT_RECURSION_LIMIT 1000 +#endif +static int recursion_limit = Py_DEFAULT_RECURSION_LIMIT; +int _Py_CheckRecursionLimit = Py_DEFAULT_RECURSION_LIMIT; + +int +Py_GetRecursionLimit(void) +{ + return recursion_limit; +} + +void +Py_SetRecursionLimit(int new_limit) +{ + recursion_limit = new_limit; + _Py_CheckRecursionLimit = recursion_limit; +} + +/* the macro Py_EnterRecursiveCall() only calls _Py_CheckRecursiveCall() + if the recursion_depth reaches _Py_CheckRecursionLimit. + If USE_STACKCHECK, the macro decrements _Py_CheckRecursionLimit + to guarantee that _Py_CheckRecursiveCall() is regularly called. + Without USE_STACKCHECK, there is no need for this. */ +int +_Py_CheckRecursiveCall(char *where) +{ + PyThreadState *tstate = PyThreadState_GET(); + +#ifdef USE_STACKCHECK + if (PyOS_CheckStack()) { + --tstate->recursion_depth; + PyErr_SetString(PyExc_MemoryError, "Stack overflow"); + return -1; + } +#endif + if (tstate->recursion_depth > recursion_limit) { + --tstate->recursion_depth; + PyErr_Format(PyExc_RuntimeError, + "maximum recursion depth exceeded%s", + where); + return -1; + } + _Py_CheckRecursionLimit = recursion_limit; + return 0; +} + +/* Status code for main loop (reason for stack unwind) */ +enum why_code { + WHY_NOT = 0x0001, /* No error */ + WHY_EXCEPTION = 0x0002, /* Exception occurred */ + WHY_RERAISE = 0x0004, /* Exception re-raised by 'finally' */ + WHY_RETURN = 0x0008, /* 'return' statement */ + WHY_BREAK = 0x0010, /* 'break' statement */ + WHY_CONTINUE = 0x0020, /* 'continue' statement */ + WHY_YIELD = 0x0040 /* 'yield' operator */ +}; + +static enum why_code do_raise(PyObject *, PyObject *, PyObject *); +static int unpack_iterable(PyObject *, int, PyObject **); + +/* for manipulating the thread switch and periodic "stuff" - used to be + per thread, now just a pair o' globals */ +int _Py_CheckInterval = 100; +volatile int _Py_Ticker = 100; + +PyObject * +PyEval_EvalCode(PyCodeObject *co, PyObject *globals, PyObject *locals) +{ + /* XXX raise SystemError if globals is NULL */ + return PyEval_EvalCodeEx(co, + globals, locals, + (PyObject **)NULL, 0, + (PyObject **)NULL, 0, + (PyObject **)NULL, 0, + NULL); +} + + +/* Interpreter main loop */ + +PyObject * +PyEval_EvalFrame(PyFrameObject *f) { + /* This is for backward compatibility with extension modules that + used this API; core interpreter code should call PyEval_EvalFrameEx() */ + return PyEval_EvalFrameEx(f, 0); +} + +PyObject * +PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) +{ +#ifdef DXPAIRS + int lastopcode = 0; +#endif + register PyObject **stack_pointer; /* Next free slot in value stack */ + register unsigned char *next_instr; + register int opcode; /* Current opcode */ + register int oparg; /* Current opcode argument, if any */ + register enum why_code why; /* Reason for block stack unwind */ + register int err; /* Error status -- nonzero if error */ + register PyObject *x; /* Result object -- NULL if error */ + register PyObject *v; /* Temporary objects popped off stack */ + register PyObject *w; + register PyObject *u; + register PyObject *t; + register PyObject *stream = NULL; /* for PRINT opcodes */ + register PyObject **fastlocals, **freevars; + PyObject *retval = NULL; /* Return value */ + PyThreadState *tstate = PyThreadState_GET(); + PyCodeObject *co; + + /* when tracing we set things up so that + + not (instr_lb <= current_bytecode_offset < instr_ub) + + is true when the line being executed has changed. The + initial values are such as to make this false the first + time it is tested. */ + int instr_ub = -1, instr_lb = 0, instr_prev = -1; + + unsigned char *first_instr; + PyObject *names; + PyObject *consts; +#if defined(Py_DEBUG) || defined(LLTRACE) + /* Make it easier to find out where we are with a debugger */ + char *filename; +#endif + +/* Tuple access macros */ + +#ifndef Py_DEBUG +#define GETITEM(v, i) PyTuple_GET_ITEM((PyTupleObject *)(v), (i)) +#else +#define GETITEM(v, i) PyTuple_GetItem((v), (i)) +#endif + +#ifdef WITH_TSC +/* Use Pentium timestamp counter to mark certain events: + inst0 -- beginning of switch statement for opcode dispatch + inst1 -- end of switch statement (may be skipped) + loop0 -- the top of the mainloop + loop1 -- place where control returns again to top of mainloop + (may be skipped) + intr1 -- beginning of long interruption + intr2 -- end of long interruption + + Many opcodes call out to helper C functions. In some cases, the + time in those functions should be counted towards the time for the + opcode, but not in all cases. For example, a CALL_FUNCTION opcode + calls another Python function; there's no point in charge all the + bytecode executed by the called function to the caller. + + It's hard to make a useful judgement statically. In the presence + of operator overloading, it's impossible to tell if a call will + execute new Python code or not. + + It's a case-by-case judgement. I'll use intr1 for the following + cases: + + EXEC_STMT + IMPORT_STAR + IMPORT_FROM + CALL_FUNCTION (and friends) + + */ + uint64 inst0, inst1, loop0, loop1, intr0 = 0, intr1 = 0; + int ticked = 0; + + READ_TIMESTAMP(inst0); + READ_TIMESTAMP(inst1); + READ_TIMESTAMP(loop0); + READ_TIMESTAMP(loop1); + + /* shut up the compiler */ + opcode = 0; +#endif + +/* Code access macros */ + +#define INSTR_OFFSET() ((int)(next_instr - first_instr)) +#define NEXTOP() (*next_instr++) +#define NEXTARG() (next_instr += 2, (next_instr[-1]<<8) + next_instr[-2]) +#define PEEKARG() ((next_instr[2]<<8) + next_instr[1]) +#define JUMPTO(x) (next_instr = first_instr + (x)) +#define JUMPBY(x) (next_instr += (x)) + +/* OpCode prediction macros + Some opcodes tend to come in pairs thus making it possible to predict + the second code when the first is run. For example, COMPARE_OP is often + followed by JUMP_IF_FALSE or JUMP_IF_TRUE. And, those opcodes are often + followed by a POP_TOP. + + Verifying the prediction costs a single high-speed test of register + variable against a constant. If the pairing was good, then the + processor has a high likelihood of making its own successful branch + prediction which results in a nearly zero overhead transition to the + next opcode. + + A successful prediction saves a trip through the eval-loop including + its two unpredictable branches, the HASARG test and the switch-case. + + If collecting opcode statistics, turn off prediction so that + statistics are accurately maintained (the predictions bypass + the opcode frequency counter updates). +*/ + +#ifdef DYNAMIC_EXECUTION_PROFILE +#define PREDICT(op) if (0) goto PRED_##op +#else +#define PREDICT(op) if (*next_instr == op) goto PRED_##op +#endif + +#define PREDICTED(op) PRED_##op: next_instr++ +#define PREDICTED_WITH_ARG(op) PRED_##op: oparg = PEEKARG(); next_instr += 3 + +/* Stack manipulation macros */ + +/* The stack can grow at most MAXINT deep, as co_nlocals and + co_stacksize are ints. */ +#define STACK_LEVEL() ((int)(stack_pointer - f->f_valuestack)) +#define EMPTY() (STACK_LEVEL() == 0) +#define TOP() (stack_pointer[-1]) +#define SECOND() (stack_pointer[-2]) +#define THIRD() (stack_pointer[-3]) +#define FOURTH() (stack_pointer[-4]) +#define SET_TOP(v) (stack_pointer[-1] = (v)) +#define SET_SECOND(v) (stack_pointer[-2] = (v)) +#define SET_THIRD(v) (stack_pointer[-3] = (v)) +#define SET_FOURTH(v) (stack_pointer[-4] = (v)) +#define BASIC_STACKADJ(n) (stack_pointer += n) +#define BASIC_PUSH(v) (*stack_pointer++ = (v)) +#define BASIC_POP() (*--stack_pointer) + +#ifdef LLTRACE +#define PUSH(v) { (void)(BASIC_PUSH(v), \ + lltrace && prtrace(TOP(), "push")); \ + assert(STACK_LEVEL() <= co->co_stacksize); } +#define POP() ((void)(lltrace && prtrace(TOP(), "pop")), BASIC_POP()) +#define STACKADJ(n) { (void)(BASIC_STACKADJ(n), \ + lltrace && prtrace(TOP(), "stackadj")); \ + assert(STACK_LEVEL() <= co->co_stacksize); } +#define EXT_POP(STACK_POINTER) (lltrace && prtrace(*(STACK_POINTER), "ext_pop"), *--(STACK_POINTER)) +#else +#define PUSH(v) BASIC_PUSH(v) +#define POP() BASIC_POP() +#define STACKADJ(n) BASIC_STACKADJ(n) +#define EXT_POP(STACK_POINTER) (*--(STACK_POINTER)) +#endif + +/* Local variable macros */ + +#define GETLOCAL(i) (fastlocals[i]) + +/* The SETLOCAL() macro must not DECREF the local variable in-place and + then store the new value; it must copy the old value to a temporary + value, then store the new value, and then DECREF the temporary value. + This is because it is possible that during the DECREF the frame is + accessed by other code (e.g. a __del__ method or gc.collect()) and the + variable would be pointing to already-freed memory. */ +#define SETLOCAL(i, value) do { PyObject *tmp = GETLOCAL(i); \ + GETLOCAL(i) = value; \ + Py_XDECREF(tmp); } while (0) + +/* Start of code */ + + if (f == NULL) + return NULL; + + /* push frame */ + if (Py_EnterRecursiveCall("")) + return NULL; + + tstate->frame = f; + + if (tstate->use_tracing) { + if (tstate->c_tracefunc != NULL) { + /* tstate->c_tracefunc, if defined, is a + function that will be called on *every* entry + to a code block. Its return value, if not + None, is a function that will be called at + the start of each executed line of code. + (Actually, the function must return itself + in order to continue tracing.) The trace + functions are called with three arguments: + a pointer to the current frame, a string + indicating why the function is called, and + an argument which depends on the situation. + The global trace function is also called + whenever an exception is detected. */ + if (call_trace(tstate->c_tracefunc, tstate->c_traceobj, + f, PyTrace_CALL, Py_None)) { + /* Trace function raised an error */ + goto exit_eval_frame; + } + } + if (tstate->c_profilefunc != NULL) { + /* Similar for c_profilefunc, except it needn't + return itself and isn't called for "line" events */ + if (call_trace(tstate->c_profilefunc, + tstate->c_profileobj, + f, PyTrace_CALL, Py_None)) { + /* Profile function raised an error */ + goto exit_eval_frame; + } + } + } + + co = f->f_code; + names = co->co_names; + consts = co->co_consts; + fastlocals = f->f_localsplus; + freevars = f->f_localsplus + co->co_nlocals; + first_instr = (unsigned char*) PyString_AS_STRING(co->co_code); + /* An explanation is in order for the next line. + + f->f_lasti now refers to the index of the last instruction + executed. You might think this was obvious from the name, but + this wasn't always true before 2.3! PyFrame_New now sets + f->f_lasti to -1 (i.e. the index *before* the first instruction) + and YIELD_VALUE doesn't fiddle with f_lasti any more. So this + does work. Promise. */ + next_instr = first_instr + f->f_lasti + 1; + stack_pointer = f->f_stacktop; + assert(stack_pointer != NULL); + f->f_stacktop = NULL; /* remains NULL unless yield suspends frame */ + +#ifdef LLTRACE + lltrace = PyDict_GetItemString(f->f_globals, "__lltrace__") != NULL; +#endif +#if defined(Py_DEBUG) || defined(LLTRACE) + filename = PyString_AsString(co->co_filename); +#endif + + why = WHY_NOT; + err = 0; + x = Py_None; /* Not a reference, just anything non-NULL */ + w = NULL; + + if (throwflag) { /* support for generator.throw() */ + why = WHY_EXCEPTION; + goto on_error; + } + + for (;;) { +#ifdef WITH_TSC + if (inst1 == 0) { + /* Almost surely, the opcode executed a break + or a continue, preventing inst1 from being set + on the way out of the loop. + */ + READ_TIMESTAMP(inst1); + loop1 = inst1; + } + dump_tsc(opcode, ticked, inst0, inst1, loop0, loop1, + intr0, intr1); + ticked = 0; + inst1 = 0; + intr0 = 0; + intr1 = 0; + READ_TIMESTAMP(loop0); +#endif + assert(stack_pointer >= f->f_valuestack); /* else underflow */ + assert(STACK_LEVEL() <= co->co_stacksize); /* else overflow */ + + /* Do periodic things. Doing this every time through + the loop would add too much overhead, so we do it + only every Nth instruction. We also do it if + ``things_to_do'' is set, i.e. when an asynchronous + event needs attention (e.g. a signal handler or + async I/O handler); see Py_AddPendingCall() and + Py_MakePendingCalls() above. */ + + if (--_Py_Ticker < 0) { + if (*next_instr == SETUP_FINALLY) { + /* Make the last opcode before + a try: finally: block uninterruptable. */ + goto fast_next_opcode; + } + _Py_Ticker = _Py_CheckInterval; + tstate->tick_counter++; +#ifdef WITH_TSC + ticked = 1; +#endif + if (things_to_do) { + if (Py_MakePendingCalls() < 0) { + why = WHY_EXCEPTION; + goto on_error; + } + if (things_to_do) + /* MakePendingCalls() didn't succeed. + Force early re-execution of this + "periodic" code, possibly after + a thread switch */ + _Py_Ticker = 0; + } +#ifdef WITH_THREAD + if (interpreter_lock) { + /* Give another thread a chance */ + + if (PyThreadState_Swap(NULL) != tstate) + Py_FatalError("ceval: tstate mix-up"); + PyThread_release_lock(interpreter_lock); + + /* Other threads may run now */ + + PyThread_acquire_lock(interpreter_lock, 1); + if (PyThreadState_Swap(tstate) != NULL) + Py_FatalError("ceval: orphan tstate"); + + /* Check for thread interrupts */ + + if (tstate->async_exc != NULL) { + x = tstate->async_exc; + tstate->async_exc = NULL; + PyErr_SetNone(x); + Py_DECREF(x); + why = WHY_EXCEPTION; + goto on_error; + } + } +#endif + } + + fast_next_opcode: + f->f_lasti = INSTR_OFFSET(); + + /* line-by-line tracing support */ + + if (tstate->c_tracefunc != NULL && !tstate->tracing) { + /* see maybe_call_line_trace + for expository comments */ + f->f_stacktop = stack_pointer; + + err = maybe_call_line_trace(tstate->c_tracefunc, + tstate->c_traceobj, + f, &instr_lb, &instr_ub, + &instr_prev); + /* Reload possibly changed frame fields */ + JUMPTO(f->f_lasti); + if (f->f_stacktop != NULL) { + stack_pointer = f->f_stacktop; + f->f_stacktop = NULL; + } + if (err) { + /* trace function raised an exception */ + goto on_error; + } + } + + /* Extract opcode and argument */ + + opcode = NEXTOP(); + oparg = 0; /* allows oparg to be stored in a register because + it doesn't have to be remembered across a full loop */ + if (HAS_ARG(opcode)) + oparg = NEXTARG(); + dispatch_opcode: +#ifdef DYNAMIC_EXECUTION_PROFILE +#ifdef DXPAIRS + dxpairs[lastopcode][opcode]++; + lastopcode = opcode; +#endif + dxp[opcode]++; +#endif + +#ifdef LLTRACE + /* Instruction tracing */ + + if (lltrace) { + if (HAS_ARG(opcode)) { + printf("%d: %d, %d\n", + f->f_lasti, opcode, oparg); + } + else { + printf("%d: %d\n", + f->f_lasti, opcode); + } + } +#endif + + /* Main switch on opcode */ + READ_TIMESTAMP(inst0); + + switch (opcode) { + + /* BEWARE! + It is essential that any operation that fails sets either + x to NULL, err to nonzero, or why to anything but WHY_NOT, + and that no operation that succeeds does this! */ + + /* case STOP_CODE: this is an error! */ + + case NOP: + goto fast_next_opcode; + + case LOAD_FAST: + x = GETLOCAL(oparg); + if (x != NULL) { + Py_INCREF(x); + PUSH(x); + goto fast_next_opcode; + } + format_exc_check_arg(PyExc_UnboundLocalError, + UNBOUNDLOCAL_ERROR_MSG, + PyTuple_GetItem(co->co_varnames, oparg)); + break; + + case LOAD_CONST: + x = GETITEM(consts, oparg); + Py_INCREF(x); + PUSH(x); + goto fast_next_opcode; + + PREDICTED_WITH_ARG(STORE_FAST); + case STORE_FAST: + v = POP(); + SETLOCAL(oparg, v); + goto fast_next_opcode; + + PREDICTED(POP_TOP); + case POP_TOP: + v = POP(); + Py_DECREF(v); + goto fast_next_opcode; + + case ROT_TWO: + v = TOP(); + w = SECOND(); + SET_TOP(w); + SET_SECOND(v); + goto fast_next_opcode; + + case ROT_THREE: + v = TOP(); + w = SECOND(); + x = THIRD(); + SET_TOP(w); + SET_SECOND(x); + SET_THIRD(v); + goto fast_next_opcode; + + case ROT_FOUR: + u = TOP(); + v = SECOND(); + w = THIRD(); + x = FOURTH(); + SET_TOP(v); + SET_SECOND(w); + SET_THIRD(x); + SET_FOURTH(u); + goto fast_next_opcode; + + case DUP_TOP: + v = TOP(); + Py_INCREF(v); + PUSH(v); + goto fast_next_opcode; + + case DUP_TOPX: + if (oparg == 2) { + x = TOP(); + Py_INCREF(x); + w = SECOND(); + Py_INCREF(w); + STACKADJ(2); + SET_TOP(x); + SET_SECOND(w); + goto fast_next_opcode; + } else if (oparg == 3) { + x = TOP(); + Py_INCREF(x); + w = SECOND(); + Py_INCREF(w); + v = THIRD(); + Py_INCREF(v); + STACKADJ(3); + SET_TOP(x); + SET_SECOND(w); + SET_THIRD(v); + goto fast_next_opcode; + } + Py_FatalError("invalid argument to DUP_TOPX" + " (bytecode corruption?)"); + break; + + case UNARY_POSITIVE: + v = TOP(); + x = PyNumber_Positive(v); + Py_DECREF(v); + SET_TOP(x); + if (x != NULL) continue; + break; + + case UNARY_NEGATIVE: + v = TOP(); + x = PyNumber_Negative(v); + Py_DECREF(v); + SET_TOP(x); + if (x != NULL) continue; + break; + + case UNARY_NOT: + v = TOP(); + err = PyObject_IsTrue(v); + Py_DECREF(v); + if (err == 0) { + Py_INCREF(Py_True); + SET_TOP(Py_True); + continue; + } + else if (err > 0) { + Py_INCREF(Py_False); + SET_TOP(Py_False); + err = 0; + continue; + } + STACKADJ(-1); + break; + + case UNARY_CONVERT: + v = TOP(); + x = PyObject_Repr(v); + Py_DECREF(v); + SET_TOP(x); + if (x != NULL) continue; + break; + + case UNARY_INVERT: + v = TOP(); + x = PyNumber_Invert(v); + Py_DECREF(v); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_POWER: + w = POP(); + v = TOP(); + x = PyNumber_Power(v, w, Py_None); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_MULTIPLY: + w = POP(); + v = TOP(); + x = PyNumber_Multiply(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_DIVIDE: + if (!_Py_QnewFlag) { + w = POP(); + v = TOP(); + x = PyNumber_Divide(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + } + /* -Qnew is in effect: fall through to + BINARY_TRUE_DIVIDE */ + case BINARY_TRUE_DIVIDE: + w = POP(); + v = TOP(); + x = PyNumber_TrueDivide(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_FLOOR_DIVIDE: + w = POP(); + v = TOP(); + x = PyNumber_FloorDivide(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_MODULO: + w = POP(); + v = TOP(); + x = PyNumber_Remainder(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_ADD: + w = POP(); + v = TOP(); + if (PyInt_CheckExact(v) && PyInt_CheckExact(w)) { + /* INLINE: int + int */ + register long a, b, i; + a = PyInt_AS_LONG(v); + b = PyInt_AS_LONG(w); + i = a + b; + if ((i^a) < 0 && (i^b) < 0) + goto slow_add; + x = PyInt_FromLong(i); + } + else if (PyString_CheckExact(v) && + PyString_CheckExact(w)) { + x = string_concatenate(v, w, f, next_instr); + /* string_concatenate consumed the ref to v */ + goto skip_decref_vx; + } + else { + slow_add: + x = PyNumber_Add(v, w); + } + Py_DECREF(v); + skip_decref_vx: + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_SUBTRACT: + w = POP(); + v = TOP(); + if (PyInt_CheckExact(v) && PyInt_CheckExact(w)) { + /* INLINE: int - int */ + register long a, b, i; + a = PyInt_AS_LONG(v); + b = PyInt_AS_LONG(w); + i = a - b; + if ((i^a) < 0 && (i^~b) < 0) + goto slow_sub; + x = PyInt_FromLong(i); + } + else { + slow_sub: + x = PyNumber_Subtract(v, w); + } + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_SUBSCR: + w = POP(); + v = TOP(); + if (PyList_CheckExact(v) && PyInt_CheckExact(w)) { + /* INLINE: list[int] */ + Py_ssize_t i = PyInt_AsSsize_t(w); + if (i < 0) + i += PyList_GET_SIZE(v); + if (i >= 0 && i < PyList_GET_SIZE(v)) { + x = PyList_GET_ITEM(v, i); + Py_INCREF(x); + } + else + goto slow_get; + } + else + slow_get: + x = PyObject_GetItem(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_LSHIFT: + w = POP(); + v = TOP(); + x = PyNumber_Lshift(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_RSHIFT: + w = POP(); + v = TOP(); + x = PyNumber_Rshift(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_AND: + w = POP(); + v = TOP(); + x = PyNumber_And(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_XOR: + w = POP(); + v = TOP(); + x = PyNumber_Xor(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case BINARY_OR: + w = POP(); + v = TOP(); + x = PyNumber_Or(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case LIST_APPEND: + w = POP(); + v = POP(); + err = PyList_Append(v, w); + Py_DECREF(v); + Py_DECREF(w); + if (err == 0) { + PREDICT(JUMP_ABSOLUTE); + continue; + } + break; + + case INPLACE_POWER: + w = POP(); + v = TOP(); + x = PyNumber_InPlacePower(v, w, Py_None); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_MULTIPLY: + w = POP(); + v = TOP(); + x = PyNumber_InPlaceMultiply(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_DIVIDE: + if (!_Py_QnewFlag) { + w = POP(); + v = TOP(); + x = PyNumber_InPlaceDivide(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + } + /* -Qnew is in effect: fall through to + INPLACE_TRUE_DIVIDE */ + case INPLACE_TRUE_DIVIDE: + w = POP(); + v = TOP(); + x = PyNumber_InPlaceTrueDivide(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_FLOOR_DIVIDE: + w = POP(); + v = TOP(); + x = PyNumber_InPlaceFloorDivide(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_MODULO: + w = POP(); + v = TOP(); + x = PyNumber_InPlaceRemainder(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_ADD: + w = POP(); + v = TOP(); + if (PyInt_CheckExact(v) && PyInt_CheckExact(w)) { + /* INLINE: int + int */ + register long a, b, i; + a = PyInt_AS_LONG(v); + b = PyInt_AS_LONG(w); + i = a + b; + if ((i^a) < 0 && (i^b) < 0) + goto slow_iadd; + x = PyInt_FromLong(i); + } + else if (PyString_CheckExact(v) && + PyString_CheckExact(w)) { + x = string_concatenate(v, w, f, next_instr); + /* string_concatenate consumed the ref to v */ + goto skip_decref_v; + } + else { + slow_iadd: + x = PyNumber_InPlaceAdd(v, w); + } + Py_DECREF(v); + skip_decref_v: + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_SUBTRACT: + w = POP(); + v = TOP(); + if (PyInt_CheckExact(v) && PyInt_CheckExact(w)) { + /* INLINE: int - int */ + register long a, b, i; + a = PyInt_AS_LONG(v); + b = PyInt_AS_LONG(w); + i = a - b; + if ((i^a) < 0 && (i^~b) < 0) + goto slow_isub; + x = PyInt_FromLong(i); + } + else { + slow_isub: + x = PyNumber_InPlaceSubtract(v, w); + } + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_LSHIFT: + w = POP(); + v = TOP(); + x = PyNumber_InPlaceLshift(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_RSHIFT: + w = POP(); + v = TOP(); + x = PyNumber_InPlaceRshift(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_AND: + w = POP(); + v = TOP(); + x = PyNumber_InPlaceAnd(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_XOR: + w = POP(); + v = TOP(); + x = PyNumber_InPlaceXor(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case INPLACE_OR: + w = POP(); + v = TOP(); + x = PyNumber_InPlaceOr(v, w); + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case SLICE+0: + case SLICE+1: + case SLICE+2: + case SLICE+3: + if ((opcode-SLICE) & 2) + w = POP(); + else + w = NULL; + if ((opcode-SLICE) & 1) + v = POP(); + else + v = NULL; + u = TOP(); + x = apply_slice(u, v, w); + Py_DECREF(u); + Py_XDECREF(v); + Py_XDECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case STORE_SLICE+0: + case STORE_SLICE+1: + case STORE_SLICE+2: + case STORE_SLICE+3: + if ((opcode-STORE_SLICE) & 2) + w = POP(); + else + w = NULL; + if ((opcode-STORE_SLICE) & 1) + v = POP(); + else + v = NULL; + u = POP(); + t = POP(); + err = assign_slice(u, v, w, t); /* u[v:w] = t */ + Py_DECREF(t); + Py_DECREF(u); + Py_XDECREF(v); + Py_XDECREF(w); + if (err == 0) continue; + break; + + case DELETE_SLICE+0: + case DELETE_SLICE+1: + case DELETE_SLICE+2: + case DELETE_SLICE+3: + if ((opcode-DELETE_SLICE) & 2) + w = POP(); + else + w = NULL; + if ((opcode-DELETE_SLICE) & 1) + v = POP(); + else + v = NULL; + u = POP(); + err = assign_slice(u, v, w, (PyObject *)NULL); + /* del u[v:w] */ + Py_DECREF(u); + Py_XDECREF(v); + Py_XDECREF(w); + if (err == 0) continue; + break; + + case STORE_SUBSCR: + w = TOP(); + v = SECOND(); + u = THIRD(); + STACKADJ(-3); + /* v[w] = u */ + err = PyObject_SetItem(v, w, u); + Py_DECREF(u); + Py_DECREF(v); + Py_DECREF(w); + if (err == 0) continue; + break; + + case DELETE_SUBSCR: + w = TOP(); + v = SECOND(); + STACKADJ(-2); + /* del v[w] */ + err = PyObject_DelItem(v, w); + Py_DECREF(v); + Py_DECREF(w); + if (err == 0) continue; + break; + + case PRINT_EXPR: + v = POP(); + w = PySys_GetObject("displayhook"); + if (w == NULL) { + PyErr_SetString(PyExc_RuntimeError, + "lost sys.displayhook"); + err = -1; + x = NULL; + } + if (err == 0) { + x = PyTuple_Pack(1, v); + if (x == NULL) + err = -1; + } + if (err == 0) { + w = PyEval_CallObject(w, x); + Py_XDECREF(w); + if (w == NULL) + err = -1; + } + Py_DECREF(v); + Py_XDECREF(x); + break; + + case PRINT_ITEM_TO: + w = stream = POP(); + /* fall through to PRINT_ITEM */ + + case PRINT_ITEM: + v = POP(); + if (stream == NULL || stream == Py_None) { + w = PySys_GetObject("stdout"); + if (w == NULL) { + PyErr_SetString(PyExc_RuntimeError, + "lost sys.stdout"); + err = -1; + } + } + /* PyFile_SoftSpace() can exececute arbitrary code + if sys.stdout is an instance with a __getattr__. + If __getattr__ raises an exception, w will + be freed, so we need to prevent that temporarily. */ + Py_XINCREF(w); + if (w != NULL && PyFile_SoftSpace(w, 0)) + err = PyFile_WriteString(" ", w); + if (err == 0) + err = PyFile_WriteObject(v, w, Py_PRINT_RAW); + if (err == 0) { + /* XXX move into writeobject() ? */ + if (PyString_Check(v)) { + char *s = PyString_AS_STRING(v); + Py_ssize_t len = PyString_GET_SIZE(v); + if (len == 0 || + !isspace(Py_CHARMASK(s[len-1])) || + s[len-1] == ' ') + PyFile_SoftSpace(w, 1); + } +#ifdef Py_USING_UNICODE + else if (PyUnicode_Check(v)) { + Py_UNICODE *s = PyUnicode_AS_UNICODE(v); + Py_ssize_t len = PyUnicode_GET_SIZE(v); + if (len == 0 || + !Py_UNICODE_ISSPACE(s[len-1]) || + s[len-1] == ' ') + PyFile_SoftSpace(w, 1); + } +#endif + else + PyFile_SoftSpace(w, 1); + } + Py_XDECREF(w); + Py_DECREF(v); + Py_XDECREF(stream); + stream = NULL; + if (err == 0) + continue; + break; + + case PRINT_NEWLINE_TO: + w = stream = POP(); + /* fall through to PRINT_NEWLINE */ + + case PRINT_NEWLINE: + if (stream == NULL || stream == Py_None) { + w = PySys_GetObject("stdout"); + if (w == NULL) + PyErr_SetString(PyExc_RuntimeError, + "lost sys.stdout"); + } + if (w != NULL) { + err = PyFile_WriteString("\n", w); + if (err == 0) + PyFile_SoftSpace(w, 0); + } + Py_XDECREF(stream); + stream = NULL; + break; + + +#ifdef CASE_TOO_BIG + default: switch (opcode) { +#endif + case RAISE_VARARGS: + u = v = w = NULL; + switch (oparg) { + case 3: + u = POP(); /* traceback */ + /* Fallthrough */ + case 2: + v = POP(); /* value */ + /* Fallthrough */ + case 1: + w = POP(); /* exc */ + case 0: /* Fallthrough */ + why = do_raise(w, v, u); + break; + default: + PyErr_SetString(PyExc_SystemError, + "bad RAISE_VARARGS oparg"); + why = WHY_EXCEPTION; + break; + } + break; + + case LOAD_LOCALS: + if ((x = f->f_locals) != NULL) { + Py_INCREF(x); + PUSH(x); + continue; + } + PyErr_SetString(PyExc_SystemError, "no locals"); + break; + + case RETURN_VALUE: + retval = POP(); + why = WHY_RETURN; + goto fast_block_end; + + case YIELD_VALUE: + retval = POP(); + f->f_stacktop = stack_pointer; + why = WHY_YIELD; + goto fast_yield; + + case EXEC_STMT: + w = TOP(); + v = SECOND(); + u = THIRD(); + STACKADJ(-3); + READ_TIMESTAMP(intr0); + err = exec_statement(f, u, v, w); + READ_TIMESTAMP(intr1); + Py_DECREF(u); + Py_DECREF(v); + Py_DECREF(w); + break; + + case POP_BLOCK: + { + PyTryBlock *b = PyFrame_BlockPop(f); + while (STACK_LEVEL() > b->b_level) { + v = POP(); + Py_DECREF(v); + } + } + continue; + + case END_FINALLY: + v = POP(); + if (PyInt_Check(v)) { + why = (enum why_code) PyInt_AS_LONG(v); + assert(why != WHY_YIELD); + if (why == WHY_RETURN || + why == WHY_CONTINUE) + retval = POP(); + } + else if (PyExceptionClass_Check(v) || PyString_Check(v)) { + w = POP(); + u = POP(); + PyErr_Restore(v, w, u); + why = WHY_RERAISE; + break; + } + else if (v != Py_None) { + PyErr_SetString(PyExc_SystemError, + "'finally' pops bad exception"); + why = WHY_EXCEPTION; + } + Py_DECREF(v); + break; + + case BUILD_CLASS: + u = TOP(); + v = SECOND(); + w = THIRD(); + STACKADJ(-2); + x = build_class(u, v, w); + SET_TOP(x); + Py_DECREF(u); + Py_DECREF(v); + Py_DECREF(w); + break; + + case STORE_NAME: + w = GETITEM(names, oparg); + v = POP(); + if ((x = f->f_locals) != NULL) { + if (PyDict_CheckExact(x)) + err = PyDict_SetItem(x, w, v); + else + err = PyObject_SetItem(x, w, v); + Py_DECREF(v); + if (err == 0) continue; + break; + } + PyErr_Format(PyExc_SystemError, + "no locals found when storing %s", + PyObject_REPR(w)); + break; + + case DELETE_NAME: + w = GETITEM(names, oparg); + if ((x = f->f_locals) != NULL) { + if ((err = PyObject_DelItem(x, w)) != 0) + format_exc_check_arg(PyExc_NameError, + NAME_ERROR_MSG ,w); + break; + } + PyErr_Format(PyExc_SystemError, + "no locals when deleting %s", + PyObject_REPR(w)); + break; + + PREDICTED_WITH_ARG(UNPACK_SEQUENCE); + case UNPACK_SEQUENCE: + v = POP(); + if (PyTuple_CheckExact(v) && PyTuple_GET_SIZE(v) == oparg) { + PyObject **items = ((PyTupleObject *)v)->ob_item; + while (oparg--) { + w = items[oparg]; + Py_INCREF(w); + PUSH(w); + } + Py_DECREF(v); + continue; + } else if (PyList_CheckExact(v) && PyList_GET_SIZE(v) == oparg) { + PyObject **items = ((PyListObject *)v)->ob_item; + while (oparg--) { + w = items[oparg]; + Py_INCREF(w); + PUSH(w); + } + } else if (unpack_iterable(v, oparg, + stack_pointer + oparg)) + stack_pointer += oparg; + else { + if (PyErr_ExceptionMatches(PyExc_TypeError)) + PyErr_SetString(PyExc_TypeError, + "unpack non-sequence"); + why = WHY_EXCEPTION; + } + Py_DECREF(v); + break; + + case STORE_ATTR: + w = GETITEM(names, oparg); + v = TOP(); + u = SECOND(); + STACKADJ(-2); + err = PyObject_SetAttr(v, w, u); /* v.w = u */ + Py_DECREF(v); + Py_DECREF(u); + if (err == 0) continue; + break; + + case DELETE_ATTR: + w = GETITEM(names, oparg); + v = POP(); + err = PyObject_SetAttr(v, w, (PyObject *)NULL); + /* del v.w */ + Py_DECREF(v); + break; + + case STORE_GLOBAL: + w = GETITEM(names, oparg); + v = POP(); + err = PyDict_SetItem(f->f_globals, w, v); + Py_DECREF(v); + if (err == 0) continue; + break; + + case DELETE_GLOBAL: + w = GETITEM(names, oparg); + if ((err = PyDict_DelItem(f->f_globals, w)) != 0) + format_exc_check_arg( + PyExc_NameError, GLOBAL_NAME_ERROR_MSG, w); + break; + + case LOAD_NAME: + w = GETITEM(names, oparg); + if ((v = f->f_locals) == NULL) { + PyErr_Format(PyExc_SystemError, + "no locals when loading %s", + PyObject_REPR(w)); + break; + } + if (PyDict_CheckExact(v)) { + x = PyDict_GetItem(v, w); + Py_XINCREF(x); + } + else { + x = PyObject_GetItem(v, w); + if (x == NULL && PyErr_Occurred()) { + if (!PyErr_ExceptionMatches(PyExc_KeyError)) + break; + PyErr_Clear(); + } + } + if (x == NULL) { + x = PyDict_GetItem(f->f_globals, w); + if (x == NULL) { + x = PyDict_GetItem(f->f_builtins, w); + if (x == NULL) { + format_exc_check_arg( + PyExc_NameError, + NAME_ERROR_MSG ,w); + break; + } + } + Py_INCREF(x); + } + PUSH(x); + continue; + + case LOAD_GLOBAL: + w = GETITEM(names, oparg); + if (PyString_CheckExact(w)) { + /* Inline the PyDict_GetItem() calls. + WARNING: this is an extreme speed hack. + Do not try this at home. */ + long hash = ((PyStringObject *)w)->ob_shash; + if (hash != -1) { + PyDictObject *d; + PyDictEntry *e; + d = (PyDictObject *)(f->f_globals); + e = d->ma_lookup(d, w, hash); + if (e == NULL) { + x = NULL; + break; + } + x = e->me_value; + if (x != NULL) { + Py_INCREF(x); + PUSH(x); + continue; + } + d = (PyDictObject *)(f->f_builtins); + e = d->ma_lookup(d, w, hash); + if (e == NULL) { + x = NULL; + break; + } + x = e->me_value; + if (x != NULL) { + Py_INCREF(x); + PUSH(x); + continue; + } + goto load_global_error; + } + } + /* This is the un-inlined version of the code above */ + x = PyDict_GetItem(f->f_globals, w); + if (x == NULL) { + x = PyDict_GetItem(f->f_builtins, w); + if (x == NULL) { + load_global_error: + format_exc_check_arg( + PyExc_NameError, + GLOBAL_NAME_ERROR_MSG, w); + break; + } + } + Py_INCREF(x); + PUSH(x); + continue; + + case DELETE_FAST: + x = GETLOCAL(oparg); + if (x != NULL) { + SETLOCAL(oparg, NULL); + continue; + } + format_exc_check_arg( + PyExc_UnboundLocalError, + UNBOUNDLOCAL_ERROR_MSG, + PyTuple_GetItem(co->co_varnames, oparg) + ); + break; + + case LOAD_CLOSURE: + x = freevars[oparg]; + Py_INCREF(x); + PUSH(x); + if (x != NULL) continue; + break; + + case LOAD_DEREF: + x = freevars[oparg]; + w = PyCell_Get(x); + if (w != NULL) { + PUSH(w); + continue; + } + err = -1; + /* Don't stomp existing exception */ + if (PyErr_Occurred()) + break; + if (oparg < PyTuple_GET_SIZE(co->co_cellvars)) { + v = PyTuple_GET_ITEM(co->co_cellvars, + oparg); + format_exc_check_arg( + PyExc_UnboundLocalError, + UNBOUNDLOCAL_ERROR_MSG, + v); + } else { + v = PyTuple_GET_ITEM( + co->co_freevars, + oparg - PyTuple_GET_SIZE(co->co_cellvars)); + format_exc_check_arg( + PyExc_NameError, + UNBOUNDFREE_ERROR_MSG, + v); + } + break; + + case STORE_DEREF: + w = POP(); + x = freevars[oparg]; + PyCell_Set(x, w); + Py_DECREF(w); + continue; + + case BUILD_TUPLE: + x = PyTuple_New(oparg); + if (x != NULL) { + for (; --oparg >= 0;) { + w = POP(); + PyTuple_SET_ITEM(x, oparg, w); + } + PUSH(x); + continue; + } + break; + + case BUILD_LIST: + x = PyList_New(oparg); + if (x != NULL) { + for (; --oparg >= 0;) { + w = POP(); + PyList_SET_ITEM(x, oparg, w); + } + PUSH(x); + continue; + } + break; + + case BUILD_MAP: + x = PyDict_New(); + PUSH(x); + if (x != NULL) continue; + break; + + case LOAD_ATTR: + w = GETITEM(names, oparg); + v = TOP(); + x = PyObject_GetAttr(v, w); + Py_DECREF(v); + SET_TOP(x); + if (x != NULL) continue; + break; + + case COMPARE_OP: + w = POP(); + v = TOP(); + if (PyInt_CheckExact(w) && PyInt_CheckExact(v)) { + /* INLINE: cmp(int, int) */ + register long a, b; + register int res; + a = PyInt_AS_LONG(v); + b = PyInt_AS_LONG(w); + switch (oparg) { + case PyCmp_LT: res = a < b; break; + case PyCmp_LE: res = a <= b; break; + case PyCmp_EQ: res = a == b; break; + case PyCmp_NE: res = a != b; break; + case PyCmp_GT: res = a > b; break; + case PyCmp_GE: res = a >= b; break; + case PyCmp_IS: res = v == w; break; + case PyCmp_IS_NOT: res = v != w; break; + default: goto slow_compare; + } + x = res ? Py_True : Py_False; + Py_INCREF(x); + } + else { + slow_compare: + x = cmp_outcome(oparg, v, w); + } + Py_DECREF(v); + Py_DECREF(w); + SET_TOP(x); + if (x == NULL) break; + PREDICT(JUMP_IF_FALSE); + PREDICT(JUMP_IF_TRUE); + continue; + + case IMPORT_NAME: + w = GETITEM(names, oparg); + x = PyDict_GetItemString(f->f_builtins, "__import__"); + if (x == NULL) { + PyErr_SetString(PyExc_ImportError, + "__import__ not found"); + break; + } + v = POP(); + u = TOP(); + if (PyInt_AsLong(u) != -1 || PyErr_Occurred()) + w = PyTuple_Pack(5, + w, + f->f_globals, + f->f_locals == NULL ? + Py_None : f->f_locals, + v, + u); + else + w = PyTuple_Pack(4, + w, + f->f_globals, + f->f_locals == NULL ? + Py_None : f->f_locals, + v); + Py_DECREF(v); + Py_DECREF(u); + if (w == NULL) { + u = POP(); + x = NULL; + break; + } + READ_TIMESTAMP(intr0); + x = PyEval_CallObject(x, w); + READ_TIMESTAMP(intr1); + Py_DECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case IMPORT_STAR: + v = POP(); + PyFrame_FastToLocals(f); + if ((x = f->f_locals) == NULL) { + PyErr_SetString(PyExc_SystemError, + "no locals found during 'import *'"); + break; + } + READ_TIMESTAMP(intr0); + err = import_all_from(x, v); + READ_TIMESTAMP(intr1); + PyFrame_LocalsToFast(f, 0); + Py_DECREF(v); + if (err == 0) continue; + break; + + case IMPORT_FROM: + w = GETITEM(names, oparg); + v = TOP(); + READ_TIMESTAMP(intr0); + x = import_from(v, w); + READ_TIMESTAMP(intr1); + PUSH(x); + if (x != NULL) continue; + break; + + case JUMP_FORWARD: + JUMPBY(oparg); + goto fast_next_opcode; + + PREDICTED_WITH_ARG(JUMP_IF_FALSE); + case JUMP_IF_FALSE: + w = TOP(); + if (w == Py_True) { + PREDICT(POP_TOP); + goto fast_next_opcode; + } + if (w == Py_False) { + JUMPBY(oparg); + goto fast_next_opcode; + } + err = PyObject_IsTrue(w); + if (err > 0) + err = 0; + else if (err == 0) + JUMPBY(oparg); + else + break; + continue; + + PREDICTED_WITH_ARG(JUMP_IF_TRUE); + case JUMP_IF_TRUE: + w = TOP(); + if (w == Py_False) { + PREDICT(POP_TOP); + goto fast_next_opcode; + } + if (w == Py_True) { + JUMPBY(oparg); + goto fast_next_opcode; + } + err = PyObject_IsTrue(w); + if (err > 0) { + err = 0; + JUMPBY(oparg); + } + else if (err == 0) + ; + else + break; + continue; + + PREDICTED_WITH_ARG(JUMP_ABSOLUTE); + case JUMP_ABSOLUTE: + JUMPTO(oparg); + continue; + + case GET_ITER: + /* before: [obj]; after [getiter(obj)] */ + v = TOP(); + x = PyObject_GetIter(v); + Py_DECREF(v); + if (x != NULL) { + SET_TOP(x); + PREDICT(FOR_ITER); + continue; + } + STACKADJ(-1); + break; + + PREDICTED_WITH_ARG(FOR_ITER); + case FOR_ITER: + /* before: [iter]; after: [iter, iter()] *or* [] */ + v = TOP(); + x = (*v->ob_type->tp_iternext)(v); + if (x != NULL) { + PUSH(x); + PREDICT(STORE_FAST); + PREDICT(UNPACK_SEQUENCE); + continue; + } + if (PyErr_Occurred()) { + if (!PyErr_ExceptionMatches(PyExc_StopIteration)) + break; + PyErr_Clear(); + } + /* iterator ended normally */ + x = v = POP(); + Py_DECREF(v); + JUMPBY(oparg); + continue; + + case BREAK_LOOP: + why = WHY_BREAK; + goto fast_block_end; + + case CONTINUE_LOOP: + retval = PyInt_FromLong(oparg); + if (!retval) { + x = NULL; + break; + } + why = WHY_CONTINUE; + goto fast_block_end; + + case SETUP_LOOP: + case SETUP_EXCEPT: + case SETUP_FINALLY: + /* NOTE: If you add any new block-setup opcodes that are not try/except/finally + handlers, you may need to update the PyGen_NeedsFinalizing() function. */ + + PyFrame_BlockSetup(f, opcode, INSTR_OFFSET() + oparg, + STACK_LEVEL()); + continue; + + case WITH_CLEANUP: + { + /* TOP is the context.__exit__ bound method. + Below that are 1-3 values indicating how/why + we entered the finally clause: + - SECOND = None + - (SECOND, THIRD) = (WHY_{RETURN,CONTINUE}), retval + - SECOND = WHY_*; no retval below it + - (SECOND, THIRD, FOURTH) = exc_info() + In the last case, we must call + TOP(SECOND, THIRD, FOURTH) + otherwise we must call + TOP(None, None, None) + + In addition, if the stack represents an exception, + *and* the function call returns a 'true' value, we + "zap" this information, to prevent END_FINALLY from + re-raising the exception. (But non-local gotos + should still be resumed.) + */ + + x = TOP(); + u = SECOND(); + if (PyInt_Check(u) || u == Py_None) { + u = v = w = Py_None; + } + else { + v = THIRD(); + w = FOURTH(); + } + /* XXX Not the fastest way to call it... */ + x = PyObject_CallFunctionObjArgs(x, u, v, w, NULL); + if (x == NULL) + break; /* Go to error exit */ + if (u != Py_None && PyObject_IsTrue(x)) { + /* There was an exception and a true return */ + Py_DECREF(x); + x = TOP(); /* Again */ + STACKADJ(-3); + Py_INCREF(Py_None); + SET_TOP(Py_None); + Py_DECREF(x); + Py_DECREF(u); + Py_DECREF(v); + Py_DECREF(w); + } else { + /* Let END_FINALLY do its thing */ + Py_DECREF(x); + x = POP(); + Py_DECREF(x); + } + break; + } + + case CALL_FUNCTION: + { + PyObject **sp; + PCALL(PCALL_ALL); + sp = stack_pointer; +#ifdef WITH_TSC + x = call_function(&sp, oparg, &intr0, &intr1); +#else + x = call_function(&sp, oparg); +#endif + stack_pointer = sp; + PUSH(x); + if (x != NULL) + continue; + break; + } + + case CALL_FUNCTION_VAR: + case CALL_FUNCTION_KW: + case CALL_FUNCTION_VAR_KW: + { + int na = oparg & 0xff; + int nk = (oparg>>8) & 0xff; + int flags = (opcode - CALL_FUNCTION) & 3; + int n = na + 2 * nk; + PyObject **pfunc, *func, **sp; + PCALL(PCALL_ALL); + if (flags & CALL_FLAG_VAR) + n++; + if (flags & CALL_FLAG_KW) + n++; + pfunc = stack_pointer - n - 1; + func = *pfunc; + + if (PyMethod_Check(func) + && PyMethod_GET_SELF(func) != NULL) { + PyObject *self = PyMethod_GET_SELF(func); + Py_INCREF(self); + func = PyMethod_GET_FUNCTION(func); + Py_INCREF(func); + Py_DECREF(*pfunc); + *pfunc = self; + na++; + n++; + } else + Py_INCREF(func); + sp = stack_pointer; + READ_TIMESTAMP(intr0); + x = ext_do_call(func, &sp, flags, na, nk); + READ_TIMESTAMP(intr1); + stack_pointer = sp; + Py_DECREF(func); + + while (stack_pointer > pfunc) { + w = POP(); + Py_DECREF(w); + } + PUSH(x); + if (x != NULL) + continue; + break; + } + + case MAKE_FUNCTION: + v = POP(); /* code object */ + x = PyFunction_New(v, f->f_globals); + Py_DECREF(v); + /* XXX Maybe this should be a separate opcode? */ + if (x != NULL && oparg > 0) { + v = PyTuple_New(oparg); + if (v == NULL) { + Py_DECREF(x); + x = NULL; + break; + } + while (--oparg >= 0) { + w = POP(); + PyTuple_SET_ITEM(v, oparg, w); + } + err = PyFunction_SetDefaults(x, v); + Py_DECREF(v); + } + PUSH(x); + break; + + case MAKE_CLOSURE: + { + v = POP(); /* code object */ + x = PyFunction_New(v, f->f_globals); + Py_DECREF(v); + if (x != NULL) { + v = POP(); + err = PyFunction_SetClosure(x, v); + Py_DECREF(v); + } + if (x != NULL && oparg > 0) { + v = PyTuple_New(oparg); + if (v == NULL) { + Py_DECREF(x); + x = NULL; + break; + } + while (--oparg >= 0) { + w = POP(); + PyTuple_SET_ITEM(v, oparg, w); + } + err = PyFunction_SetDefaults(x, v); + Py_DECREF(v); + } + PUSH(x); + break; + } + + case BUILD_SLICE: + if (oparg == 3) + w = POP(); + else + w = NULL; + v = POP(); + u = TOP(); + x = PySlice_New(u, v, w); + Py_DECREF(u); + Py_DECREF(v); + Py_XDECREF(w); + SET_TOP(x); + if (x != NULL) continue; + break; + + case EXTENDED_ARG: + opcode = NEXTOP(); + oparg = oparg<<16 | NEXTARG(); + goto dispatch_opcode; + + default: + fprintf(stderr, + "XXX lineno: %d, opcode: %d\n", + PyCode_Addr2Line(f->f_code, f->f_lasti), + opcode); + PyErr_SetString(PyExc_SystemError, "unknown opcode"); + why = WHY_EXCEPTION; + break; + +#ifdef CASE_TOO_BIG + } +#endif + + } /* switch */ + + on_error: + + READ_TIMESTAMP(inst1); + + /* Quickly continue if no error occurred */ + + if (why == WHY_NOT) { + if (err == 0 && x != NULL) { +#ifdef CHECKEXC + /* This check is expensive! */ + if (PyErr_Occurred()) + fprintf(stderr, + "XXX undetected error\n"); + else { +#endif + READ_TIMESTAMP(loop1); + continue; /* Normal, fast path */ +#ifdef CHECKEXC + } +#endif + } + why = WHY_EXCEPTION; + x = Py_None; + err = 0; + } + + /* Double-check exception status */ + + if (why == WHY_EXCEPTION || why == WHY_RERAISE) { + if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_SystemError, + "error return without exception set"); + why = WHY_EXCEPTION; + } + } +#ifdef CHECKEXC + else { + /* This check is expensive! */ + if (PyErr_Occurred()) { + char buf[1024]; + sprintf(buf, "Stack unwind with exception " + "set and why=%d", why); + Py_FatalError(buf); + } + } +#endif + + /* Log traceback info if this is a real exception */ + + if (why == WHY_EXCEPTION) { + PyTraceBack_Here(f); + + if (tstate->c_tracefunc != NULL) + call_exc_trace(tstate->c_tracefunc, + tstate->c_traceobj, f); + } + + /* For the rest, treat WHY_RERAISE as WHY_EXCEPTION */ + + if (why == WHY_RERAISE) + why = WHY_EXCEPTION; + + /* Unwind stacks if a (pseudo) exception occurred */ + +fast_block_end: + while (why != WHY_NOT && f->f_iblock > 0) { + PyTryBlock *b = PyFrame_BlockPop(f); + + assert(why != WHY_YIELD); + if (b->b_type == SETUP_LOOP && why == WHY_CONTINUE) { + /* For a continue inside a try block, + don't pop the block for the loop. */ + PyFrame_BlockSetup(f, b->b_type, b->b_handler, + b->b_level); + why = WHY_NOT; + JUMPTO(PyInt_AS_LONG(retval)); + Py_DECREF(retval); + break; + } + + while (STACK_LEVEL() > b->b_level) { + v = POP(); + Py_XDECREF(v); + } + if (b->b_type == SETUP_LOOP && why == WHY_BREAK) { + why = WHY_NOT; + JUMPTO(b->b_handler); + break; + } + if (b->b_type == SETUP_FINALLY || + (b->b_type == SETUP_EXCEPT && + why == WHY_EXCEPTION)) { + if (why == WHY_EXCEPTION) { + PyObject *exc, *val, *tb; + PyErr_Fetch(&exc, &val, &tb); + if (val == NULL) { + val = Py_None; + Py_INCREF(val); + } + /* Make the raw exception data + available to the handler, + so a program can emulate the + Python main loop. Don't do + this for 'finally'. */ + if (b->b_type == SETUP_EXCEPT) { + PyErr_NormalizeException( + &exc, &val, &tb); + set_exc_info(tstate, + exc, val, tb); + } + if (tb == NULL) { + Py_INCREF(Py_None); + PUSH(Py_None); + } else + PUSH(tb); + PUSH(val); + PUSH(exc); + } + else { + if (why & (WHY_RETURN | WHY_CONTINUE)) + PUSH(retval); + v = PyInt_FromLong((long)why); + PUSH(v); + } + why = WHY_NOT; + JUMPTO(b->b_handler); + break; + } + } /* unwind stack */ + + /* End the loop if we still have an error (or return) */ + + if (why != WHY_NOT) + break; + READ_TIMESTAMP(loop1); + + } /* main loop */ + + assert(why != WHY_YIELD); + /* Pop remaining stack entries. */ + while (!EMPTY()) { + v = POP(); + Py_XDECREF(v); + } + + if (why != WHY_RETURN) + retval = NULL; + +fast_yield: + if (tstate->use_tracing) { + if (tstate->c_tracefunc) { + if (why == WHY_RETURN || why == WHY_YIELD) { + if (call_trace(tstate->c_tracefunc, + tstate->c_traceobj, f, + PyTrace_RETURN, retval)) { + Py_XDECREF(retval); + retval = NULL; + why = WHY_EXCEPTION; + } + } + else if (why == WHY_EXCEPTION) { + call_trace_protected(tstate->c_tracefunc, + tstate->c_traceobj, f, + PyTrace_RETURN, NULL); + } + } + if (tstate->c_profilefunc) { + if (why == WHY_EXCEPTION) + call_trace_protected(tstate->c_profilefunc, + tstate->c_profileobj, f, + PyTrace_RETURN, NULL); + else if (call_trace(tstate->c_profilefunc, + tstate->c_profileobj, f, + PyTrace_RETURN, retval)) { + Py_XDECREF(retval); + retval = NULL; + why = WHY_EXCEPTION; + } + } + } + + if (tstate->frame->f_exc_type != NULL) + reset_exc_info(tstate); + else { + assert(tstate->frame->f_exc_value == NULL); + assert(tstate->frame->f_exc_traceback == NULL); + } + + /* pop frame */ + exit_eval_frame: + Py_LeaveRecursiveCall(); + tstate->frame = f->f_back; + + return retval; +} + Added: external/Pygments-0.9/tests/examplefiles/classes.dylan ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/classes.dylan Tue Oct 23 20:20:22 2007 @@ -0,0 +1,20 @@ +define class () + slot serial-number :: = unique-serial-number(); + slot model-name :: , + required-init-keyword: model:; + slot has-sunroof? :: , + init-keyword: sunroof?:, + init-value: #f; +end class ; + +define variable *unique-serial-number* = 0; + +define function unique-serial-number() => (usn :: ) + let serial = *unique-serial-number*; + *unique-serial-number* := *unique-serial-number* + 1; + serial; +end function; + +define constant $blue-car = make(, model: "Viper"); +define constant $black-car = make(, model: "Town Car", sunroof?: #t); +define constant $red-car = make(, model: "F40", sunroof?: #f); Added: external/Pygments-0.9/tests/examplefiles/condensed_ruby.rb ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/condensed_ruby.rb Tue Oct 23 20:20:22 2007 @@ -0,0 +1,10 @@ +# Server: ruby p2p.rb password server server-uri merge-servers +# Sample: ruby p2p.rb foobar server druby://localhost:1337 druby://foo.bar:1337 +# Client: ruby p2p.rb password client server-uri download-pattern +# Sample: ruby p2p.rb foobar client druby://localhost:1337 *.rb +require'drb';F,D,C,P,M,U,*O=File,Class,Dir,*ARGV;def s(p)F.split(p[/[^|].*/])[-1 +]end;def c(u);DRbObject.new((),u)end;def x(u)[P,u].hash;end;M=="client"&&c(U).f( +x(U)).each{|n|p,c=x(n),c(n);(c.f(p,O[0],0).map{|f|s f}-D["*"]).each{|f|F.open(f, +"w"){|o|o<\n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Language: Deutsch\n" +"X-Language-in-English: German\n" +"X-HasWikiMarkup: True\n" +"X-Direction: ltr\n" + +msgid "" +"This wiki is not enabled for mail processing.\n" +"Contact the owner of the wiki, who can enable email." +msgstr "" +"In diesem Wiki ist Mail-Verarbeitung nicht eingeschaltet.\n" +"Bitte kontaktieren Sie den Eigent??mer des Wiki, der die Mailfunktionen " +"einschalten kann." + +msgid "Please provide a valid email address!" +msgstr "Bitte eine g??ltige E-Mail-Adresse angeben!" + +#, python-format +msgid "Found no account matching the given email address '%(email)s'!" +msgstr "" +"Es wurde kein Benutzerkonto mit der E-Mail-Adresse '%(email)s' gefunden!" + +msgid "Use UserPreferences to change your settings or create an account." +msgstr "" +"Benutzen Sie BenutzerEinstellungen, um Ihre Einstellungen zu ??ndern oder ein " +"Konto zu erzeugen." + +msgid "Empty user name. Please enter a user name." +msgstr "Leerer Benutzername, bitte geben Sie einen Benutzernamen ein." + +#, python-format +msgid "" +"Invalid user name {{{'%s'}}}.\n" +"Name may contain any Unicode alpha numeric character, with optional one\n" +"space between words. Group page name is not allowed." +msgstr "" +"Ung??ltiger Benutzername {{{'%s'}}}.\n" +"Der Name darf beliebige alphanumerische Unicode-Zeichen enthalten, mit " +"optional einem\n" +"Leerzeichen zwischen den Worten. Gruppennamen sind nicht erlaubt." + +msgid "This user name already belongs to somebody else." +msgstr "Dieser Benutzername geh??rt bereits jemand anderem." + +msgid "Passwords don't match!" +msgstr "Die Passworte sind nicht gleich!" + +msgid "Please specify a password!" +msgstr "Bitte geben Sie ein Passwort an!" + +msgid "" +"Please provide your email address. If you lose your login information, you " +"can get it by email." +msgstr "" +"Bitte geben Sie Ihre E-Mail-Adresse an. Wenn Sie Ihre Login-Informationen " +"verlieren k??nnen Sie sie per E-Mail wieder bekommen." + +msgid "This email already belongs to somebody else." +msgstr "Diese E-Mail-Adresse geh??rt bereits jemand anderem." + +msgid "User account created! You can use this account to login now..." +msgstr "" +"Es wurde ein Benutzerkonto f??r Sie angelegt. Sie k??nnen sich nun anmelden..." + +msgid "Use UserPreferences to change settings of the selected user account" +msgstr "" +"Benutzen Sie BenutzerEinstellungen, um die Einstellungen des ausgew??hlten " +"Benutzers zu ??ndern." + +#, python-format +msgid "The theme '%(theme_name)s' could not be loaded!" +msgstr "Das Theme '%(theme_name)s' konnte nicht geladen werden!" + +msgid "User preferences saved!" +msgstr "Pers??nliche Einstellungen gespeichert!" + +msgid "Default" +msgstr "Standardeinstellung" + +msgid "" +msgstr "" + +msgid "the one preferred" +msgstr "der Bevorzugte" + +msgid "free choice" +msgstr "Freie Auswahl" + +msgid "Select User" +msgstr "Benutzer ausw??hlen" + +msgid "Save" +msgstr "Speichern" + +msgid "Cancel" +msgstr "Abbrechen" + +msgid "Preferred theme" +msgstr "Bevorzugter Stil" + +msgid "Editor Preference" +msgstr "Bevorzugter Editor" + +msgid "Editor shown on UI" +msgstr "Angezeigter Editor" + +msgid "Time zone" +msgstr "Zeitzone" + +msgid "Your time is" +msgstr "Die lokale Zeit ist" + +msgid "Server time is" +msgstr "Die Zeit des Servers ist" + +msgid "Date format" +msgstr "Datumsformat" + +msgid "Preferred language" +msgstr "Bevorzugte Sprache" + +msgid "General options" +msgstr "Allgemeine Optionen" + +msgid "Quick links" +msgstr "Expressverweise" + +msgid "This list does not work, unless you have entered a valid email address!" +msgstr "" +"??nderungsnachrichten werden nur versandt, wenn eine g??ltige E-Mail-Adresse " +"eingegeben wurde!" + +msgid "Subscribed wiki pages (one regex per line)" +msgstr "Abonnierte Wiki-Seiten (ein regul??rer Ausdruck pro Zeile)" + +msgid "Create Profile" +msgstr "Benutzer anlegen" + +msgid "Mail me my account data" +msgstr "E-Mail mit den Zugangsdaten senden" + +msgid "Email" +msgstr "E-Mail" + +#, python-format +msgid "" +"To create an account, see the %(userprefslink)s page. To recover a lost " +"password, go to %(sendmypasswordlink)s." +msgstr "" +"Siehe Seite %(userprefslink)s, um einen Account anzulegen. Um ein verlorenes " +"Passwort wieder zu erhalten, siehe %(sendmypasswordlink)s." + +msgid "Name" +msgstr "Name" + +msgid "Password" +msgstr "Passwort" + +msgid "Login" +msgstr "Anmelden" + +msgid "Action" +msgstr "Aktion" + +#, python-format +msgid "Expected \"=\" to follow \"%(token)s\"" +msgstr "\"=\" fehlt hinter dem Attribut \"%(token)s\"" + +#, python-format +msgid "Expected a value for key \"%(token)s\"" +msgstr "Attribut \"%(token)s\" wurde kein Wert zugewiesen" + +msgid "You are not allowed to edit this page." +msgstr "Sie d??rfen diese Seite nicht editieren." + +msgid "Page is immutable!" +msgstr "Die Seite ist gegen ??nderungen gesch??tzt!" + +msgid "Cannot edit old revisions!" +msgstr "Alte Versionen k??nnen nicht editiert werden!" + +msgid "The lock you held timed out. Be prepared for editing conflicts!" +msgstr "" +"Die von Ihnen gehaltene Sperre ist abgelaufen. Das Auftreten von " +"??nderungskonflikten ist wahrscheinlich!" + +#, python-format +msgid "Draft of \"%(pagename)s\"" +msgstr "Entwurf von \"%(pagename)s\"" + +#, python-format +msgid "Edit \"%(pagename)s\"" +msgstr "\"%(pagename)s\" editieren" + +#, python-format +msgid "Preview of \"%(pagename)s\"" +msgstr "Vorschau f??r \"%(pagename)s\"" + +#, python-format +msgid "Your edit lock on %(lock_page)s has expired!" +msgstr "Ihre Sperre der Seite %(lock_page)s ist abgelaufen!" + +#, python-format +msgid "Your edit lock on %(lock_page)s will expire in # minutes." +msgstr "Ihre Sperre der Seite %(lock_page)s l??uft in # Minuten ab." + +#, python-format +msgid "Your edit lock on %(lock_page)s will expire in # seconds." +msgstr "Ihre Sperre der Seite %(lock_page)s l??uft in # Sekunden ab." + +msgid "Someone else deleted this page while you were editing!" +msgstr "Ein anderer Benutzer hat diese Seite inzwischen gel??scht!" + +msgid "Someone else changed this page while you were editing!" +msgstr "Ein anderer Benutzer hat diese Seite inzwischen ge??ndert!" + +msgid "" +"Someone else saved this page while you were editing!\n" +"Please review the page and save then. Do not save this page as it is!" +msgstr "" +"Ein anderer Benutzer hat gespeichert, w??hrend Sie editiert haben!\n" +"Bitte schauen Sie die Seite nochmal durch und speichern Sie dann. Speichern " +"Sie die Seite nicht so, wie sie ist!" + +msgid "[Content loaded from draft]" +msgstr "[Inhalt der Seite mit dem Entwurf geladen]" + +#, python-format +msgid "[Content of new page loaded from %s]" +msgstr "[Inhalt der neuen Seite auf Basis der Vorlage %s]" + +#, python-format +msgid "[Template %s not found]" +msgstr "[Vorlage %s nicht gefunden]" + +#, python-format +msgid "[You may not read %s]" +msgstr "[Sie d??rfen %s nicht lesen]" + +#, python-format +msgid "" +"'''[[BR]]Your draft based on revision %(draft_rev)d (saved %" +"(draft_timestamp_str)s) can be loaded instead of the current revision %" +"(page_rev)d by using the load draft button - in case you lost your last edit " +"somehow without saving it.''' A draft gets saved for you when you do a " +"preview, cancel an edit or unsuccessfully save." +msgstr "" +"'''[[BR]]Ihr Entwurf basierend auf Revision %(draft_rev)d (gespeichert %" +"(draft_timestamp_str)s kann anstatt der aktuellen Revision %(page_rev)d " +"geladen werden, indem Sie den Knopf ''Entwurf laden'' dr??cken (falls Sie " +"Ihre letzten ??nderungen verloren haben, bevor Sie sie gespeichert " +"hatten).''' Ein Entwurf wird f??r Sie gespeichert, wenn Sie auf Vorschau oder " +"Abbrechen dr??cken oder das Speichern nicht funktioniert." + +#, python-format +msgid "Describe %s here." +msgstr "%s hier beschreiben..." + +msgid "Check Spelling" +msgstr "Rechtschreibung pr??fen" + +msgid "Save Changes" +msgstr "??nderungen speichern" + +#, python-format +msgid "" +"By hitting '''%(save_button_text)s''' you put your changes under the %" +"(license_link)s.\n" +"If you don't want that, hit '''%(cancel_button_text)s''' to cancel your " +"changes." +msgstr "" +"Durch Anklicken von '''%(save_button_text)s''' stellen Sie Ihre ??nderungen " +"unter die %(license_link)s.\n" +"Wenn Sie das nicht wollen, klicken Sie auf '''%(cancel_button_text)s''', um " +"Ihre ??nderungen zu verwerfen." + +msgid "Preview" +msgstr "Vorschau anzeigen" + +msgid "Text mode" +msgstr "Text-Modus" + +msgid "Load Draft" +msgstr "Entwurf laden" + +msgid "Comment:" +msgstr "Kommentar:" + +msgid "" +msgstr "" + +#, python-format +msgid "Add to: %(category)s" +msgstr "Zu %(category)s hinzuf??gen:" + +msgid "Trivial change" +msgstr "Triviale ??nderung" + +msgid "Remove trailing whitespace from each line" +msgstr "Leerzeichen am Ende jeder Zeile entfernen" + +msgid "The wiki is currently not reachable." +msgstr "Das Wiki ist derzeit nicht erreichbar." + +msgid "" +"The remote version of MoinMoin is too old, version 1.6 is required at least." +msgstr "" +"Die ferne MoinMoin-Version ist zu alt, mindestens Version 1.6 wird ben??tigt." + +msgid "Invalid username or password." +msgstr "Ung??ltiger Username oder Passwort." + +#, python-format +msgid "" +"The remote wiki uses a different InterWiki name (%(remotename)s) internally " +"than you specified (%(localname)s)." +msgstr "" +"Das ferne Wiki benutzt intern einen anderen InterWiki-Namen (%(remotename)s) " +"als Sie angegeben haben (%(localname)s)." + +#, python-format +msgid "The package needs a newer version of MoinMoin (at least %s)." +msgstr "Das Paket erfordert eine neuere Version von MoinMoin (mindestens %s)." + +msgid "The theme name is not set." +msgstr "Theme-Name ist nicht gesetzt." + +msgid "Installing theme files is only supported for standalone type servers." +msgstr "" +"Das Installieren von Theme-Dateien wird nur f??r Server-Typ standalone " +"unterst??tzt." + +#, python-format +msgid "Installation of '%(filename)s' failed." +msgstr "Installation von '%(filename)s' fehlgeschlagen." + +#, python-format +msgid "The file %s is not a MoinMoin package file." +msgstr "Die Datei %s ist keine MoinMoin-Paket-Datei." + +#, python-format +msgid "The page %s does not exist." +msgstr "Die Seite %s existiert nicht." + +msgid "Invalid package file header." +msgstr "Ung??ltiger Paket-Datei-Header." + +msgid "Package file format unsupported." +msgstr "Paket-Datei-Format nicht unterst??tzt." + +#, python-format +msgid "Unknown function %(func)s in line %(lineno)i." +msgstr "Unbekannte Funktion %(func)s in Zeile %(lineno)i." + +#, python-format +msgid "The file %s was not found in the package." +msgstr "Die Datei %s wurde im Paket nicht gefunden." + +msgid "Your changes are not saved!" +msgstr "Ihre ??nderungen sind nicht gesichert!" + +msgid "Page name is too long, try shorter name." +msgstr "Seitenname ist zu lang, bitte k??rzen." + +msgid "GUI Mode" +msgstr "GUI-Modus" + +msgid "Edit was cancelled." +msgstr "Editierung wurde abgebrochen." + +msgid "You can't copy to an empty pagename." +msgstr "Sie k??nnen eine Seite nicht auf einen leeren Seitennamen kopieren." + +msgid "You are not allowed to copy this page!" +msgstr "Sie d??rfen diese Seite nicht kopieren!" + +#, python-format +msgid "" +"'''A page with the name {{{'%s'}}} already exists.'''\n" +"Try a different name." +msgstr "" +"'''Es gibt bereits eine Seite mit dem Namen {{{'%s'}}}.'''\n" +"Versuchen Sie es mit einem anderen Namen." + +#, python-format +msgid "Could not copy page because of file system error: %s." +msgstr "" +"Konnte die Seite nicht kopieren wegen eines Dateisystem-Fehlercodes: %s." + +msgid "You are not allowed to rename this page!" +msgstr "Sie d??rfen diese Seite nicht umbenennen!" + +msgid "You can't rename to an empty pagename." +msgstr "Sie k??nnen eine Seite nicht auf einen leeren Seitennamen umbenennen." + +#, python-format +msgid "" +"'''A page with the name {{{'%s'}}} already exists.'''\n" +"\n" +"Try a different name." +msgstr "" +"'''Es gibt bereits eine Seite mit dem Namen {{{'%s'}}}.'''\n" +"Versuchen Sie es mit einem anderen Namen." + +#, python-format +msgid "Could not rename page because of file system error: %s." +msgstr "" +"Konnte die Seite nicht umbenennen wegen eines Dateisystem-Fehlercodes: %s." + +msgid "You are not allowed to delete this page!" +msgstr "Sie d??rfen diese Seite nicht l??schen!" + +msgid "Thank you for your changes. Your attention to detail is appreciated." +msgstr "Danke f??r die ??nderung und die Sorgfalt beim Editieren." + +#, python-format +msgid "Page \"%s\" was successfully deleted!" +msgstr "Seite \"%s\" wurde erfolgreich gel??scht!" + +#, python-format +msgid "" +"Dear Wiki user,\n" +"\n" +"You have subscribed to a wiki page or wiki category on \"%(sitename)s\" for " +"change notification.\n" +"\n" +"The following page has been changed by %(editor)s:\n" +"%(pagelink)s\n" +"\n" +msgstr "" +"Sehr geehrter Wikibenutzer,\n" +"\n" +"Sie haben die ??nderungen einer Wikiseite oder Kategorie von \"%(sitename)s\" " +"abonniert.\n" +"\n" +"Die folgende Seite wurde durch %(editor)s ver??ndert:\n" +"%(pagelink)s\n" +"\n" + +#, python-format +msgid "" +"The comment on the change is:\n" +"%(comment)s\n" +"\n" +msgstr "" +"Der Kommentar zur ??nderung ist:\n" +"%(comment)s\n" +"\n" + +msgid "New page:\n" +msgstr "Neue Seite:\n" + +msgid "No differences found!\n" +msgstr "Es wurden keine ??nderungen gefunden!\n" + +#, python-format +msgid "[%(sitename)s] %(trivial)sUpdate of \"%(pagename)s\" by %(username)s" +msgstr "" +"[%(sitename)s] %(trivial)s??nderung von \"%(pagename)s\" von %(username)s" + +msgid "Trivial " +msgstr "Triviale " + +msgid "Status of sending notification mails:" +msgstr "Status des Versands der ??nderungsnachrichten:" + +#, python-format +msgid "[%(lang)s] %(recipients)s: %(status)s" +msgstr "[%(lang)s] %(recipients)s: %(status)s" + +#, python-format +msgid "Page could not get locked. Unexpected error (errno=%d)." +msgstr "Seite konnte nicht gesperrt werden. Unerwarteter Fehler (errno=%d)." + +msgid "Page could not get locked. Missing 'current' file?" +msgstr "Seite konnte nicht gesperrt werden. Fehlende Datei 'current'?" + +msgid "You are not allowed to edit this page!" +msgstr "Sie d??rfen diese Seite nicht editieren!" + +msgid "You cannot save empty pages." +msgstr "Leere Seiten k??nnen nicht gespeichert werden!" + +msgid "You already saved this page!" +msgstr "Sie haben diese Seite bereits gesichert!" + +msgid "You already edited this page! Please do not use the back button." +msgstr "" +"Sie haben diese Seite bereits editiert! Bitte benutzen Sie nicht den Zur??ck-" +"Button." + +msgid "You did not change the page content, not saved!" +msgstr "Der Seiteninhalt wurde nicht ver??ndert und folglich nicht gesichert!" + +msgid "" +"You can't change ACLs on this page since you have no admin rights on it!" +msgstr "" +"Sie d??rfen keine ACLs auf dieser Seite ??ndern, weil Sie keine admin-Rechte " +"auf ihr haben!" + +#, python-format +msgid "" +"The lock of %(owner)s timed out %(mins_ago)d minute(s) ago, and you were " +"granted the lock for this page." +msgstr "" +"Die Sperre von %(owner)s ist vor %(mins_ago)d Minute(n) abgelaufen und wurde " +"an Sie ??bertragen." + +#, python-format +msgid "" +"Other users will be ''blocked'' from editing this page until %(bumptime)s." +msgstr "" +"Anderen Benutzern wird die Editierung dieser Seite bis %(bumptime)s " +"''verweigert''." + +#, python-format +msgid "" +"Other users will be ''warned'' until %(bumptime)s that you are editing this " +"page." +msgstr "" +"Andere Benutzer erhalten bis %(bumptime)s eine ''Warnung'', dass Sie diese " +"Seite editieren." + +msgid "Use the Preview button to extend the locking period." +msgstr "Mit \"Vorschau anzeigen\" k??nnen Sie diesen Zeitraum verl??ngern." + +#, python-format +msgid "" +"This page is currently ''locked'' for editing by %(owner)s until %(timestamp)" +"s, i.e. for %(mins_valid)d minute(s)." +msgstr "" +"Diese Seite ist derzeit zur Editierung durch %(owner)s gegen ??nderungen " +"''gesperrt'' bis %(timestamp)s, also weitere %(mins_valid)d Minute(n)." + +#, python-format +msgid "" +"This page was opened for editing or last previewed at %(timestamp)s by %" +"(owner)s.[[BR]]\n" +"'''You should ''refrain from editing'' this page for at least another %" +"(mins_valid)d minute(s),\n" +"to avoid editing conflicts.'''[[BR]]\n" +"To leave the editor, press the Cancel button." +msgstr "" +"Diese Seite wurde zum letzten Mal um %(timestamp)s durch %(owner)s zum " +"Editieren ge??ffnet\n" +"oder in der Vorschau angezeigt.[[BR]]\n" +"'''Sie sollten diese Seite f??r mindestens weitere %(mins_valid)d Minute(n) " +"''nicht editieren'', um Konflikte auszuschlie??en.'''[[BR]]\n" +"Benutzen Sie \"Abbrechen\" zum Verlassen des Editors." + +msgid "" +msgstr "" + +#, python-format +msgid "" +"Login Name: %s\n" +"\n" +"Login Password: %s\n" +"\n" +"Login URL: %s/%s?action=login\n" +msgstr "" +"Anmelde-Name: %s\n" +"\n" +"Anmelde-Passwort: %s\n" +"\n" +"Anmelde-URL: %s/%s?action=login\n" + +msgid "" +"Somebody has requested to submit your account data to this email address.\n" +"\n" +"If you lost your password, please use the data below and just enter the\n" +"password AS SHOWN into the wiki's password form field (use copy and paste\n" +"for that).\n" +"\n" +"After successfully logging in, it is of course a good idea to set a new and " +"known password.\n" +msgstr "" +"Jemand hat angefordert, Ihre Accountdaten an diese E-Mail-Adresse zu " +"senden.\n" +"\n" +"Wenn Sie Ihr Passwort vergessen haben, benutzen Sie bitte die Daten unten " +"und\n" +"geben Sie das Passwort GENAUSO WIE ANGEZEIGT in das Passwort-Feld des Wikis " +"ein (benutzen Sie kopieren und einf??gen dazu).\n" +"\n" +"Nachdem Sie sich erfolgreich angemeldet haben, setzen Sie bitte Ihr Passwort " +"neu.\n" + +#, python-format +msgid "[%(sitename)s] Your wiki account data" +msgstr "[%(sitename)s] Ihre Wiki-Acount-Daten" + +msgid "" +"The backed up content of this page is deprecated and will not be included in " +"search results!" +msgstr "" +"Der Inhalt der letzten Sicherungskopie ist veraltet und wird von der " +"Volltextsuche ignoriert!" + +#, python-format +msgid "Revision %(rev)d as of %(date)s" +msgstr "Revision %(rev)d vom %(date)s" + +#, python-format +msgid "Redirected from page \"%(page)s\"" +msgstr "Hierher umgeleitet von Seite \"%(page)s\"" + +#, python-format +msgid "This page redirects to page \"%(page)s\"" +msgstr "Diese Seite wird umgeleitet auf \"%(page)s\"" + +msgid "Create New Page" +msgstr "Neue Seite anlegen" + +msgid "You are not allowed to view this page." +msgstr "Sie d??rfen diese Seite nicht ansehen." + +#, python-format +msgid "" +"Results %(bs)s%(hitsFrom)d - %(hitsTo)d%(be)s of %(aboutHits)s %(bs)s%(hits)d" +"%(be)s results out of about %(pages)d pages." +msgstr "" +"Ergebnisse %(bs)s%(hitsFrom)d - %(hitsTo)d%(be)s von %(aboutHits)s %(bs)s%" +"(hits)d%(be)s Ergebnisse aus ungef??hr %(pages)d Seiten." + +msgid "seconds" +msgstr "Sekunden" + +msgid "Previous" +msgstr "Vorherige" + +msgid "Next" +msgstr "N??chste" + +msgid "current" +msgstr "aktuelle" + +#, python-format +msgid "last modified: %s" +msgstr "zuletzt ge??ndert: %s" + +msgid "match" +msgstr "Treffer" + +msgid "matches" +msgstr "Treffer" + +msgid "Go To Page" +msgstr "Gehe zu Seite" + +msgid "Include system pages" +msgstr "Systemseiten einschlie??en" + +msgid "Exclude system pages" +msgstr "Systemseiten ausschlie??en" + +#, python-format +msgid "Please use a more selective search term instead of {{{\"%s\"}}}" +msgstr "" +"Bitte verwenden Sie einen selektiveren Suchbegriff anstatt {{{\"%s\"}}}" + +#, python-format +msgid "ERROR in regex '%s'" +msgstr "FEHLER in regul??rem Ausdruck '%s'" + +#, python-format +msgid "Bad timestamp '%s'" +msgstr "Ung??ltige Zeitangabe '%s'" + +#, python-format +msgid "Unsupported navigation scheme '%(scheme)s'!" +msgstr "Nicht bekanntes Navigationsschema '%(scheme)s'!" + +msgid "No parent page found!" +msgstr "Diese Seite ist keine Unterseite!" + +msgid "Wiki" +msgstr "Wiki" + +msgid "Edit" +msgstr "Editieren" + +msgid "Slideshow" +msgstr "Diaschau" + +msgid "Start" +msgstr "Start" + +#, python-format +msgid "Slide %(pos)d of %(size)d" +msgstr "Seite %(pos)d von %(size)d" + +msgid "Search Titles" +msgstr "Titel durchsuchen" + +msgid "Display context of search results" +msgstr "Umgebung der Treffer anzeigen" + +msgid "Case-sensitive searching" +msgstr "Gro??-/Kleinschreibung beachten" + +msgid "Search Text" +msgstr "Text durchsuchen" + +#, python-format +msgid "Not supported mimetype of file: %s" +msgstr "MIME-Typ der Datei wird nicht unterst??tzt: %s" + +msgid "Embedded" +msgstr "Eingebettet" + +#, python-format +msgid "Upload new attachment \"%(filename)s\"" +msgstr "Neuen Dateianhang \"%(filename)s\" hochladen" + +#, python-format +msgid "Invalid MonthCalendar calparms \"%s\"!" +msgstr "Ung??ltige MonthCalendaer calparms \"%s\"!" + +#, python-format +msgid "Invalid MonthCalendar arguments \"%s\"!" +msgstr "Ung??ltige MonthCalendar-Argumente: \"%s\"!" + +msgid "No orphaned pages in this wiki." +msgstr "Es existieren keine verwaisten Seiten in diesem Wiki." + +msgid "Python Version" +msgstr "Python Version" + +msgid "MoinMoin Version" +msgstr "MoinMoin Version" + +#, python-format +msgid "Release %s [Revision %s]" +msgstr "Version %s [Revision %s]" + +msgid "4Suite Version" +msgstr "4Suite Version" + +msgid "Number of pages" +msgstr "Seitenanzahl" + +msgid "Number of system pages" +msgstr "Anzahl der Systemseiten" + +msgid "Accumulated page sizes" +msgstr "Kumulierte Seitengr????en" + +#, python-format +msgid "Disk usage of %(data_dir)s/pages/" +msgstr "Plattenbelegung von %(data_dir)s/pages/" + +#, python-format +msgid "Disk usage of %(data_dir)s/" +msgstr "Plattenbelegung von %(data_dir)s/" + +msgid "Entries in edit log" +msgstr "Eintr??ge in der ??nderungshistorie" + +msgid "NONE" +msgstr "KEINE" + +msgid "Global extension macros" +msgstr "Globale Erweiterungsmakros" + +msgid "Local extension macros" +msgstr "Lokale Erweiterungsmakros" + +msgid "Global extension actions" +msgstr "Globale Erweiterungsaktionen" + +msgid "Local extension actions" +msgstr "Lokale Erweiterungsaktionen" + +msgid "Global parsers" +msgstr "Globale Parser" + +msgid "Local extension parsers" +msgstr "Lokale Erweiterungsparser" + +msgid "Disabled" +msgstr "Deaktiviert" + +msgid "Enabled" +msgstr "Aktiviert" + +msgid "index available" +msgstr "Index verf??gbar" + +msgid "index unavailable" +msgstr "Index nicht verf??gbar" + +msgid "N/A" +msgstr "k.A." + +msgid "Xapian and/or Python Xapian bindings not installed" +msgstr "Xapian und/oder Python-Xapian-Bindings nicht installiert" + +msgid "Xapian search" +msgstr "Xapian-Suche" + +msgid "Xapian Version" +msgstr "Xapian-Version" + +msgid "Xapian stemming" +msgstr "Xapian-Wortstamm-Bildung" + +msgid "Active threads" +msgstr "Aktive Threads" + +#, python-format +msgid "No quotes on %(pagename)s." +msgstr "Keine Zitate auf Seite %(pagename)s gefunden." + +#, python-format +msgid "Upload of attachment '%(filename)s'." +msgstr "Dateianhang '%(filename)s' wurde angelegt." + +#, python-format +msgid "Attachment '%(filename)s' deleted." +msgstr "Dateianhang '%(filename)s' wurde gel??scht." + +#, python-format +msgid "Drawing '%(filename)s' saved." +msgstr "Zeichnung '%(filename)s' wurde gesichert." + +#, python-format +msgid "Revert to revision %(rev)d." +msgstr "Revision %(rev)d restauriert." + +#, python-format +msgid "Renamed from '%(oldpagename)s'." +msgstr "Umbenannt von '%(oldpagename)s'." + +#, python-format +msgid "%(mins)dm ago" +msgstr "vor %(mins)dm" + +msgid "(no bookmark set)" +msgstr "(kein Lesezeichen gesetzt)" + +#, python-format +msgid "(currently set to %s)" +msgstr "(derzeit %s)" + +msgid "Delete bookmark" +msgstr "Lesezeichen l??schen" + +msgid "Set bookmark" +msgstr "Lesezeichen setzen" + +msgid "[Bookmark reached]" +msgstr "[Lesezeichen erreicht]" + +#, python-format +msgid "Invalid include arguments \"%s\"!" +msgstr "Ung??ltige \"Include\"-Argumente: \"%s\"!" + +#, python-format +msgid "Nothing found for \"%s\"!" +msgstr "Textmarkierung \"%s\" nicht gefunden!" + +msgid "edit" +msgstr "??ndern" + +msgid "Contents" +msgstr "Inhaltsverzeichnis" + +msgid "You need to provide a chart type!" +msgstr "Es muss ein Diagrammtyp angegeben werden!" + +#, python-format +msgid "Bad chart type \"%s\"!" +msgstr "Unbekannter Diagrammtyp \"%s\"!" + +msgid "Search for items" +msgstr "Nach Items suchen" + +msgid "containing all the following terms" +msgstr "die alle folgenden Ausdr??cke enthalten" + +msgid "containing one or more of the following terms" +msgstr "die einen oder mehrere der folgenden Ausdr??cke enthalten" + +msgid "not containing the following terms" +msgstr "die folgende Ausdr??cke nicht enthalten" + +msgid "belonging to one of the following categories" +msgstr "die einer der folgenden Kategorien angeh??ren" + +msgid "last modified since (e.g. last 2 weeks)" +msgstr "die zuletzt ge??ndert wurden seit (z.B. 'last 2 weeks')" + +msgid "any language" +msgstr "jede Sprache" + +msgid "any mimetype" +msgstr "jeder MIME-Typ" + +msgid "Language" +msgstr "Sprache" + +msgid "File Type" +msgstr "Dateityp" + +msgid "Search only in titles" +msgstr "Nur Titel durchsuchen" + +msgid "Case-sensitive search" +msgstr "Gro??-/Kleinschreibung bei der Suche beachten" + +msgid "Exclude underlay" +msgstr "Underlay ausschlie??en" + +msgid "No system items" +msgstr "Keine System-Items" + +msgid "Search in all page revisions" +msgstr "In allen Seitenrevisionen suchen" + +msgid "Go get it!" +msgstr "Los geht's" + +#, python-format +msgid "Check your argument %s" +msgstr "??berpr??fen Sie das Argument %s" + +msgid "Markup" +msgstr "Notation" + +msgid "Display" +msgstr "Anzeige" + +msgid "No wanted pages in this wiki." +msgstr "Es existieren keine gew??nschten Seiten in diesem Wiki." + +#, python-format +msgid "Connection to mailserver '%(server)s' failed: %(reason)s" +msgstr "Verbindung zum Mailserver '%(server)s' gest??rt: %(reason)s" + +msgid "Mail not sent" +msgstr "E-Mail wurde nicht versandt" + +msgid "Mail sent OK" +msgstr "E-Mail wurde erfolgreich versandt" + +msgid "Date" +msgstr "Datum" + +msgid "From" +msgstr "Von" + +msgid "To" +msgstr "An" + +msgid "Content" +msgstr "Inhalt" + +msgid "Attachments" +msgstr "Dateianh??nge" + +msgid "XSLT option disabled, please look at HelpOnConfiguration." +msgstr "XSLT-Option ist abgeschaltet, siehe HelpOnConfiguration." + +msgid "XSLT processing is not available, please install 4suite 1.x." +msgstr "" +"Die Verarbeitung von XSLT-Stylesheets ist nicht verf??gbar, bitte 4suite 1.x " +"installieren." + +#, python-format +msgid "%(errortype)s processing error" +msgstr "Verarbeitungsfehler vom Typ \"%(errortype)s\"" + +#, python-format +msgid "Expected \"%(wanted)s\" after \"%(key)s\", got \"%(token)s\"" +msgstr "Erwartete \"%(wanted)s\" nach \"%(key)s\", bekam \"%(token)s\"" + +#, python-format +msgid "Expected an integer \"%(key)s\" before \"%(token)s\"" +msgstr "Erwartete eine Ganzzahl \"%(key)s\" vor \"%(token)s\"" + +#, python-format +msgid "Expected an integer \"%(arg)s\" after \"%(key)s\"" +msgstr "Erwartete eine Ganzzahl \"%(arg)s\" nach \"%(key)s\"" + +#, python-format +msgid "Expected a color value \"%(arg)s\" after \"%(key)s\"" +msgstr "Erwartete einen Farbwert \"%(arg)s\" nach \"%(key)s\"" + +msgid "" +"Rendering of reStructured text is not possible, please install Docutils." +msgstr "" +"Anzeigen von reStructured Text ist nicht m??glich, bitte installieren Sie " +"Docutils." + +msgid "**Maximum number of allowed includes exceeded**" +msgstr "**Maximale Anzahl erlaubter Includes ??berschritten**" + +#, python-format +msgid "**Could not find the referenced page: %s**" +msgstr "**Konnte die referenzierte Seite nicht finden: %s**" + +#, python-format +msgid "Inlined image: %(url)s" +msgstr "Eingebettetes Bild: %(url)s" + +#, python-format +msgid "Create new drawing \"%(filename)s (opens in new window)\"" +msgstr "Neue Zeichnung \"%(filename)s\" anlegen (??ffnet ein neues Fenster)" + +#, python-format +msgid "Edit drawing %(filename)s (opens in new window)" +msgstr "Zeichnung %(filename)s bearbeiten (??ffnet ein neues Fenster)" + +#, python-format +msgid "Clickable drawing: %(filename)s" +msgstr "Anklickbare Zeichnung %(filename)s" + +msgid "Toggle line numbers" +msgstr "Zeilennummern ein/ausschalten" + +msgid "[all]" +msgstr "[alle]" + +msgid "[not empty]" +msgstr "[nicht leer]" + +msgid "[empty]" +msgstr "[leer]" + +msgid "filter" +msgstr "Filter" + +msgid "Line" +msgstr "Zeile" + +msgid "No differences found!" +msgstr "Es wurden keine ??nderungen gefunden!" + +msgid "Deletions are marked like this." +msgstr "Gel??schter Text ist auf diese Art markiert." + +msgid "Additions are marked like this." +msgstr "Hinzugef??gter Text ist auf diese Art markiert." + +#, python-format +msgid "" +"Sorry, can not save page because \"%(content)s\" is not allowed in this wiki." +msgstr "" +"Kann die Seite nicht speichern, weil der Inhalt \"%(content)s\" in diesem " +"Wiki nicht erlaubt ist." + +msgid "Page" +msgstr "Seite" + +msgid "User" +msgstr "Benutzer" + +msgid "Diffs" +msgstr "DifferenzAnzeige" + +msgid "Info" +msgstr "Info" + +msgid "Unsubscribe" +msgstr "Nicht abonnieren" + +msgid "Subscribe" +msgstr "Abonnieren" + +msgid "Raw" +msgstr "Rohform" + +msgid "XML" +msgstr "XML" + +msgid "Print" +msgstr "Druckansicht" + +msgid "View" +msgstr "Anzeigen" + +msgid "Home" +msgstr "Heim" + +msgid "Up" +msgstr "Hoch" + +msgid "[RSS]" +msgstr "[RSS]" + +msgid "[DELETED]" +msgstr "[GEL??SCHT]" + +msgid "[UPDATED]" +msgstr "[AKTUALISIERT]" + +msgid "[RENAMED]" +msgstr "[UMBENANNT]" + +msgid "[CONFLICT]" +msgstr "[KONFLIKT]" + +msgid "[NEW]" +msgstr "[NEU]" + +msgid "[DIFF]" +msgstr "[DIFF]" + +msgid "[BOTTOM]" +msgstr "[FUSS]" + +msgid "[TOP]" +msgstr "[KOPF]" + +msgid "Click to do a full-text search for this title" +msgstr "Hier klicken f??r eine Liste der Seiten, die auf diese verweisen" + +msgid "Preferences" +msgstr "Einstellungen" + +msgid "Logout" +msgstr "Abmelden" + +msgid "Clear message" +msgstr "Nachricht l??schen" + +#, python-format +msgid "last edited %(time)s by %(editor)s" +msgstr "zuletzt ge??ndert am %(time)s durch %(editor)s" + +#, python-format +msgid "last modified %(time)s" +msgstr "zuletzt ge??ndert %(time)s" + +msgid "Search:" +msgstr "Suchen:" + +msgid "Text" +msgstr "Text" + +msgid "Titles" +msgstr "Titel" + +msgid "Search" +msgstr "Suche" + +msgid "More Actions:" +msgstr "Weitere Aktionen:" + +msgid "------------------------" +msgstr "------------------------" + +msgid "Raw Text" +msgstr "Rohform" + +msgid "Print View" +msgstr "Druckansicht" + +msgid "Delete Cache" +msgstr "Cache l??schen" + +msgid "Rename Page" +msgstr "Seite umbenennen" + +msgid "Copy Page" +msgstr "Seite kopieren" + +msgid "Delete Page" +msgstr "Seite l??schen" + +msgid "Like Pages" +msgstr "??hnliche Seiten" + +msgid "Local Site Map" +msgstr "??bersichtsKarte" + +msgid "My Pages" +msgstr "Meine Seiten" + +msgid "Subscribe User" +msgstr "Abo f??r Benutzer" + +msgid "Remove Spam" +msgstr "Spam entfernen" + +msgid "Revert to this revision" +msgstr "Diese Revision restaurieren" + +msgid "Package Pages" +msgstr "Seiten paketieren" + +msgid "Render as Docbook" +msgstr "Docbook ausgeben" + +msgid "Sync Pages" +msgstr "Seiten synchronisieren" + +msgid "Do" +msgstr "Los!" + +msgid "Comments" +msgstr "Kommentare" + +msgid "Edit (Text)" +msgstr "Editieren (Text)" + +msgid "Edit (GUI)" +msgstr "Editieren (GUI)" + +msgid "Immutable Page" +msgstr "Gesch??tzte Seite" + +msgid "Remove Link" +msgstr "Verweis entfernen" + +msgid "Add Link" +msgstr "Verweis hinzuf??gen" + +#, python-format +msgid "Show %s days." +msgstr "%s Tage anzeigen." + +msgid "Wiki Markup" +msgstr "Wiki Quelltext" + +msgid "DeleteCache" +msgstr "CacheL??schen" + +#, python-format +msgid "(cached %s)" +msgstr "(gecached %s)" + +msgid "Or try one of these actions:" +msgstr "Oder benutze eine dieser Aktionen:" + +msgid "FrontPage" +msgstr "StartSeite" + +msgid "RecentChanges" +msgstr "Aktuelle??nderungen" + +msgid "TitleIndex" +msgstr "TitelIndex" + +msgid "WordIndex" +msgstr "WortIndex" + +msgid "FindPage" +msgstr "SeiteFinden" + +msgid "SiteNavigation" +msgstr "WegWeiser" + +msgid "HelpContents" +msgstr "HilfeInhalt" + +msgid "HelpOnFormatting" +msgstr "HilfeZumFormatieren" + +msgid "UserPreferences" +msgstr "BenutzerEinstellungen" + +msgid "WikiLicense" +msgstr "WikiLizenz" + +msgid "MissingPage" +msgstr "FehlendeSeite" + +msgid "MissingHomePage" +msgstr "FehlendePers??nlicheSeite" + +msgid "Mon" +msgstr "Mo" + +msgid "Tue" +msgstr "Di" + +msgid "Wed" +msgstr "Mi" + +msgid "Thu" +msgstr "Do" + +msgid "Fri" +msgstr "Fr" + +msgid "Sat" +msgstr "Sa" + +msgid "Sun" +msgstr "So" + +msgid "AttachFile" +msgstr "DateiAnh??nge" + +msgid "DeletePage" +msgstr "SeiteL??schen" + +msgid "LikePages" +msgstr "??hnlicheSeiten" + +msgid "LocalSiteMap" +msgstr "??bersichtsKarte" + +msgid "RenamePage" +msgstr "SeiteUmbenennen" + +msgid "SpellCheck" +msgstr "RechtSchreibung" + +#, python-format +msgid "Unknown action %(action_name)s." +msgstr "Unbekannte Aktion %(action_name)s." + +#, python-format +msgid "You are not allowed to do %(action_name)s on this page." +msgstr "Sie d??rfen die Aktion %(action_name)s auf dieser Seite nicht benutzen!" + +msgid "Login and try again." +msgstr "Melden Sie sich an und probieren Sie es noch einmal." + +msgid "Charts are not available!" +msgstr "Die Diagrammoption ist nicht verf??gbar!" + +msgid "Page Size Distribution" +msgstr "Verteilung der Seitengr????en" + +msgid "page size upper bound [bytes]" +msgstr "Obere Grenze der Seitengr????e [bytes]" + +msgid "# of pages of this size" +msgstr "Anzahl der Seiten in dieser Gr????enklasse" + +msgid "User agent" +msgstr "Browsertyp" + +msgid "Others" +msgstr "Sonstige" + +msgid "Distribution of User-Agent Types" +msgstr "Verteilung der Zugriffe auf Browsertypen" + +msgid "Views/day" +msgstr "Lesezugriffe/Tag" + +msgid "Edits/day" +msgstr "Schreibzugriffe/Tag" + +msgid "Page hits and edits" +msgstr "Seitenzugriffe und ??nderungen" + +#, python-format +msgid "%(chart_title)s for %(filterpage)s" +msgstr "%(chart_title)s f??r %(filterpage)s" + +msgid "" +"green=view\n" +"red=edit" +msgstr "" +"gr??n=Anzeigen\n" +"rot=??nderungen" + +msgid "date" +msgstr "Datum" + +msgid "# of hits" +msgstr "Anzahl der Zugriffe" + +msgid "" +" Emphasis:: [[Verbatim('')]]''italics''[[Verbatim('')]]; [[Verbatim" +"(''')]]'''bold'''[[Verbatim(''')]]; [[Verbatim(''''')]]'''''bold " +"italics'''''[[Verbatim(''''')]]; [[Verbatim('')]]''mixed ''[[Verbatim" +"(''')]]'''''bold'''[[Verbatim(''')]] and italics''[[Verbatim('')]]; " +"[[Verbatim(----)]] horizontal rule.\n" +" Headings:: [[Verbatim(=)]] Title 1 [[Verbatim(=)]]; [[Verbatim(==)]] Title " +"2 [[Verbatim(==)]]; [[Verbatim(===)]] Title 3 [[Verbatim(===)]]; [[Verbatim" +"(====)]] Title 4 [[Verbatim(====)]]; [[Verbatim(=====)]] Title 5 [[Verbatim" +"(=====)]].\n" +" Lists:: space and one of: * bullets; 1., a., A., i., I. numbered items; 1." +"#n start numbering at n; space alone indents.\n" +" Links:: [[Verbatim(JoinCapitalizedWords)]]; [[Verbatim([\"brackets and " +"double quotes\"])]]; url; [url]; [url label].\n" +" Tables:: || cell text |||| cell text spanning 2 columns ||; no trailing " +"white space allowed after tables or titles.\n" +"\n" +"(!) For more help, see HelpOnEditing or SyntaxReference.\n" +msgstr "" +" Betonung:: [[Verbatim('')]]''kursiv''[[Verbatim('')]]; [[Verbatim" +"(''')]]'''fett'''[[Verbatim(''')]]; [[Verbatim(''''')]]'''''fett und " +"kursiv'''''[[Verbatim(''''')]]; [[Verbatim('')]]''gemischt ''[[Verbatim" +"(''')]]'''''fett'''[[Verbatim(''')]] und kursiv''[[Verbatim('')]]; [[Verbatim" +"(----)]] horizontaler Balken.\n" +" ??berschriften:: [[Verbatim(=)]] ??berschrift 1 [[Verbatim(=)]]; [[Verbatim" +"(==)]] ??berschrift 2 [[Verbatim(==)]]; [[Verbatim(===)]] ?? 3 [[Verbatim" +"(===)]]; [[Verbatim(====)]] ?? 4 [[Verbatim(====)]]; [[Verbatim(=====)]] ?? " +"5 [[Verbatim(=====)]].\n" +" Listen:: Leerzeichen und eins von: * Punkte; 1., a., A., i., I. nummerierte " +"Punkte; 1.#n starte Nummerierung bei n; nur Leerzeichen r??ckt ein.\n" +" Links:: [[Verbatim(ZusammenGeschriebeneGro??eWorte)]]; [[Verbatim" +"([\"Klammern und doppelte Anf??hrungszeichen\"])]]; url; [url]; [url " +"label].\n" +" Tabellen:: || Zellentext |||| Zellentext, 2 Zellen ??berspannend ||; " +"keine anh??ngenden Leerzeichen nach ??berschriften oder Tabellen.\n" +"\n" +"(!) Weitere Hilfe finden Sie unter HilfeZumEditieren oder SyntaxReferenz.\n" + +msgid "" +"Emphasis: *italic* **bold** ``monospace``
\n" +"
\n"
+"Headings: Heading 1  Heading 2  Heading 3\n"
+"          =========  ---------  ~~~~~~~~~\n"
+"\n"
+"Horizontal rule: ---- \n"
+"Links: TrailingUnderscore_ `multi word with backticks`_ external_ \n"
+"\n"
+".. _external: http://external-site.net/foo/\n"
+"\n"
+"Lists: * bullets; 1., a. numbered items.\n"
+"
\n" +"
\n" +"(!) For more help, see the \n" +"\n" +"reStructuredText Quick Reference\n" +".\n" +msgstr "" +"Betonung: *kursiv* **fett** ``gleiche Zeichenbreite``
\n" +"
\n"
+"??berschriften: ??berschrift 1  ??berschrift 2  ??berschrift 3\n"
+"               =============  -------------  ~~~~~~~~~~~~~\n"
+"\n"
+"Horizontale Linie: ---- \n"
+"Links: Angeh??ngterUnterstrich_ `mehrere Worte mit R??ckw??rtsapostroph`_ "
+"extern_ \n"
+"\n"
+".. _extern: http://externe-seite.de/\n"
+"\n"
+"Listen: * Punkte; 1., a. nummerierte Punkte.\n"
+"
\n" +"
\n" +"(!) F??r mehr Hilfe siehe die \n" +"\n" +"reStructuredText Quick Reference\n" +".\n" + +msgid "UnSubscribe" +msgstr "Nicht abonnieren" + +msgid "Publish my email (not my wiki homepage) in author info" +msgstr "" +"Ver??ffentliche meine E-Mail-Adresse (nicht meine Wiki-Homepage) in der " +"Autoren-Info" + +msgid "Open editor on double click" +msgstr "Editor per Doppelklick ??ffnen" + +msgid "After login, jump to last visited page" +msgstr "Nach dem Anmelden zur zuletzt besuchten Seite springen" + +msgid "Show comment sections" +msgstr "Kommentarabschnitte anzeigen" + +msgid "Show question mark for non-existing pagelinks" +msgstr "Verweise auf unbekannte Seiten mit Fragezeichen markieren" + +msgid "Show page trail" +msgstr "K??rzlich besuchte Seiten anzeigen (Verlauf)" + +msgid "Show icon toolbar" +msgstr "Werkzeugleiste mit Bildsymbolen anzeigen" + +msgid "Show top/bottom links in headings" +msgstr "Verweise zum Anfang und Ende der Seite in ??berschriften anzeigen" + +msgid "Show fancy diffs" +msgstr "Unterschiede farbig markiert anzeigen" + +msgid "Add spaces to displayed wiki names" +msgstr "Angezeigte Wikinamen mit Leerzeichen trennen" + +msgid "Remember login information" +msgstr "Speichere Login-Informationen" + +msgid "Subscribe to trivial changes" +msgstr "Triviale ??nderungen abonnieren" + +msgid "Disable this account forever" +msgstr "Dieses Benutzerkonto f??r immer deaktivieren" + +msgid "(Use Firstname''''''Lastname)" +msgstr "(Vorname''''''Nachname verwenden)" + +msgid "Alias-Name" +msgstr "Alias-Name" + +msgid "Password repeat" +msgstr "Passwort wiederholen" + +msgid "(Only for password change or new account)" +msgstr "(Nur f??r Passwort-??nderung oder neue Benutzerkonten)" + +msgid "User CSS URL" +msgstr "Benutzer CSS URL" + +msgid "(Leave it empty for disabling user CSS)" +msgstr "Leer lassen, um benutzerdefiniertes CSS auszuschalten)" + +msgid "Editor size" +msgstr "Gr????e des Texteingabefelds" + +msgid "Do it." +msgstr "Ausf??hren" + +#, python-format +msgid "Execute action %(actionname)s?" +msgstr "Aktion %(actionname)s ausf??hren?" + +#, python-format +msgid "Action %(actionname)s is excluded in this wiki!" +msgstr "Aktion %(actionname)s ist ausgeschlossen in diesem Wiki!" + +#, python-format +msgid "You are not allowed to use action %(actionname)s on this page!" +msgstr "Sie d??rfen die Aktion %(actionname)s auf dieser Seite nicht benutzen!" + +#, python-format +msgid "Please use the interactive user interface to use action %(actionname)s!" +msgstr "" +"F??r die Aktion %(actionname)s bitte nur die vorgesehenen Webseiten benutzen!" + +msgid "You must login to add a quicklink." +msgstr "Sie m??ssen sich anmelden, um einen Expressverweis hinzuzuf??gen." + +msgid "Your quicklink to this page has been removed." +msgstr "Ihr Expressverweis f??r diese Seite wurde entfernt." + +msgid "Your quicklink to this page could not be removed." +msgstr "Ihr Expressverweis f??r diese Seite konnte nicht entfernt werden." + +msgid "A quicklink to this page has been added for you." +msgstr "Ein Expressverweis f??r diese Seite wurde hinzugef??gt." + +msgid "A quicklink to this page could not be added for you." +msgstr "Ein Expressverweis f??r diese Seite konnte nicht hinzugef??gt werden." + +msgid "Missing password. Please enter user name and password." +msgstr "Fehlendes Passwort. Bitte geben Sie Benutzername und Passwort ein." + +msgid "Sorry, login failed." +msgstr "Login fehlgeschlagen." + +#, python-format +msgid "[%d attachments]" +msgstr "[%d Anh??nge]" + +#, python-format +msgid "" +"There are %(count)s attachment(s) stored for this " +"page." +msgstr "" +"Es sind %(count)s Anh??nge f??r diese Seite " +"gespeichert." + +#, python-format +msgid "Attachment '%(target)s' already exists." +msgstr "Dateianhang '%(target)s' existiert bereits." + +msgid "Filename of attachment not specified!" +msgstr "Dateiname des Anhangs fehlt oder ist leer!" + +#, python-format +msgid "Attachment '%(filename)s' does not exist!" +msgstr "Dateianhang '%(filename)s' existiert nicht!" + +msgid "" +"To refer to attachments on a page, use '''{{{attachment:filename}}}''', \n" +"as shown below in the list of files. \n" +"Do '''NOT''' use the URL of the {{{[get]}}} link, \n" +"since this is subject to change and can break easily." +msgstr "" +"Um Dateianh??nge in eine Seite einzuf??gen sollte unbedingt eine Angabe \n" +"wie '''{{{attachment:dateiname}}}''' benutzt werden, \n" +"wie sie auch in der folgenden Liste der Dateien erscheint. \n" +"Es sollte '''niemals''' die URL des Verweises (\"laden\") kopiert werden, \n" +"da sich diese jederzeit ??ndern kann und damit der Verweis auf die Datei " +"brechen w??rde." + +msgid "del" +msgstr "l??schen" + +msgid "move" +msgstr "verschieben" + +msgid "get" +msgstr "laden" + +msgid "view" +msgstr "anzeigen" + +msgid "unzip" +msgstr "auspacken" + +msgid "install" +msgstr "installieren" + +#, python-format +msgid "No attachments stored for %(pagename)s" +msgstr "Es wurden keine Anh??nge f??r die Seite %(pagename)s gespeichert." + +msgid "Edit drawing" +msgstr "Zeichnung editieren" + +msgid "New Attachment" +msgstr "Neuer Dateianhang" + +msgid "" +"An upload will never overwrite an existing file. If there is a name\n" +"conflict, you have to rename the file that you want to upload.\n" +"Otherwise, if \"Rename to\" is left blank, the original filename will be " +"used." +msgstr "" +"Ein neuer Anhang ??berschreibt niemals einen bereits vorhandenen gleichen " +"Namens.\n" +"Besteht ein Namenskonflikt, muss dem neuen Anhang ein alternativer Name " +"zugewiesen werden.\n" +"Ansonsten kann das Feld \"Umbenennen auf\" leer bleiben und es wird der " +"originale Dateiname benutzt." + +msgid "File to upload" +msgstr "Neuer Dateianhang" + +msgid "Rename to" +msgstr "Umbenennen auf" + +msgid "Overwrite existing attachment of same name" +msgstr "Anh??nge gleichen Namens ??berschreiben" + +msgid "Upload" +msgstr "Datei hochladen" + +msgid "Attached Files" +msgstr "Gespeicherte Dateianh??nge" + +msgid "You are not allowed to attach a file to this page." +msgstr "Sie d??rfen keine Anh??nge an diese Seite anh??ngen!" + +msgid "File attachments are not allowed in this wiki!" +msgstr "Dateianh??nge sind in diesem Wiki nicht erlaubt!" + +msgid "You are not allowed to save a drawing on this page." +msgstr "Sie d??rfen auf dieser Seite keine Zeichnung speichern." + +msgid "" +"No file content. Delete non ASCII characters from the file name and try " +"again." +msgstr "" +"Kein Dateiinhalt. L??schen Sie nicht-ASCII-Zeichen aus dem Dateinamen und " +"probieren Sie es noch einmal." + +msgid "You are not allowed to delete attachments on this page." +msgstr "Sie d??rfen keine Anh??nge dieser Seite l??schen!" + +msgid "You are not allowed to move attachments from this page." +msgstr "Sie d??rfen keine Anh??nge von dieser Seite verschieben." + +msgid "Move aborted!" +msgstr "Verschieben abgebrochen!" + +msgid "Please use the interactive user interface to move attachments!" +msgstr "" +"F??r die das Verschieben von Anh??ngen bitte nur die vorgesehenen Webseiten " +"benutzen!" + +msgid "You are not allowed to get attachments from this page." +msgstr "Sie d??rfen auf keine Anh??nge dieser Seite zugreifen." + +msgid "You are not allowed to unzip attachments of this page." +msgstr "Sie d??rfen keine Anh??nge dieser Seite auspacken." + +msgid "You are not allowed to install files." +msgstr "Sie d??rfen keine Dateien installieren." + +msgid "You are not allowed to view attachments of this page." +msgstr "Sie d??rfen keine Anh??nge dieser Seite ansehen." + +#, python-format +msgid "Unsupported upload action: %s" +msgstr "Unbekannte Aktion f??r Dateianhang: %s" + +#, python-format +msgid "Attachments for \"%(pagename)s\"" +msgstr "Dateianh??nge f??r \"%(pagename)s\"" + +#, python-format +msgid "" +"Attachment '%(target)s' (remote name '%(filename)s') with %(bytes)d bytes " +"saved." +msgstr "" +"Dateianhang '%(target)s' (urspr??nglicher Name '%(filename)s') mit %(bytes)d " +"Bytes gesichert." + +#, python-format +msgid "Attachment '%(target)s' (remote name '%(filename)s') already exists." +msgstr "" +"Dateianhang '%(target)s' (urspr??nglicher Name '%(filename)s') existiert " +"bereits." + +#, python-format +msgid "Attachment '%(filename)s' already exists." +msgstr "Dateianhang '%(filename)s' existiert bereits." + +#, python-format +msgid "Attachment '%(filename)s' moved to %(page)s." +msgstr "Dateianhang '%(filename)s' auf Seite %(page)s verschoben." + +msgid "Nothing changed" +msgstr "Keine ??nderung." + +#, python-format +msgid "Page %(newpagename)s does not exists or you don't have enough rights." +msgstr "" +"Seite %(newpagename)s existiert nicht oder Sie haben nicht ausreichend " +"Rechte." + +msgid "Move aborted because empty page name" +msgstr "Sie k??nnen eine Seite nicht auf einen leeren Seitennamen umbenennen." + +#, python-format +msgid "Please use a valid filename for attachment '%(filename)s'." +msgstr "" +"Bitte benutzen Sie einen g??ltigen Dateinamen f??r Dateianhang '%(filename)s'." + +msgid "Move aborted because empty attachment name" +msgstr "Verschieben wegen eines leeren Anhangsnamens abgebrochen" + +msgid "Move" +msgstr "Verschieben" + +msgid "New page name" +msgstr "Neuer Seitenname" + +msgid "New attachment name" +msgstr "Neuer Name des Dateianhangs" + +#, python-format +msgid "Attachment '%(filename)s' installed." +msgstr "Dateianhang '%(filename)s' wurde installiert." + +#, python-format +msgid "" +"Attachment '%(filename)s' could not be unzipped because the resulting files " +"would be too large (%(space)d kB missing)." +msgstr "" +"Dateianhang '%(filename)s' konnte nicht ausgepackt werden, weil die " +"ausgepackten Dateien zu gro?? w??ren (%(space)d kB fehlen)." + +#, python-format +msgid "" +"Attachment '%(filename)s' could not be unzipped because the resulting files " +"would be too many (%(count)d missing)." +msgstr "" +"Dateianhang '%(filename)s' konnte nicht ausgepackt werden, weil die " +"ausgepackten Dateien zu viele w??ren (%(count)d fehlen)." + +#, python-format +msgid "Attachment '%(filename)s' unzipped." +msgstr "Dateianhang '%(filename)s' wurde ausgepackt." + +#, python-format +msgid "" +"Attachment '%(filename)s' not unzipped because the files are too big, .zip " +"files only, exist already or reside in folders." +msgstr "" +"Dateianhang '%(filename)s' wurde nicht ausgepackt, weil die Datei zu gro?? " +"sind, weil nur .zip-Dateien erlaubt sind, weil sie bereits existieren oder " +"weil Dateien in Ordnern enthalten sind." + +#, python-format +msgid "The file %(filename)s is not a .zip file." +msgstr "Die Datei %(filename)s ist keine .zip-Datei." + +#, python-format +msgid "Attachment '%(filename)s'" +msgstr "Dateianhang '%(filename)s'" + +msgid "Package script:" +msgstr "Paket-Skript:" + +msgid "File Name" +msgstr "Dateiname" + +msgid "Modified" +msgstr "Modifiziert" + +msgid "Size" +msgstr "Gr????e" + +msgid "Unknown file type, cannot display this attachment inline." +msgstr "" +"Dieser Anhang besitzt einen unbekannten Dateityp und kann deshalb nicht " +"direkt angezeigt werden." + +#, python-format +msgid "attachment:%(filename)s of %(pagename)s" +msgstr "[[Verbatim(attachment:)]]%(filename)s f??r %(pagename)s" + +msgid "This page is already deleted or was never created!" +msgstr "Diese Seite wurde bereits gel??scht oder wurde bisher nicht angelegt!" + +msgid "Rename all /subpages too?" +msgstr "Alle /UnterSeiten auch umbenennen?" + +msgid "New name" +msgstr "Neuer Name" + +msgid "Optional reason for the renaming" +msgstr "Optionale Begr??ndung f??r das Umbenennen" + +msgid "Really rename this page?" +msgstr "Diese Seite wirklich umbenennen?" + +#, python-format +msgid "Full Link List for \"%s\"" +msgstr "Liste aller Seitenverweise f??r \"%s\"" + +msgid "Editor" +msgstr "Autor" + +msgid "Pages" +msgstr "Seiten" + +msgid "Select Author" +msgstr "Autor ausw??hlen" + +msgid "Revert all!" +msgstr "Alle restaurieren!" + +msgid "You are not allowed to use this action." +msgstr "Sie d??rfen diese Aktion nicht ausf??hren." + +#, python-format +msgid "Rolled back changes to the page %s." +msgstr "??nderungen an der Seite %s r??ckg??ngig gemacht" + +msgid "Exception while calling rollback function:" +msgstr "Fehler beim Aufrufen der Rollback-Funktion:" + +msgid "" +"Please enter your password of your account at the remote wiki below. " +"[[BR]] /!\\ You should trust both wikis because the password could be read " +"by the particular administrators." +msgstr "" +"Bitte geben Sie das Passwort Ihres Accounts im fernen Wiki unten ein. " +"[[BR]] /!\\ Sie sollten beiden Wikis vertrauen, weil das Passwort von den " +"entsprechenden Administratoren gelesen werden k??nnte." + +msgid "Operation was canceled." +msgstr "Operation wurde abgebrochen." + +msgid "The only supported directions are BOTH and DOWN." +msgstr "Es werden nur die Richtungen BOTH und DOWN unterst??tzt." + +msgid "" +"Please set an interwikiname in your wikiconfig (see HelpOnConfiguration) to " +"be able to use this action." +msgstr "" +"Bitte setzen Sie interwikiname in Ihrer wikiconfig (siehe " +"HilfeZurKonfiguration), um diese Aktion benutzen zu k??nnen." + +msgid "" +"Incorrect parameters. Please supply at least the ''remoteWiki'' parameter. " +"Refer to HelpOnSynchronisation for help." +msgstr "" +"Ung??ltige Parameter, bitte geben Sie mindestens den ''remoteWiki''-Parameter " +"an. Siehe HilfeZurSynchronisation f??r weitere Informationen." + +msgid "The ''remoteWiki'' is unknown." +msgstr "Das ''remoteWiki'' ist nicht bekannt." + +msgid "A severe error occured:" +msgstr "Ein schwerwiegender Fehler ist aufgetreten:" + +msgid "Synchronisation finished. Look below for the status messages." +msgstr "Synchronisierung beendet, siehe Status-Nachrichten unten." + +msgid "Synchronisation started -" +msgstr "Synchronisierung gestartet -" + +#, python-format +msgid "" +"Got a list of %s local and %s remote pages. This results in %s different " +"pages over-all." +msgstr "" +"%s lokale und %s ferne Seiten, resultierend in insgesamt %s " +"unterschiedlichen Seiten." + +#, python-format +msgid "After filtering: %s pages" +msgstr "Nach dem Filtern: %s Seiten" + +#, python-format +msgid "Skipped page %s because of no write access to local page." +msgstr "" +"Seite %s wurde wegen fehlenden Schreibrechten auf die lokale Seite " +"??bersprungen." + +#, python-format +msgid "Deleted page %s locally." +msgstr "Lokale Seite %s gel??scht." + +#, python-format +msgid "Error while deleting page %s locally:" +msgstr "Fehler beim lokalen L??schen der Seite %s:" + +#, python-format +msgid "Deleted page %s remotely." +msgstr "Ferne Seite %s gel??scht." + +#, python-format +msgid "Error while deleting page %s remotely:" +msgstr "Fehler beim fernen L??schen der Seite %s:" + +#, python-format +msgid "" +"The item %s cannot be merged automatically but was changed in both wikis. " +"Please delete it in one of both wikis and try again." +msgstr "" +"Das Objekt %s kann nicht automatisch zusammengef??hrt werden, wurde aber in " +"beiden Wikis ge??ndert. Bitte l??schen Sie es in einem der beiden Wikis und " +"versuchen Sie es erneut." + +#, python-format +msgid "" +"The item %s has different mime types in both wikis and cannot be merged. " +"Please delete it in one of both wikis or unify the mime type, and try again." +msgstr "" +"Das Objekt %s hat einen unterschiedlichen Mime-Typ in beiden Wikis und kann " +"nicht zusammengef??hrt werden. Bitte l??schen Sie es in einem der beiden Wikis " +"oder vereinheitlichen Sie den Mime-Typ und probieren Sie es nochmal." + +#, python-format +msgid "" +"The item %s was renamed locally. This is not implemented yet. Therefore the " +"full synchronisation history is lost for this page." +msgstr "" +"Seite %s wurde lokal umbenannt. Dies wird noch nicht unterst??tzt, daher geht " +"f??r diese Seite die ganze Synchronisierungs-Historie verloren." + +#, python-format +msgid "Synchronising page %s with remote page %s ..." +msgstr "Synchronisiere Seite %s mit der entfernten Seite %s ..." + +#, python-format +msgid "The page %s was deleted remotely but changed locally." +msgstr "Seite %s wurde lokal ge??ndert, aber ferne gel??scht." + +#, python-format +msgid "" +"The page %s could not be synced. The remote page was renamed. This is not " +"supported yet. You may want to delete one of the pages to get it synced." +msgstr "" +"Seite %s konnte nicht synchronisiert werden. Die entfernte Seite wurde " +"umbenannt, was bis jetzt noch nicht unterst??tzt wird. Vielleicht m??chten Sie " +"eine der Seiten l??schen, um die Seite erfolgreich zu synchronisieren." + +#, python-format +msgid "Skipped page %s because of a locally or remotely unresolved conflict." +msgstr "" +"Seite %s wurde wegen eines lokalen oder entfernten nicht beseitigten " +"Konflikts ??bersprungen." + +#, python-format +msgid "" +"This is the first synchronisation between the local and the remote wiki for " +"the page %s." +msgstr "" +"Dies ist die erste Synchronisation zwischen dem lokalen und fernen Wiki f??r " +"die Seite %s." + +#, python-format +msgid "" +"The page %s could not be merged because you are not allowed to modify the " +"page in the remote wiki." +msgstr "" +"Die Seite %s konnte nicht zusammengef??hrt werden, weil Sie die Seite im " +"fernen Wiki nicht ??ndern d??rfen." + +#, python-format +msgid "Page %s successfully merged." +msgstr "Seite \"%s\" wurde erfolgreich zusammengef??hrt." + +#, python-format +msgid "Page %s contains conflicts that were introduced on the remote side." +msgstr "Seite %s enth??lt von der fernen Seite eingef??hrte Konflikte." + +#, python-format +msgid "Page %s merged with conflicts." +msgstr "Seite %s wurde mit Konflikten zusammengef??hrt." + +msgid "Load" +msgstr "Laden" + +msgid "New Page or New Attachment" +msgstr "Neue Seite oder neuer Dateianhang" + +msgid "" +"You can upload a file to a new page or choose to upload a file as attachment " +"for the current page" +msgstr "" +"Sie k??nnen eine Datei in eine neue Seite hochladen oder eine Datei als " +"Dateianhang an die aktuelle Seite hochladen" + +msgid "attachment" +msgstr "Dateianhang" + +msgid "overwrite" +msgstr "??berschreiben" + +msgid "New Name" +msgstr "Neuer Name" + +#, python-format +msgid "(including %(localwords)d %(pagelink)s)" +msgstr "(inklusive %(localwords)d %(pagelink)s)" + +#, python-format +msgid "" +"The following %(badwords)d words could not be found in the dictionary of %" +"(totalwords)d words%(localwords)s and are highlighted below:" +msgstr "" +"Die nachfolgenden %(badwords)d Worte konnten nicht im W??rterbuch mit %" +"(totalwords)d Worten%(localwords)s gefunden werden und sind im Text " +"hervorgehoben:" + +msgid "Add checked words to dictionary" +msgstr "Markierte W??rter zum W??rterbuch hinzuf??gen" + +msgid "No spelling errors found!" +msgstr "Keine Rechtschreibfehler gefunden!" + +msgid "You can't save spelling words." +msgstr "Sie k??nnen keine Rechtschreibkorrektur-W??rter abspeichern." + +msgid "You can't check spelling on a page you can't read." +msgstr "" +"Sie d??rfen keine Seite auf Rechtschreibung pr??fen, die Sie nicht lesen " +"k??nnen." + +msgid "You are now logged out." +msgstr "Sie sind nun abgemeldet." + +msgid "You are not allowed to subscribe to a page you can't read." +msgstr "Sie d??rfen keine Seiten abonnieren, die Sie nicht lesen d??rfen." + +msgid "This wiki is not enabled for mail processing." +msgstr "In diesem Wiki ist Mail-Verarbeitung nicht eingeschaltet." + +msgid "You must log in to use subscriptions." +msgstr "Sie m??ssen sich anmelden, um Abonnements verwenden zu k??nnen." + +msgid "Add your email address in your UserPreferences to use subscriptions." +msgstr "" +"F??gen Sie Ihre E-Mail-Adresse in den BenutzerEinstellungen hinzu, um " +"Abonnements benutzen zu k??nnen." + +msgid "Your subscription to this page has been removed." +msgstr "Ihr Abonnementsf??r diese Seite wurde entfernt." + +msgid "Can't remove regular expression subscription!" +msgstr "Kann nicht Abonnement mit regul??rem Ausdruck entfernen." + +msgid "Edit the subscription regular expressions in your UserPreferences." +msgstr "" +"Editieren Sie die regul??ren Ausdr??cke f??r Abonnements in Ihren " +"BenutzerEinstellungen." + +msgid "You have been subscribed to this page." +msgstr "Die Seite wurde zur Liste abonnierter Seiten hinzugef??gt." + +msgid "You could not get subscribed to this page." +msgstr "" +"Die Seite konnte nicht zur Liste abonnierter Seiten hinzugef??gt werden." + +msgid "General Information" +msgstr "Allgemeine Informationen" + +#, python-format +msgid "Page size: %d" +msgstr "Seitengr????e: %d" + +msgid "SHA digest of this page's content is:" +msgstr "Signatur des Seiteninhalts nach dem SHA-Verfahren:" + +msgid "The following users subscribed to this page:" +msgstr "Nachfolgende Benutzer haben diese Seite abonniert:" + +msgid "This page links to the following pages:" +msgstr "Diese Seite verweist auf die folgenden Seiten:" + +msgid "Diff" +msgstr "Differenz" + +msgid "Comment" +msgstr "Kommentar" + +msgid "Revision History" +msgstr "Versionshistorie" + +msgid "No log entries found." +msgstr "Keine Log-Eintr??ge gefunden." + +#, python-format +msgid "Info for \"%s\"" +msgstr "Info f??r \"%s\"" + +#, python-format +msgid "Show \"%(title)s\"" +msgstr "\"%(title)s\" anzeigen" + +msgid "General Page Infos" +msgstr "Allgemeine Seiten-Informationen" + +msgid "Please log in first." +msgstr "Bitte melden Sie sich vorher an." + +msgid "Please first create a homepage before creating additional pages." +msgstr "" +"Bitte erzeugen Sie zuerst eine Homepage, bevor Sie weitere Seiten anlegen." + +#, python-format +msgid "" +"You can add some additional sub pages to your already existing homepage " +"here.\n" +"\n" +"You can choose how open to other readers or writers those pages shall be,\n" +"access is controlled by group membership of the corresponding group page.\n" +"\n" +"Just enter the sub page's name and click on the button to create a new " +"page.\n" +"\n" +"Before creating access protected pages, make sure the corresponding group " +"page\n" +"exists and has the appropriate members in it. Use HomepageGroupsTemplate for " +"creating\n" +"the group pages.\n" +"\n" +"||'''Add a new personal page:'''||'''Related access control list " +"group:'''||\n" +"||[[NewPage(HomepageReadWritePageTemplate,read-write page,%(username)s)]]||" +"[\"%(username)s/ReadWriteGroup\"]||\n" +"||[[NewPage(HomepageReadPageTemplate,read-only page,%(username)s)]]||[\"%" +"(username)s/ReadGroup\"]||\n" +"||[[NewPage(HomepagePrivatePageTemplate,private page,%(username)s)]]||%" +"(username)s only||\n" +"\n" +msgstr "" +"Hier k??nnen Sie zus??tzliche Unterseiten zu Ihrer bereits existierenden " +"Homepage hinzuf??gen.\n" +"\n" +"Sie k??nnen w??hlen, wie offen diese Seiten f??r andere Leser oder Autoren sein " +"sollen,\n" +"der Zugriff wird ??ber Gruppenmitgliedschaft in der entsprechenden Gruppe " +"kontrolliert.\n" +"\n" +"Geben Sie einfach den Namen der Unterseite ein und klicken Sie auf den " +"Knopf, um eine neue Seite zu erzeugen.\n" +"\n" +"Bevor Sie zugriffsgesch??tzte Seiten erzeugen, stellen Sie sicher, dass die " +"entsprechende Gruppenseite existiert und die richtigen Mitglieder hat. " +"Benutzen Sie HomepageGroupsTemplate f??r das Erzeugen der Gruppenseiten.\n" +"\n" +"||'''Neue pers??nliche Seite hinzuf??gen:'''||'''Zugeordnete ACL-Gruppe:'''||\n" +"||[[NewPage(HomepageReadWritePageTemplate,Seite (read/write),%(username)" +"s)]]||[\"%(username)s/ReadWriteGroup\"]||\n" +"||[[NewPage(HomepageReadPageTemplate,Seite (read-only),%(username)s)]]||[\"%" +"(username)s/ReadGroup\"]||\n" +"||[[NewPage(HomepagePrivatePageTemplate,Seite (privat),%(username)s)]]||nur %" +"(username)s||\n" +"\n" + +msgid "MyPages management" +msgstr "Verwaltung meiner Seiten" + +#, python-format +msgid "Subscribe users to the page %s" +msgstr "Seite %s f??r Benutzer abonnieren" + +#, python-format +msgid "Subscribed for %s:" +msgstr "Abonnenten von %s:" + +msgid "Not a user:" +msgstr "Kein Benutzer:" + +msgid "You are not allowed to perform this action." +msgstr "Sie d??rfen diese Aktion nicht ausf??hren." + +#, python-format +msgid "(!) Only pages changed since '''%s''' are being displayed!" +msgstr "(!) Nur Seiten, die seit '''%s''' ge??ndert wurden, werden angezeigt!" + +msgid "" +"/!\\ The modification date you entered was not recognized and is therefore " +"not considered for the search results!" +msgstr "" +"/!\\ Das eingegebene ??nderungsdatum wurde nicht erkannt und wird deshalb " +"nicht bei der Suche ber??cksichtigt." + +#, python-format +msgid "Title Search: \"%s\"" +msgstr "Titelsuche: \"%s\"" + +#, python-format +msgid "Advanced Search: \"%s\"" +msgstr "Erweiterte Suche: \"%s\"" + +#, python-format +msgid "Full Text Search: \"%s\"" +msgstr "Volltextsuche: \"%s\"" + +#, python-format +msgid "" +"Your search query {{{\"%s\"}}} is invalid. Please refer to HelpOnSearching " +"for more information." +msgstr "" +"Ihre Suchanfrage {{{\"%s\"}}} ist ung??ltig. Siehe HilfeZumSuchen f??r weitere " +"Informationen." + +#, python-format +msgid "" +"Your search query {{{\"%s\"}}} didn't return any results. Please change some " +"terms and refer to HelpOnSearching for more information.%s" +msgstr "" +"Ihre Suche nach {{{\"%s\"}}} hat keine Resultate ergeben. Bitte ??ndern Sie " +"einige Suchbegriffe und lesen Sie f??r weitere Informationen auf " +"HilfeZumSuchen nach. %s" + +msgid "(!) Consider performing a" +msgstr "(!) Erw??gen Sie eine" + +msgid "full-text search with your search terms" +msgstr "Volltextsuche mit Ihren Suchbegriffen" + +msgid "" +"(!) You're performing a title search that might not include all related " +"results of your search query in this wiki. [[BR]]" +msgstr "" +"(!) Sie f??hren eine Titelsuche durch, die m??glicherweise nicht alle " +"relevanten Ergebnisse Ihrer Sucheanfrage in diesem Wiki enth??lt. [[BR]]" + +msgid "Click here to perform a full-text search with your search terms!" +msgstr "Hier klicken f??r eine Volltextsuche mit diesen Suchbegriffen!" + +#, python-format +msgid "" +"Restored Backup: %(filename)s to target dir: %(targetdir)s.\n" +"Files: %(filecount)d, Directories: %(dircount)d" +msgstr "" +"Wiederhergestelltes Backup: %(filename)s nach Zielverzeichnis: %(targetdir)" +"s.\n" +"Dateien: %(filecount)d, Verzeichnisse: %(dircount)d" + +#, python-format +msgid "Restoring backup: %(filename)s to target dir: %(targetdir)s failed." +msgstr "" +"Wiederherstellen von Backup %(filename)s in das Zielverzeichnis %(targetdir)" +"s fehlgeschlagen." + +msgid "Wiki Backup / Restore" +msgstr "Wiki Sicherung / Wiederherstellung" + +msgid "" +"Some hints:\n" +" * To restore a backup:\n" +" * Restoring a backup will overwrite existing data, so be careful.\n" +" * Rename it to .tar. (remove the --date--time--UTC " +"stuff).\n" +" * Put the backup file into the backup_storage_dir (use scp, ftp, ...).\n" +" * Hit the [[GetText(Restore)]] button below.\n" +"\n" +" * To make a backup, just hit the [[GetText(Backup)]] button and save the " +"file\n" +" you get to a secure place.\n" +"\n" +"Please make sure your wiki configuration backup_* values are correct and " +"complete.\n" +"\n" +msgstr "" +"Hinweise:\n" +" * Um ein Backup wiederherzustellen:\n" +" * Das Wiederherstellen eines Backups wird bestehende Daten ??berschreiben, " +"also seien Sie vorsichtig.\n" +" * Benennen Sie es auf .tar. um (entfernen Sie --date--" +"time--UTC).\n" +" * Legen Sie die Backupdatei in das backup_storage_dir (mit scp, " +"ftp, ...).\n" +" * Dr??cken Sie unten auf [[GetText(Restore)]]-Knopf unten.\n" +"\n" +" * Um ein Backup zu erstellen, dr??cken Sie einfach auf den [[GetText" +"(Backup)]]-Knopf und sichern Sie die Datei,\n" +" die Sie erhalten an eine sichere Stelle.\n" +"\n" +"Bitte stellen Sie sicher, dass die backup_* Werte in Ihrer Wiki-" +"Konfiguration korrekt und vollst??ndig sind.\n" + +msgid "Backup" +msgstr "Datensicherung" + +msgid "Restore" +msgstr "Datenwiederherstellung" + +msgid "You are not allowed to do remote backup." +msgstr "Sie d??rfen kein Remote-Backup ausf??hren." + +#, python-format +msgid "Unknown backup subaction: %s." +msgstr "Unbekannte backup Unteraktion: %s." + +msgid "You are not allowed to revert this page!" +msgstr "Sie d??rfen diese Seite nicht restaurieren!" + +msgid "" +"You were viewing the current revision of this page when you called the " +"revert action. If you want to revert to an older revision, first view that " +"older revision and then call revert to this (older) revision again." +msgstr "" +"Sie haben die aktuelle Revision dieser Seite angeschaut als Sie die " +"Restaurieren-Funktion aufgerufen haben. Wenn Sie eine ??ltere Revision " +"restaurieren wollen, betrachten Sie erst diese ??ltere Revision und rufen Sie " +"dann die Restaurieren-Funktion f??r diese ??ltere Revision erneut auf." + +#, python-format +msgid "Local Site Map for \"%s\"" +msgstr "Lokale Seitenverweise f??r \"%s\"" + +#, python-format +msgid "No pages like \"%s\"!" +msgstr "Keine Seite ??hnlich wie \"%s\"!" + +#, python-format +msgid "Invalid filename \"%s\"!" +msgstr "Ung??ltiger Dateiname \"%s\"!" + +#, python-format +msgid "Created the package %s containing the pages %s." +msgstr "Paket %s, das die Seiten %s enth??lt wurde erzeugt." + +msgid "Package pages" +msgstr "Seiten paketieren" + +msgid "Package name" +msgstr "Paketname" + +msgid "List of page names - separated by a comma" +msgstr "Liste von Seitennamen - getrennt durch ein Komma" + +msgid "No older revisions available!" +msgstr "Es sind keine ??lteren Versionen dieser Seite verf??gbar!" + +#, python-format +msgid "Diff for \"%s\"" +msgstr "??nderungen von \"%s\"" + +#, python-format +msgid "Differences between revisions %d and %d" +msgstr "Unterschiede zwischen den Revisionen %d und %d" + +#, python-format +msgid "(spanning %d versions)" +msgstr "(??ber %d Versionen hinweg)" + +#, python-format +msgid "The page was saved %(count)d times, though!" +msgstr "Die Seite wurde jedoch %(count)d mal gespeichert!" + +msgid "(ignoring whitespace)" +msgstr "(ignoriere Leerraum)" + +msgid "Ignore changes in the amount of whitespace" +msgstr "Ausschlie??lich Leerraum betreffende ??nderungen ignorieren" + +#, python-format +msgid "Exactly one page like \"%s\" found, redirecting to page." +msgstr "Genau eine Seite wie \"%s\" gefunden, leite dorthin weiter." + +#, python-format +msgid "Pages like \"%s\"" +msgstr "Seiten ??hnlich wie \"%s\"" + +#, python-format +msgid "%(matchcount)d %(matches)s for \"%(title)s\"" +msgstr "%(matchcount)d %(matches)s passen zu \"%(title)s\"" + +msgid "Copy all /subpages too?" +msgstr "Alle /UnterSeiten auch kopieren?" + +msgid "Optional reason for the copying" +msgstr "Optionale Begr??ndung f??r das Kopieren" + +msgid "Really copy this page?" +msgstr "Diese Seite wirklich kopieren?" + +msgid "" +"Cannot create a new page without a page name. Please specify a page name." +msgstr "" +"Kann keine neue Seite ohne Seitennamen anlegen - bitte geben Sie einen " +"Seitennamen an." + +msgid "Delete" +msgstr "L??schen" + +msgid "Delete all /subpages too?" +msgstr "Alle /UnterSeiten auch l??schen?" + +msgid "Optional reason for the deletion" +msgstr "Optionale Begr??ndung f??r die L??schung" + +msgid "Really delete this page?" +msgstr "Diese Seite wirklich l??schen?" + +#~ msgid "filename" +#~ msgstr "Dateiname" + +#~ msgid "" +#~ "~-If you submit this form, the submitted values will be displayed.\n" +#~ "To use this form on other pages, insert a\n" +#~ "[[BR]][[BR]]'''{{{ [[Form(\"%(pagename)s\")]]}}}'''[[BR]][[BR]]\n" +#~ "macro call.-~\n" +#~ msgstr "" +#~ "~-Das Absenden dieses Formulars zeigt die eingegebenen Werte an.\n" +#~ "Um das Formular auf anderen Seiten zu benutzen, muss folgender " +#~ "Makroaufruf\n" +#~ "[[BR]][[BR]]'''{{{ [[Form(\"%(pagename)s\")]]}}}'''[[BR]][[BR]]\n" +#~ "auf diesen Seiten platziert werden.-~\n" + +#~ msgid "" +#~ "Unknown user name: {{{\"%s\"}}}. Please enter user name and password." +#~ msgstr "" +#~ "Unbekannter Benutzername: {{{\"%s\"}}}. Bitte geben Sie Benutzername und " +#~ "Passwort ein." Added: external/Pygments-0.9/tests/examplefiles/django_sample.html+django ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/django_sample.html+django Tue Oct 23 20:20:22 2007 @@ -0,0 +1,68 @@ +{% extends "admin/base_site.html" %} +{% load i18n admin_modify adminmedia %} +{% block extrahead %}{{ block.super }} + +{% for js in javascript_imports %}{% include_admin_script js %}{% endfor %} +{% endblock %} +{% block stylesheet %}{% admin_media_prefix %}css/forms.css{% endblock %} +{% block coltype %}{% if ordered_objects %}colMS{% else %}colM{% endif %}{% endblock %} +{% block bodyclass %}{{ opts.app_label }}-{{ opts.object_name.lower }} change-form{% endblock %} +{% block userlinks %}{% trans 'Documentation' %} / {% trans 'Change password' %} / {% trans 'Log out' %}{% endblock %} +{% block breadcrumbs %}{% if not is_popup %} + +{% endif %}{% endblock %} +{% block content %}
+{% if change %}{% if not is_popup %} + +{% endif %}{% endif %} +
{% block form_top %}{% endblock %} +
+{% if is_popup %}{% endif %} +{% if opts.admin.save_on_top %}{% submit_row %}{% endif %} +{% if form.error_dict %} +

+ {% blocktrans count form.error_dict.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %} +

+{% endif %} +{% for bound_field_set in bound_field_sets %} +
+ {% if bound_field_set.name %}

{{ bound_field_set.name }}

{% endif %} + {% if bound_field_set.description %}
{{ bound_field_set.description }}
{% endif %} + {% for bound_field_line in bound_field_set %} + {% admin_field_line bound_field_line %} + {% for bound_field in bound_field_line %} + {% filter_interface_script_maybe bound_field %} + {% endfor %} + {% endfor %} +
+{% endfor %} +{% block after_field_sets %}{% endblock %} +{% if change %} + {% if ordered_objects %} +

{% trans "Ordering" %}

+
+ {% if form.order_.errors %}{{ form.order_.html_error_list }}{% endif %} +

{{ form.order_ }}

+
+ {% endif %} +{% endif %} +{% for related_object in inline_related_objects %}{% edit_inline related_object %}{% endfor %} +{% block after_related_objects %}{% endblock %} +{% submit_row %} +{% if add %} + +{% endif %} +{% if auto_populated_fields %} + +{% endif %} +
+
+{% endblock %} Added: external/Pygments-0.9/tests/examplefiles/dwarf.cw ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/dwarf.cw Tue Oct 23 20:20:22 2007 @@ -0,0 +1,17 @@ +;redcode +;name Dwarf +;author A. K. Dewdney +;version 94.1 +;date April 29, 1993 +;strategy Bombs every fourth instruction. + ORG start ; Indicates the instruction with + ; the label "start" should be the + ; first to execute. +step EQU 4 ; Replaces all occurrences of "step" + ; with the character "4". +target DAT.F #0, #0 ; Pointer to target instruction. +start ADD.AB #step, target ; Increments pointer by step. + MOV.AB #0, @target ; Bombs target instruction. + JMP.A start ; Same as JMP.A -2. Loops back to + ; the instruction labelled "start". + END Added: external/Pygments-0.9/tests/examplefiles/example.c ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/example.c Tue Oct 23 20:20:22 2007 @@ -0,0 +1,2080 @@ +#include +#include +#include +#include "codegen.h" +#include "symboltable.h" +#include "stringbuffer.h" + +extern void yyerror(char* msg); + +static stringBuffer* staticVariableBuffer; +static stringBuffer* classInitBuffer; +static stringBuffer* currentMethodBuffer; +static stringBuffer* finishedMethodsBuffer; +static stringBuffer* mainBuffer; + +static int currentMethodBufferIndex; +static int currentMethodStackSize; +static int currentMethodStackSizeMax; +static int currentMethodNumberOfLocals; + +static int classInitBufferIndex; +static int classInitStackSize; +static int classInitStackSizeMax; + +static int labelCounter = 0; +static int global = 1; + +char tempString[MAX_LENGTH_OF_COMMAND]; + +extern char* className; /* from minako-syntax.y */ + +/* forward declarations */ +static void increaseStackby(int stackdiff); +char convertType(int type); + +void codegenInit() { + staticVariableBuffer = newStringBuffer(); + classInitBuffer = newStringBuffer(); + currentMethodBuffer = 0; + finishedMethodsBuffer = newStringBuffer(); + mainBuffer = newStringBuffer(); + + stringBufferAppend(mainBuffer, "; ------- Header --------------------------------------------"); + sprintf(tempString, ".class public synchronized %s", className); + stringBufferAppend(mainBuffer, tempString); + stringBufferAppend(mainBuffer, ".super java/lang/Object"); + stringBufferAppend(mainBuffer, "; -----------------------------------------------------------"); + stringBufferAppend(mainBuffer, ""); + + stringBufferAppend(finishedMethodsBuffer, "; ------- Constructor ---------------------------------------"); + stringBufferAppend(finishedMethodsBuffer, ".method public ()V"); + stringBufferAppend(finishedMethodsBuffer, "\t.limit stack 1"); + stringBufferAppend(finishedMethodsBuffer, "\t.limit locals 1"); + stringBufferAppend(finishedMethodsBuffer, "\taload_0"); + stringBufferAppend(finishedMethodsBuffer, "\tinvokenonvirtual java/lang/Object/()V"); + stringBufferAppend(finishedMethodsBuffer, "\treturn"); + stringBufferAppend(finishedMethodsBuffer, ".end method"); + stringBufferAppend(finishedMethodsBuffer, "; -----------------------------------------------------------"); + stringBufferAppend(finishedMethodsBuffer, ""); + + stringBufferAppend(staticVariableBuffer, "; ------- Class Variables -----------------------------------"); + + stringBufferAppend(classInitBuffer, "; ------- Class Initializer ---------------------------------"); + stringBufferAppend(classInitBuffer, ".method static ()V"); + classInitBufferIndex = classInitBuffer->numberOfNextElement; + stringBufferAppend(classInitBuffer, "\t.limit locals 0"); + +} + +void codegenAppendCommand(char* cmd, int stackdiff) { + char tempString[MAX_LENGTH_OF_COMMAND]; + sprintf(tempString, "\t%s", cmd); + if (global) stringBufferAppend(classInitBuffer, tempString); + else stringBufferAppend(currentMethodBuffer, tempString); + increaseStackby(stackdiff); +} + +void codegenInsertCommand(int address, char* cmd, int stackdiff) { + char tempString[MAX_LENGTH_OF_COMMAND]; + sprintf(tempString, "\t%s", cmd); + if (global) stringBufferInsert(classInitBuffer, address, tempString); + else stringBufferInsert(currentMethodBuffer, address, tempString); + increaseStackby(stackdiff); +} + +void codegenAppendLabel(int label) { + char tempString[MAX_LENGTH_OF_COMMAND]; + sprintf(tempString, "Label%d:", label); + if (global) stringBufferAppend(classInitBuffer, tempString); + else stringBufferAppend(currentMethodBuffer, tempString); +} + +void codegenAddVariable(char* name, int type) { + /*fprintf(stderr, "add variable %s(%d) global=%d ", name, convertType(type), global);*/ + if (global) { + if (type == TYPE_INT) sprintf(tempString, ".field static %s %c", name, 'I'); + else if (type == TYPE_FLOAT) sprintf(tempString, ".field static %s %c", name, 'F'); + else if (type == TYPE_BOOLEAN) sprintf(tempString, ".field static %s %c", name, 'Z'); + else yyerror("compiler-intern error in codegenAddGlobalVariable().\n"); + stringBufferAppend(staticVariableBuffer, tempString); + } + else { + currentMethodNumberOfLocals++; + } +} + +int codegenGetNextLabel() { + return labelCounter++; +} + +int codegenGetCurrentAddress() { + if (global) return classInitBuffer->numberOfNextElement; + else return currentMethodBuffer->numberOfNextElement; +} + +void codegenEnterFunction(symtabEntry* entry) { + currentMethodBuffer = newStringBuffer(); + currentMethodStackSize = 0; + currentMethodStackSizeMax = 0; + labelCounter = 1; + global = 0; + + if (strcmp(entry->name, "main") == 0) { + if (entry->idtype != TYPE_VOID) yyerror("main has to be void.\n"); + currentMethodNumberOfLocals = 1; + symtabInsert(strdup("#main-param#"), TYPE_VOID, CLASS_FUNC); + stringBufferAppend(currentMethodBuffer, "; ------- Methode ---- void main() --------------------------"); + stringBufferAppend(currentMethodBuffer, ".method public static main([Ljava/lang/String;)V"); + } + else { + int i; + currentMethodNumberOfLocals = entry->paramIndex; + stringBufferAppend(currentMethodBuffer, "; ------- Methode -------------------------------------------"); + sprintf(tempString, ".method public static %s(", entry->name); + for (i=entry->paramIndex-1; i>=0; i--) { + int type = entry->params[i]->idtype; + tempString[strlen(tempString)+1] = 0; + tempString[strlen(tempString)] = convertType(type); + } + tempString[strlen(tempString)+2] = 0; + tempString[strlen(tempString)+1] = convertType(entry->idtype); + tempString[strlen(tempString)] = ')'; + stringBufferAppend(currentMethodBuffer, tempString); + } + currentMethodBufferIndex = currentMethodBuffer->numberOfNextElement; +} + +void codegenLeaveFunction() { + global = 1; + sprintf(tempString, "\t.limit locals %d", currentMethodNumberOfLocals); + stringBufferInsert(currentMethodBuffer, currentMethodBufferIndex, tempString); + sprintf(tempString, "\t.limit stack %d", currentMethodStackSizeMax); + stringBufferInsert(currentMethodBuffer, currentMethodBufferIndex, tempString); + stringBufferAppend(currentMethodBuffer, "\treturn"); + stringBufferAppend(currentMethodBuffer, ".end method"); + stringBufferAppend(currentMethodBuffer, "; -----------------------------------------------------------"); + stringBufferAppend(currentMethodBuffer, ""); + + stringBufferConcatenate(finishedMethodsBuffer, currentMethodBuffer); +} + + + +void codegenFinishCode() { + stringBufferAppend(staticVariableBuffer, "; -----------------------------------------------------------"); + stringBufferAppend(staticVariableBuffer, ""); + + sprintf(tempString, "\t.limit stack %d", classInitStackSizeMax); + stringBufferInsert(classInitBuffer, classInitBufferIndex, tempString); + stringBufferAppend(classInitBuffer, "\treturn"); + stringBufferAppend(classInitBuffer, ".end method"); + stringBufferAppend(classInitBuffer, "; -----------------------------------------------------------"); + + stringBufferConcatenate(mainBuffer, staticVariableBuffer); + stringBufferConcatenate(mainBuffer, finishedMethodsBuffer); + stringBufferConcatenate(mainBuffer, classInitBuffer); + + stringBufferPrint(mainBuffer); +} + +static void increaseStackby(int stackdiff) { + if (global) { + classInitStackSize += stackdiff; + if (classInitStackSize > classInitStackSizeMax) classInitStackSizeMax = classInitStackSize; + } + else { + currentMethodStackSize += stackdiff; + if (currentMethodStackSize > currentMethodStackSizeMax) currentMethodStackSizeMax = currentMethodStackSize; + } +} + +char convertType(int type) { + switch(type) { + case TYPE_VOID: return 'V'; + case TYPE_INT: return 'I'; + case TYPE_FLOAT: return 'F'; + case TYPE_BOOLEAN: return 'Z'; + default: yyerror("compiler-intern error in convertType().\n"); + } + return 0; /* to avoid compiler-warning */ +} + + +//#include +//#include + +int main() { + int a = 12, b = 44; + while (a != b) { + if (a > b) + a -= b; + else + b -= a; + } + printf("%d\n%d", a, 0X0);\ +} + + +/********************************************************************** + + array.c - + + $Author: murphy $ + $Date: 2005-11-05 04:33:55 +0100 (Sa, 05 Nov 2005) $ + created at: Fri Aug 6 09:46:12 JST 1993 + + Copyright (C) 1993-2003 Yukihiro Matsumoto + Copyright (C) 2000 Network Applied Communication Laboratory, Inc. + Copyright (C) 2000 Information-technology Promotion Agency, Japan + +**********************************************************************/ + +#include "ruby.h" +#include "util.h" +#include "st.h" +#include "node.h" + +VALUE rb_cArray, rb_cValues; + +static ID id_cmp; + +#define ARY_DEFAULT_SIZE 16 + + +void +rb_mem_clear(mem, size) + register VALUE *mem; + register long size; +{ + while (size--) { + *mem++ = Qnil; + } +} + +static inline void +memfill(mem, size, val) + register VALUE *mem; + register long size; + register VALUE val; +{ + while (size--) { + *mem++ = val; + } +} + +#define ARY_TMPLOCK FL_USER1 + +static inline void +rb_ary_modify_check(ary) + VALUE ary; +{ + if (OBJ_FROZEN(ary)) rb_error_frozen("array"); + if (FL_TEST(ary, ARY_TMPLOCK)) + rb_raise(rb_eRuntimeError, "can't modify array during iteration"); + if (!OBJ_TAINTED(ary) && rb_safe_level() >= 4) + rb_raise(rb_eSecurityError, "Insecure: can't modify array"); +} + +static void +rb_ary_modify(ary) + VALUE ary; +{ + VALUE *ptr; + + rb_ary_modify_check(ary); + if (FL_TEST(ary, ELTS_SHARED)) { + ptr = ALLOC_N(VALUE, RARRAY(ary)->len); + FL_UNSET(ary, ELTS_SHARED); + RARRAY(ary)->aux.capa = RARRAY(ary)->len; + MEMCPY(ptr, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len); + RARRAY(ary)->ptr = ptr; + } +} + +VALUE +rb_ary_freeze(ary) + VALUE ary; +{ + return rb_obj_freeze(ary); +} + +/* + * call-seq: + * array.frozen? -> true or false + * + * Return true if this array is frozen (or temporarily frozen + * while being sorted). + */ + +static VALUE +rb_ary_frozen_p(ary) + VALUE ary; +{ + if (OBJ_FROZEN(ary)) return Qtrue; + if (FL_TEST(ary, ARY_TMPLOCK)) return Qtrue; + return Qfalse; +} + +static VALUE ary_alloc(VALUE); +static VALUE +ary_alloc(klass) + VALUE klass; +{ + NEWOBJ(ary, struct RArray); + OBJSETUP(ary, klass, T_ARRAY); + + ary->len = 0; + ary->ptr = 0; + ary->aux.capa = 0; + + return (VALUE)ary; +} + +static VALUE +ary_new(klass, len) + VALUE klass; + long len; +{ + VALUE ary; + + if (len < 0) { + rb_raise(rb_eArgError, "negative array size (or size too big)"); + } + if (len > 0 && len * sizeof(VALUE) <= len) { + rb_raise(rb_eArgError, "array size too big"); + } + if (len == 0) len++; + + ary = ary_alloc(klass); + RARRAY(ary)->ptr = ALLOC_N(VALUE, len); + RARRAY(ary)->aux.capa = len; + + return ary; +} + +VALUE +rb_ary_new2(len) + long len; +{ + return ary_new(rb_cArray, len); +} + + +VALUE +rb_ary_new() +{ + return rb_ary_new2(ARY_DEFAULT_SIZE); +} + +#ifdef HAVE_STDARG_PROTOTYPES +#include +#define va_init_list(a,b) va_start(a,b) +#else +#include +#define va_init_list(a,b) va_start(a) +#endif + +VALUE +#ifdef HAVE_STDARG_PROTOTYPES +rb_ary_new3(long n, ...) +#else +rb_ary_new3(n, va_alist) + long n; + va_dcl +#endif +{ + va_list ar; + VALUE ary; + long i; + + ary = rb_ary_new2(n); + + va_init_list(ar, n); + for (i=0; iptr[i] = va_arg(ar, VALUE); + } + va_end(ar); + + RARRAY(ary)->len = n; + return ary; +} + +VALUE +rb_ary_new4(n, elts) + long n; + const VALUE *elts; +{ + VALUE ary; + + ary = rb_ary_new2(n); + if (n > 0 && elts) { + MEMCPY(RARRAY(ary)->ptr, elts, VALUE, n); + } + RARRAY(ary)->len = n; + + return ary; +} + +VALUE +#ifdef HAVE_STDARG_PROTOTYPES +rb_values_new(long n, ...) +#else +rb_values_new(n, va_alist) + long n; + va_dcl +#endif +{ + va_list ar; + VALUE val; + long i; + + val = ary_new(rb_cValues, n); + va_init_list(ar, n); + for (i=0; iptr[i] = va_arg(ar, VALUE); + } + va_end(ar); + RARRAY(val)->len = n; + + return val; +} + +VALUE +rb_values_new2(n, elts) + long n; + const VALUE *elts; +{ + VALUE val; + + val = ary_new(rb_cValues, n); + if (n > 0 && elts) { + RARRAY(val)->len = n; + MEMCPY(RARRAY(val)->ptr, elts, VALUE, n); + } + + return val; +} + +static VALUE +ary_make_shared(ary) + VALUE ary; +{ + if (!FL_TEST(ary, ELTS_SHARED)) { + NEWOBJ(shared, struct RArray); + OBJSETUP(shared, rb_cArray, T_ARRAY); + + shared->len = RARRAY(ary)->len; + shared->ptr = RARRAY(ary)->ptr; + shared->aux.capa = RARRAY(ary)->aux.capa; + RARRAY(ary)->aux.shared = (VALUE)shared; + FL_SET(ary, ELTS_SHARED); + OBJ_FREEZE(shared); + return (VALUE)shared; + } + else { + return RARRAY(ary)->aux.shared; + } +} + +static VALUE +ary_shared_array(klass, ary) + VALUE klass, ary; +{ + VALUE val = ary_alloc(klass); + + ary_make_shared(ary); + RARRAY(val)->ptr = RARRAY(ary)->ptr; + RARRAY(val)->len = RARRAY(ary)->len; + RARRAY(val)->aux.shared = RARRAY(ary)->aux.shared; + FL_SET(val, ELTS_SHARED); + return val; +} + +VALUE +rb_values_from_ary(ary) + VALUE ary; +{ + return ary_shared_array(rb_cValues, ary); +} + +VALUE +rb_ary_from_values(val) + VALUE val; +{ + return ary_shared_array(rb_cArray, val); +} + +VALUE +rb_assoc_new(car, cdr) + VALUE car, cdr; +{ + return rb_values_new(2, car, cdr); +} + +static VALUE +to_ary(ary) + VALUE ary; +{ + return rb_convert_type(ary, T_ARRAY, "Array", "to_ary"); +} + +static VALUE +to_a(ary) + VALUE ary; +{ + return rb_convert_type(ary, T_ARRAY, "Array", "to_a"); +} + +VALUE +rb_check_array_type(ary) + VALUE ary; +{ + return rb_check_convert_type(ary, T_ARRAY, "Array", "to_ary"); +} + +static VALUE rb_ary_replace _((VALUE, VALUE)); + +/* + * call-seq: + * Array.new(size=0, obj=nil) + * Array.new(array) + * Array.new(size) {|index| block } + * + * Returns a new array. In the first form, the new array is + * empty. In the second it is created with _size_ copies of _obj_ + * (that is, _size_ references to the same + * _obj_). The third form creates a copy of the array + * passed as a parameter (the array is generated by calling + * to_ary on the parameter). In the last form, an array + * of the given size is created. Each element in this array is + * calculated by passing the element's index to the given block and + * storing the return value. + * + * Array.new + * Array.new(2) + * Array.new(5, "A") + * + * # only one copy of the object is created + * a = Array.new(2, Hash.new) + * a[0]['cat'] = 'feline' + * a + * a[1]['cat'] = 'Felix' + * a + * + * # here multiple copies are created + * a = Array.new(2) { Hash.new } + * a[0]['cat'] = 'feline' + * a + * + * squares = Array.new(5) {|i| i*i} + * squares + * + * copy = Array.new(squares) + */ + +static VALUE +rb_ary_initialize(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + long len; + VALUE size, val; + + if (rb_scan_args(argc, argv, "02", &size, &val) == 0) { + RARRAY(ary)->len = 0; + if (rb_block_given_p()) { + rb_warning("given block not used"); + } + return ary; + } + + if (argc == 1 && !FIXNUM_P(size)) { + val = rb_check_array_type(size); + if (!NIL_P(val)) { + rb_ary_replace(ary, val); + return ary; + } + } + + len = NUM2LONG(size); + if (len < 0) { + rb_raise(rb_eArgError, "negative array size"); + } + if (len > 0 && len * (long)sizeof(VALUE) <= len) { + rb_raise(rb_eArgError, "array size too big"); + } + rb_ary_modify(ary); + if (len > RARRAY(ary)->aux.capa) { + REALLOC_N(RARRAY(ary)->ptr, VALUE, len); + RARRAY(ary)->aux.capa = len; + } + if (rb_block_given_p()) { + long i; + + if (argc == 2) { + rb_warn("block supersedes default value argument"); + } + for (i=0; ilen = i + 1; + } + } + else { + memfill(RARRAY(ary)->ptr, len, val); + RARRAY(ary)->len = len; + } + + return ary; +} + + +/* +* Returns a new array populated with the given objects. +* +* Array.[]( 1, 'a', /^A/ ) +* Array[ 1, 'a', /^A/ ] +* [ 1, 'a', /^A/ ] +*/ + +static VALUE +rb_ary_s_create(argc, argv, klass) + int argc; + VALUE *argv; + VALUE klass; +{ + VALUE ary = ary_alloc(klass); + + if (argc > 0) { + RARRAY(ary)->ptr = ALLOC_N(VALUE, argc); + MEMCPY(RARRAY(ary)->ptr, argv, VALUE, argc); + } + RARRAY(ary)->len = RARRAY(ary)->aux.capa = argc; + + return ary; +} + +void +rb_ary_store(ary, idx, val) + VALUE ary; + long idx; + VALUE val; +{ + if (idx < 0) { + idx += RARRAY(ary)->len; + if (idx < 0) { + rb_raise(rb_eIndexError, "index %ld out of array", + idx - RARRAY(ary)->len); + } + } + + rb_ary_modify(ary); + if (idx >= RARRAY(ary)->aux.capa) { + long new_capa = RARRAY(ary)->aux.capa / 2; + + if (new_capa < ARY_DEFAULT_SIZE) { + new_capa = ARY_DEFAULT_SIZE; + } + new_capa += idx; + if (new_capa * (long)sizeof(VALUE) <= new_capa) { + rb_raise(rb_eArgError, "index too big"); + } + REALLOC_N(RARRAY(ary)->ptr, VALUE, new_capa); + RARRAY(ary)->aux.capa = new_capa; + } + if (idx > RARRAY(ary)->len) { + rb_mem_clear(RARRAY(ary)->ptr + RARRAY(ary)->len, + idx-RARRAY(ary)->len + 1); + } + + if (idx >= RARRAY(ary)->len) { + RARRAY(ary)->len = idx + 1; + } + RARRAY(ary)->ptr[idx] = val; +} + +static VALUE +ary_shared_first(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + VALUE nv, result; + long n; + + rb_scan_args(argc, argv, "1", &nv); + n = NUM2LONG(nv); + if (n > RARRAY(ary)->len) { + n = RARRAY(ary)->len; + } + else if (n < 0) { + rb_raise(rb_eArgError, "negative array size"); + } + result = ary_shared_array(rb_cArray, ary); + RARRAY(result)->len = n; + return result; +} + +static VALUE +ary_shared_last(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + VALUE result = ary_shared_first(argc, argv, ary); + + RARRAY(result)->ptr += RARRAY(ary)->len - RARRAY(result)->len; + return result; +} + +/* + * call-seq: + * array << obj -> array + * + * Append---Pushes the given object on to the end of this array. This + * expression returns the array itself, so several appends + * may be chained together. + * + * [ 1, 2 ] << "c" << "d" << [ 3, 4 ] + * #=> [ 1, 2, "c", "d", [ 3, 4 ] ] + * + */ + +VALUE +rb_ary_push(ary, item) + VALUE ary; + VALUE item; +{ + rb_ary_store(ary, RARRAY(ary)->len, item); + return ary; +} + +/* + * call-seq: + * array.push(obj, ... ) -> array + * + * Append---Pushes the given object(s) on to the end of this array. This + * expression returns the array itself, so several appends + * may be chained together. + * + * a = [ "a", "b", "c" ] + * a.push("d", "e", "f") + * #=> ["a", "b", "c", "d", "e", "f"] + */ + +static VALUE +rb_ary_push_m(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + while (argc--) { + rb_ary_push(ary, *argv++); + } + return ary; +} + +VALUE +rb_ary_pop(ary) + VALUE ary; +{ + rb_ary_modify_check(ary); + if (RARRAY(ary)->len == 0) return Qnil; + if (!FL_TEST(ary, ELTS_SHARED) && + RARRAY(ary)->len * 2 < RARRAY(ary)->aux.capa && + RARRAY(ary)->aux.capa > ARY_DEFAULT_SIZE) { + RARRAY(ary)->aux.capa = RARRAY(ary)->len * 2; + REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->aux.capa); + } + return RARRAY(ary)->ptr[--RARRAY(ary)->len]; +} + +/* + * call-seq: + * array.pop -> obj or nil + * + * Removes the last element from self and returns it, or + * nil if the array is empty. + * + * a = [ "a", "b", "c", "d" ] + * a.pop #=> "d" + * a.pop(2) #=> ["b", "c"] + * a #=> ["a"] + */ + +static VALUE +rb_ary_pop_m(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + VALUE result; + + if (argc == 0) { + return rb_ary_pop(ary); + } + + rb_ary_modify_check(ary); + + result = ary_shared_last(argc, argv, ary); + RARRAY(ary)->len -= RARRAY(result)->len; + return result; +} + +VALUE +rb_ary_shift(ary) + VALUE ary; +{ + VALUE top; + + rb_ary_modify_check(ary); + if (RARRAY(ary)->len == 0) return Qnil; + top = RARRAY(ary)->ptr[0]; + ary_make_shared(ary); + RARRAY(ary)->ptr++; /* shift ptr */ + RARRAY(ary)->len--; + + return top; +} + +/* + * call-seq: + * array.shift -> obj or nil + * + * Returns the first element of self and removes it (shifting all + * other elements down by one). Returns nil if the array + * is empty. + * + * args = [ "-m", "-q", "filename" ] + * args.shift #=> "-m" + * args #=> ["-q", "filename"] + * + * args = [ "-m", "-q", "filename" ] + * args.shift(2) #=> ["-m", "-q"] + * args #=> ["filename"] + */ + +static VALUE +rb_ary_shift_m(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + VALUE result; + long n; + + if (argc == 0) { + return rb_ary_shift(ary); + } + + rb_ary_modify_check(ary); + + result = ary_shared_first(argc, argv, ary); + n = RARRAY(result)->len; + RARRAY(ary)->ptr += n; + RARRAY(ary)->len -= n; + + return result; +} + +VALUE +rb_ary_unshift(ary, item) + VALUE ary, item; +{ + rb_ary_modify(ary); + if (RARRAY(ary)->len == RARRAY(ary)->aux.capa) { + long capa_inc = RARRAY(ary)->aux.capa / 2; + if (capa_inc < ARY_DEFAULT_SIZE) { + capa_inc = ARY_DEFAULT_SIZE; + } + RARRAY(ary)->aux.capa += capa_inc; + REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->aux.capa); + } + + /* sliding items */ + MEMMOVE(RARRAY(ary)->ptr + 1, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len); + + RARRAY(ary)->len++; + RARRAY(ary)->ptr[0] = item; + + return ary; +} + +/* + * call-seq: + * array.unshift(obj, ...) -> array + * + * Prepends objects to the front of array. + * other elements up one. + * + * a = [ "b", "c", "d" ] + * a.unshift("a") #=> ["a", "b", "c", "d"] + * a.unshift(1, 2) #=> [ 1, 2, "a", "b", "c", "d"] + */ + +static VALUE +rb_ary_unshift_m(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + long len = RARRAY(ary)->len; + + if (argc == 0) return ary; + + /* make rooms by setting the last item */ + rb_ary_store(ary, len + argc - 1, Qnil); + + /* sliding items */ + MEMMOVE(RARRAY(ary)->ptr + argc, RARRAY(ary)->ptr, VALUE, len); + MEMCPY(RARRAY(ary)->ptr, argv, VALUE, argc); + + return ary; +} + +/* faster version - use this if you don't need to treat negative offset */ +static inline VALUE +rb_ary_elt(ary, offset) + VALUE ary; + long offset; +{ + if (RARRAY(ary)->len == 0) return Qnil; + if (offset < 0 || RARRAY(ary)->len <= offset) { + return Qnil; + } + return RARRAY(ary)->ptr[offset]; +} + +VALUE +rb_ary_entry(ary, offset) + VALUE ary; + long offset; +{ + if (offset < 0) { + offset += RARRAY(ary)->len; + } + return rb_ary_elt(ary, offset); +} + +static VALUE +rb_ary_subseq(ary, beg, len) + VALUE ary; + long beg, len; +{ + VALUE klass, ary2, shared; + VALUE *ptr; + + if (beg > RARRAY(ary)->len) return Qnil; + if (beg < 0 || len < 0) return Qnil; + + if (beg + len > RARRAY(ary)->len) { + len = RARRAY(ary)->len - beg; + if (len < 0) + len = 0; + } + klass = rb_obj_class(ary); + if (len == 0) return ary_new(klass, 0); + + shared = ary_make_shared(ary); + ptr = RARRAY(ary)->ptr; + ary2 = ary_alloc(klass); + RARRAY(ary2)->ptr = ptr + beg; + RARRAY(ary2)->len = len; + RARRAY(ary2)->aux.shared = shared; + FL_SET(ary2, ELTS_SHARED); + + return ary2; +} + +/* + * call-seq: + * array[index] -> obj or nil + * array[start, length] -> an_array or nil + * array[range] -> an_array or nil + * array.slice(index) -> obj or nil + * array.slice(start, length) -> an_array or nil + * array.slice(range) -> an_array or nil + * + * Element Reference---Returns the element at _index_, + * or returns a subarray starting at _start_ and + * continuing for _length_ elements, or returns a subarray + * specified by _range_. + * Negative indices count backward from the end of the + * array (-1 is the last element). Returns nil if the index + * (or starting index) are out of range. + * + * a = [ "a", "b", "c", "d", "e" ] + * a[2] + a[0] + a[1] #=> "cab" + * a[6] #=> nil + * a[1, 2] #=> [ "b", "c" ] + * a[1..3] #=> [ "b", "c", "d" ] + * a[4..7] #=> [ "e" ] + * a[6..10] #=> nil + * a[-3, 3] #=> [ "c", "d", "e" ] + * # special cases + * a[5] #=> nil + * a[5, 1] #=> [] + * a[5..10] #=> [] + * + */ + +VALUE +rb_ary_aref(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + VALUE arg; + long beg, len; + + if (argc == 2) { + beg = NUM2LONG(argv[0]); + len = NUM2LONG(argv[1]); + if (beg < 0) { + beg += RARRAY(ary)->len; + } + return rb_ary_subseq(ary, beg, len); + } + if (argc != 1) { + rb_scan_args(argc, argv, "11", 0, 0); + } + arg = argv[0]; + /* special case - speeding up */ + if (FIXNUM_P(arg)) { + return rb_ary_entry(ary, FIX2LONG(arg)); + } + /* check if idx is Range */ + switch (rb_range_beg_len(arg, &beg, &len, RARRAY(ary)->len, 0)) { + case Qfalse: + break; + case Qnil: + return Qnil; + default: + return rb_ary_subseq(ary, beg, len); + } + return rb_ary_entry(ary, NUM2LONG(arg)); +} + +/* + * call-seq: + * array.at(index) -> obj or nil + * + * Returns the element at _index_. A + * negative index counts from the end of _self_. Returns +nil+ + * if the index is out of range. See also Array#[]. + * (Array#at is slightly faster than Array#[], + * as it does not accept ranges and so on.) + * + * a = [ "a", "b", "c", "d", "e" ] + * a.at(0) #=> "a" + * a.at(-1) #=> "e" + */ + +static VALUE +rb_ary_at(ary, pos) + VALUE ary, pos; +{ + return rb_ary_entry(ary, NUM2LONG(pos)); +} + +/* + * call-seq: + * array.first -> obj or nil + * array.first(n) -> an_array + * + * Returns the first element of the array. If the array is empty, + * returns nil. + * + * a = [ "q", "r", "s", "t" ] + * a.first #=> "q" + * a.first(2) #=> ["q", "r"] + */ + +static VALUE +rb_ary_first(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + if (argc == 0) { + if (RARRAY(ary)->len == 0) return Qnil; + return RARRAY(ary)->ptr[0]; + } + else { + return ary_shared_first(argc, argv, ary); + } +} + +/* + * call-seq: + * array.last -> obj or nil + * array.last(n) -> an_array + * + * Returns the last element(s) of self. If the array is empty, + * the first form returns nil. + * + * a = [ "w", "x", "y", "z" ] + * a.last #=> "z" + * a.last(2) #=> ["y", "z"] + */ + +static VALUE +rb_ary_last(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + if (argc == 0) { + if (RARRAY(ary)->len == 0) return Qnil; + return RARRAY(ary)->ptr[RARRAY(ary)->len-1]; + } + else { + return ary_shared_last(argc, argv, ary); + } +} + +/* + * call-seq: + * array.fetch(index) -> obj + * array.fetch(index, default ) -> obj + * array.fetch(index) {|index| block } -> obj + * + * Tries to return the element at position index. If the index + * lies outside the array, the first form throws an + * IndexError exception, the second form returns + * default, and the third form returns the value of invoking + * the block, passing in the index. Negative values of index + * count from the end of the array. + * + * a = [ 11, 22, 33, 44 ] + * a.fetch(1) #=> 22 + * a.fetch(-1) #=> 44 + * a.fetch(4, 'cat') #=> "cat" + * a.fetch(4) { |i| i*i } #=> 16 + */ + +static VALUE +rb_ary_fetch(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + VALUE pos, ifnone; + long block_given; + long idx; + + rb_scan_args(argc, argv, "11", &pos, &ifnone); + block_given = rb_block_given_p(); + if (block_given && argc == 2) { + rb_warn("block supersedes default value argument"); + } + idx = NUM2LONG(pos); + + if (idx < 0) { + idx += RARRAY(ary)->len; + } + if (idx < 0 || RARRAY(ary)->len <= idx) { + if (block_given) return rb_yield(pos); + if (argc == 1) { + rb_raise(rb_eIndexError, "index %ld out of array", idx); + } + return ifnone; + } + return RARRAY(ary)->ptr[idx]; +} + +/* + * call-seq: + * array.index(obj) -> int or nil + * array.index {|item| block} -> int or nil + * + * Returns the index of the first object in self such that is + * == to obj. If a block is given instead of an + * argument, returns first object for which block is true. + * Returns nil if no match is found. + * + * a = [ "a", "b", "c" ] + * a.index("b") #=> 1 + * a.index("z") #=> nil + * a.index{|x|x=="b"} #=> 1 + */ + +static VALUE +rb_ary_index(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + VALUE val; + long i; + + if (rb_scan_args(argc, argv, "01", &val) == 0) { + for (i=0; ilen; i++) { + if (RTEST(rb_yield(RARRAY(ary)->ptr[i]))) { + return LONG2NUM(i); + } + } + } + else { + for (i=0; ilen; i++) { + if (rb_equal(RARRAY(ary)->ptr[i], val)) + return LONG2NUM(i); + } + } + return Qnil; +} + +/* + * call-seq: + * array.rindex(obj) -> int or nil + * + * Returns the index of the last object in array + * == to obj. If a block is given instead of an + * argument, returns first object for which block is + * true. Returns nil if no match is found. + * + * a = [ "a", "b", "b", "b", "c" ] + * a.rindex("b") #=> 3 + * a.rindex("z") #=> nil + * a.rindex{|x|x=="b"} #=> 3 + */ + +static VALUE +rb_ary_rindex(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + VALUE val; + long i = RARRAY(ary)->len; + + if (rb_scan_args(argc, argv, "01", &val) == 0) { + while (i--) { + if (RTEST(rb_yield(RARRAY(ary)->ptr[i]))) + return LONG2NUM(i); + if (i > RARRAY(ary)->len) { + i = RARRAY(ary)->len; + } + } + } + else { + while (i--) { + if (rb_equal(RARRAY(ary)->ptr[i], val)) + return LONG2NUM(i); + if (i > RARRAY(ary)->len) { + i = RARRAY(ary)->len; + } + } + } + return Qnil; +} + +VALUE +rb_ary_to_ary(obj) + VALUE obj; +{ + if (TYPE(obj) == T_ARRAY) { + return obj; + } + if (rb_respond_to(obj, rb_intern("to_ary"))) { + return to_ary(obj); + } + return rb_ary_new3(1, obj); +} + +static void +rb_ary_splice(ary, beg, len, rpl) + VALUE ary; + long beg, len; + VALUE rpl; +{ + long rlen; + + if (len < 0) rb_raise(rb_eIndexError, "negative length (%ld)", len); + if (beg < 0) { + beg += RARRAY(ary)->len; + if (beg < 0) { + beg -= RARRAY(ary)->len; + rb_raise(rb_eIndexError, "index %ld out of array", beg); + } + } + if (beg + len > RARRAY(ary)->len) { + len = RARRAY(ary)->len - beg; + } + + if (rpl == Qundef) { + rlen = 0; + } + else { + rpl = rb_ary_to_ary(rpl); + rlen = RARRAY(rpl)->len; + } + rb_ary_modify(ary); + + if (beg >= RARRAY(ary)->len) { + len = beg + rlen; + if (len >= RARRAY(ary)->aux.capa) { + REALLOC_N(RARRAY(ary)->ptr, VALUE, len); + RARRAY(ary)->aux.capa = len; + } + rb_mem_clear(RARRAY(ary)->ptr + RARRAY(ary)->len, beg - RARRAY(ary)->len); + if (rlen > 0) { + MEMCPY(RARRAY(ary)->ptr + beg, RARRAY(rpl)->ptr, VALUE, rlen); + } + RARRAY(ary)->len = len; + } + else { + long alen; + + if (beg + len > RARRAY(ary)->len) { + len = RARRAY(ary)->len - beg; + } + + alen = RARRAY(ary)->len + rlen - len; + if (alen >= RARRAY(ary)->aux.capa) { + REALLOC_N(RARRAY(ary)->ptr, VALUE, alen); + RARRAY(ary)->aux.capa = alen; + } + + if (len != rlen) { + MEMMOVE(RARRAY(ary)->ptr + beg + rlen, RARRAY(ary)->ptr + beg + len, + VALUE, RARRAY(ary)->len - (beg + len)); + RARRAY(ary)->len = alen; + } + if (rlen > 0) { + MEMMOVE(RARRAY(ary)->ptr + beg, RARRAY(rpl)->ptr, VALUE, rlen); + } + } +} + +/* + * call-seq: + * array[index] = obj -> obj + * array[start, length] = obj or an_array or nil -> obj or an_array or nil + * array[range] = obj or an_array or nil -> obj or an_array or nil + * + * Element Assignment---Sets the element at _index_, + * or replaces a subarray starting at _start_ and + * continuing for _length_ elements, or replaces a subarray + * specified by _range_. If indices are greater than + * the current capacity of the array, the array grows + * automatically. A negative indices will count backward + * from the end of the array. Inserts elements if _length_ is + * zero. An +IndexError+ is raised if a negative index points + * past the beginning of the array. See also + * Array#push, and Array#unshift. + * + * a = Array.new + * a[4] = "4"; #=> [nil, nil, nil, nil, "4"] + * a[0, 3] = [ 'a', 'b', 'c' ] #=> ["a", "b", "c", nil, "4"] + * a[1..2] = [ 1, 2 ] #=> ["a", 1, 2, nil, "4"] + * a[0, 2] = "?" #=> ["?", 2, nil, "4"] + * a[0..2] = "A" #=> ["A", "4"] + * a[-1] = "Z" #=> ["A", "Z"] + * a[1..-1] = nil #=> ["A", nil] + * a[1..-1] = [] #=> ["A"] + */ + +static VALUE +rb_ary_aset(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + long offset, beg, len; + + if (argc == 3) { + rb_ary_splice(ary, NUM2LONG(argv[0]), NUM2LONG(argv[1]), argv[2]); + return argv[2]; + } + if (argc != 2) { + rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc); + } + if (FIXNUM_P(argv[0])) { + offset = FIX2LONG(argv[0]); + goto fixnum; + } + if (rb_range_beg_len(argv[0], &beg, &len, RARRAY(ary)->len, 1)) { + /* check if idx is Range */ + rb_ary_splice(ary, beg, len, argv[1]); + return argv[1]; + } + + offset = NUM2LONG(argv[0]); +fixnum: + rb_ary_store(ary, offset, argv[1]); + return argv[1]; +} + +/* + * call-seq: + * array.insert(index, obj...) -> array + * + * Inserts the given values before the element with the given index + * (which may be negative). + * + * a = %w{ a b c d } + * a.insert(2, 99) #=> ["a", "b", 99, "c", "d"] + * a.insert(-2, 1, 2, 3) #=> ["a", "b", 99, "c", 1, 2, 3, "d"] + */ + +static VALUE +rb_ary_insert(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + long pos; + + if (argc < 1) { + rb_raise(rb_eArgError, "wrong number of arguments (at least 1)"); + } + pos = NUM2LONG(argv[0]); + if (pos == -1) { + pos = RARRAY(ary)->len; + } + else if (pos < 0) { + pos++; + } + + if (argc == 1) return ary; + rb_ary_splice(ary, pos, 0, rb_ary_new4(argc - 1, argv + 1)); + return ary; +} + +/* + * call-seq: + * array.each {|item| block } -> array + * + * Calls block once for each element in self, passing that + * element as a parameter. + * + * a = [ "a", "b", "c" ] + * a.each {|x| print x, " -- " } + * + * produces: + * + * a -- b -- c -- + */ + +VALUE +rb_ary_each(ary) + VALUE ary; +{ + long i; + + for (i=0; ilen; i++) { + rb_yield(RARRAY(ary)->ptr[i]); + } + return ary; +} + +/* + * call-seq: + * array.each_index {|index| block } -> array + * + * Same as Array#each, but passes the index of the element + * instead of the element itself. + * + * a = [ "a", "b", "c" ] + * a.each_index {|x| print x, " -- " } + * + * produces: + * + * 0 -- 1 -- 2 -- + */ + +static VALUE +rb_ary_each_index(ary) + VALUE ary; +{ + long i; + + for (i=0; ilen; i++) { + rb_yield(LONG2NUM(i)); + } + return ary; +} + +/* + * call-seq: + * array.reverse_each {|item| block } + * + * Same as Array#each, but traverses self in reverse + * order. + * + * a = [ "a", "b", "c" ] + * a.reverse_each {|x| print x, " " } + * + * produces: + * + * c b a + */ + +static VALUE +rb_ary_reverse_each(ary) + VALUE ary; +{ + long len = RARRAY(ary)->len; + + while (len--) { + rb_yield(RARRAY(ary)->ptr[len]); + if (RARRAY(ary)->len < len) { + len = RARRAY(ary)->len; + } + } + return ary; +} + +/* + * call-seq: + * array.length -> int + * + * Returns the number of elements in self. May be zero. + * + * [ 1, 2, 3, 4, 5 ].length #=> 5 + */ + +static VALUE +rb_ary_length(ary) + VALUE ary; +{ + return LONG2NUM(RARRAY(ary)->len); +} + +/* + * call-seq: + * array.empty? -> true or false + * + * Returns true if self array contains no elements. + * + * [].empty? #=> true + */ + +static VALUE +rb_ary_empty_p(ary) + VALUE ary; +{ + if (RARRAY(ary)->len == 0) + return Qtrue; + return Qfalse; +} + +VALUE +rb_ary_dup(ary) + VALUE ary; +{ + VALUE dup = rb_ary_new2(RARRAY(ary)->len); + + DUPSETUP(dup, ary); + MEMCPY(RARRAY(dup)->ptr, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len); + RARRAY(dup)->len = RARRAY(ary)->len; + return dup; +} + +extern VALUE rb_output_fs; + +static VALUE +recursive_join(ary, arg, recur) + VALUE ary; + VALUE *arg; + int recur; +{ + if (recur) { + return rb_str_new2("[...]"); + } + return rb_ary_join(arg[0], arg[1]); +} + +VALUE +rb_ary_join(ary, sep) + VALUE ary, sep; +{ + long len = 1, i; + int taint = Qfalse; + VALUE result, tmp; + + if (RARRAY(ary)->len == 0) return rb_str_new(0, 0); + if (OBJ_TAINTED(ary) || OBJ_TAINTED(sep)) taint = Qtrue; + + for (i=0; ilen; i++) { + tmp = rb_check_string_type(RARRAY(ary)->ptr[i]); + len += NIL_P(tmp) ? 10 : RSTRING(tmp)->len; + } + if (!NIL_P(sep)) { + StringValue(sep); + len += RSTRING(sep)->len * (RARRAY(ary)->len - 1); + } + result = rb_str_buf_new(len); + for (i=0; ilen; i++) { + tmp = RARRAY(ary)->ptr[i]; + switch (TYPE(tmp)) { + case T_STRING: + break; + case T_ARRAY: + { + VALUE args[2]; + + args[0] = tmp; + args[1] = sep; + tmp = rb_exec_recursive(recursive_join, ary, (VALUE)args); + } + break; + default: + tmp = rb_obj_as_string(tmp); + } + if (i > 0 && !NIL_P(sep)) + rb_str_buf_append(result, sep); + rb_str_buf_append(result, tmp); + if (OBJ_TAINTED(tmp)) taint = Qtrue; + } + + if (taint) OBJ_TAINT(result); + return result; +} + +/* + * call-seq: + * array.join(sep=$,) -> str + * + * Returns a string created by converting each element of the array to + * a string, separated by sep. + * + * [ "a", "b", "c" ].join #=> "abc" + * [ "a", "b", "c" ].join("-") #=> "a-b-c" + */ + +static VALUE +rb_ary_join_m(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + VALUE sep; + + rb_scan_args(argc, argv, "01", &sep); + if (NIL_P(sep)) sep = rb_output_fs; + + return rb_ary_join(ary, sep); +} + +/* + * call-seq: + * array.to_s -> string + * + * Returns _self_.join. + * + * [ "a", "e", "i", "o" ].to_s #=> "aeio" + * + */ + +VALUE +rb_ary_to_s(ary) + VALUE ary; +{ + if (RARRAY(ary)->len == 0) return rb_str_new(0, 0); + + return rb_ary_join(ary, rb_output_fs); +} + +static VALUE +inspect_ary(ary, dummy, recur) + VALUE ary; + VALUE dummy; + int recur; +{ + int tainted = OBJ_TAINTED(ary); + long i; + VALUE s, str; + + if (recur) return rb_tainted_str_new2("[...]"); + str = rb_str_buf_new2("["); + for (i=0; ilen; i++) { + s = rb_inspect(RARRAY(ary)->ptr[i]); + if (OBJ_TAINTED(s)) tainted = Qtrue; + if (i > 0) rb_str_buf_cat2(str, ", "); + rb_str_buf_append(str, s); + } + rb_str_buf_cat2(str, "]"); + if (tainted) OBJ_TAINT(str); + return str; +} + +/* + * call-seq: + * array.inspect -> string + * + * Create a printable version of array. + */ + +static VALUE +rb_ary_inspect(ary) + VALUE ary; +{ + if (RARRAY(ary)->len == 0) return rb_str_new2("[]"); + return rb_exec_recursive(inspect_ary, ary, 0); +} + +/* + * call-seq: + * array.to_a -> array + * + * Returns _self_. If called on a subclass of Array, converts + * the receiver to an Array object. + */ + +static VALUE +rb_ary_to_a(ary) + VALUE ary; +{ + if (rb_obj_class(ary) != rb_cArray) { + VALUE dup = rb_ary_new2(RARRAY(ary)->len); + rb_ary_replace(dup, ary); + return dup; + } + return ary; +} + +/* + * call-seq: + * array.to_ary -> array + * + * Returns _self_. + */ + +static VALUE +rb_ary_to_ary_m(ary) + VALUE ary; +{ + return ary; +} + +VALUE +rb_ary_reverse(ary) + VALUE ary; +{ + VALUE *p1, *p2; + VALUE tmp; + + rb_ary_modify(ary); + if (RARRAY(ary)->len > 1) { + p1 = RARRAY(ary)->ptr; + p2 = p1 + RARRAY(ary)->len - 1; /* points last item */ + + while (p1 < p2) { + tmp = *p1; + *p1++ = *p2; + *p2-- = tmp; + } + } + return ary; +} + +/* + * call-seq: + * array.reverse! -> array + * + * Reverses _self_ in place. + * + * a = [ "a", "b", "c" ] + * a.reverse! #=> ["c", "b", "a"] + * a #=> ["c", "b", "a"] + */ + +static VALUE +rb_ary_reverse_bang(ary) + VALUE ary; +{ + return rb_ary_reverse(ary); +} + +/* + * call-seq: + * array.reverse -> an_array + * + * Returns a new array containing self's elements in reverse order. + * + * [ "a", "b", "c" ].reverse #=> ["c", "b", "a"] + * [ 1 ].reverse #=> [1] + */ + +static VALUE +rb_ary_reverse_m(ary) + VALUE ary; +{ + return rb_ary_reverse(rb_ary_dup(ary)); +} + +struct ary_sort_data { + VALUE ary; + VALUE *ptr; + long len; +}; + +static void +ary_sort_check(data) + struct ary_sort_data *data; +{ + if (RARRAY(data->ary)->ptr != data->ptr || RARRAY(data->ary)->len != data->len) { + rb_raise(rb_eRuntimeError, "array modified during sort"); + } +} + +static int +sort_1(a, b, data) + VALUE *a, *b; + struct ary_sort_data *data; +{ + VALUE retval = rb_yield_values(2, *a, *b); + int n; + + n = rb_cmpint(retval, *a, *b); + ary_sort_check(data); + return n; +} + +static int +sort_2(ap, bp, data) + VALUE *ap, *bp; + struct ary_sort_data *data; +{ + VALUE retval; + VALUE a = *ap, b = *bp; + int n; + + if (FIXNUM_P(a) && FIXNUM_P(b)) { + if ((long)a > (long)b) return 1; + if ((long)a < (long)b) return -1; + return 0; + } + if (TYPE(a) == T_STRING && TYPE(b) == T_STRING) { + return rb_str_cmp(a, b); + } + + retval = rb_funcall(a, id_cmp, 1, b); + n = rb_cmpint(retval, a, b); + ary_sort_check(data); + + return n; +} + +static VALUE +sort_internal(ary) + VALUE ary; +{ + struct ary_sort_data data; + + data.ary = ary; + data.ptr = RARRAY(ary)->ptr; data.len = RARRAY(ary)->len; + qsort(RARRAY(ary)->ptr, RARRAY(ary)->len, sizeof(VALUE), + rb_block_given_p()?sort_1:sort_2, &data); + return ary; +} + +static VALUE +sort_unlock(ary) + VALUE ary; +{ + FL_UNSET(ary, ARY_TMPLOCK); + return ary; +} + +/* + * call-seq: + * array.sort! -> array + * array.sort! {| a,b | block } -> array + * + * Sorts _self_. Comparisons for + * the sort will be done using the <=> operator or using + * an optional code block. The block implements a comparison between + * a and b, returning -1, 0, or +1. See also + * Enumerable#sort_by. + * + * a = [ "d", "a", "e", "c", "b" ] + * a.sort #=> ["a", "b", "c", "d", "e"] + * a.sort {|x,y| y <=> x } #=> ["e", "d", "c", "b", "a"] + */ + +VALUE +rb_ary_sort_bang(ary) + VALUE ary; +{ + rb_ary_modify(ary); + if (RARRAY(ary)->len > 1) { + FL_SET(ary, ARY_TMPLOCK); /* prohibit modification during sort */ + rb_ensure(sort_internal, ary, sort_unlock, ary); + } + return ary; +} + +/* + * call-seq: + * array.sort -> an_array + * array.sort {| a,b | block } -> an_array + * + * Returns a new array created by sorting self. Comparisons for + * the sort will be done using the <=> operator or using + * an optional code block. The block implements a comparison between + * a and b, returning -1, 0, or +1. See also + * Enumerable#sort_by. + * + * a = [ "d", "a", "e", "c", "b" ] + * a.sort #=> ["a", "b", "c", "d", "e"] + * a.sort {|x,y| y <=> x } #=> ["e", "d", "c", "b", "a"] + */ + +VALUE +rb_ary_sort(ary) + VALUE ary; +{ + ary = rb_ary_dup(ary); + rb_ary_sort_bang(ary); + return ary; +} + +/* + * call-seq: + * array.collect {|item| block } -> an_array + * array.map {|item| block } -> an_array + * + * Invokes block once for each element of self. Creates a + * new array containing the values returned by the block. + * See also Enumerable#collect. + * + * a = [ "a", "b", "c", "d" ] + * a.collect {|x| x + "!" } #=> ["a!", "b!", "c!", "d!"] + * a #=> ["a", "b", "c", "d"] + */ + +static VALUE +rb_ary_collect(ary) + VALUE ary; +{ + long i; + VALUE collect; + + if (!rb_block_given_p()) { + return rb_ary_new4(RARRAY(ary)->len, RARRAY(ary)->ptr); + } + + collect = rb_ary_new2(RARRAY(ary)->len); + for (i = 0; i < RARRAY(ary)->len; i++) { + rb_ary_push(collect, rb_yield(RARRAY(ary)->ptr[i])); + } + return collect; +} + +/* + * call-seq: + * array.collect! {|item| block } -> array + * array.map! {|item| block } -> array + * + * Invokes the block once for each element of _self_, replacing the + * element with the value returned by _block_. + * See also Enumerable#collect. + * + * a = [ "a", "b", "c", "d" ] + * a.collect! {|x| x + "!" } + * a #=> [ "a!", "b!", "c!", "d!" ] + */ + +static VALUE +rb_ary_collect_bang(ary) + VALUE ary; +{ + long i; + + rb_ary_modify(ary); + for (i = 0; i < RARRAY(ary)->len; i++) { + rb_ary_store(ary, i, rb_yield(RARRAY(ary)->ptr[i])); + } + return ary; +} + +VALUE +rb_get_values_at(obj, olen, argc, argv, func) + VALUE obj; + long olen; + int argc; + VALUE *argv; + VALUE (*func) _((VALUE,long)); +{ + VALUE result = rb_ary_new2(argc); + long beg, len, i, j; + + for (i=0; i an_array + * + * Returns an array containing the elements in + * _self_ corresponding to the given selector(s). The selectors + * may be either integer indices or ranges. + * See also Array#select. + * + * a = %w{ a b c d e f } + * a.values_at(1, 3, 5) + * a.values_at(1, 3, 5, 7) + * a.values_at(-1, -3, -5, -7) + * a.values_at(1..3, 2...5) + */ + +static VALUE +rb_ary_values_at(argc, argv, ary) + int argc; + VALUE *argv; + VALUE ary; +{ + return rb_get_values_at(ary, RARRAY(ary)->len, argc, argv, rb_ary_entry); +} + +/* + * call-seq: + * array.select {|item| block } -> an_array + * + * Invokes the block passing in successive elements from array, + * returning an array containing those elements for which the block + * returns a true value (equivalent to Enumerable#select). + * + * a = %w{ a b c d e f } + * a.select {|v| v =~ /[aeiou]/} #=> ["a", "e"] + */ + +static VALUE +rb_ary_select(ary) + VALUE ary; +{ + VALUE result; + long i; + + result = rb_ary_new2(RARRAY(ary)->len); + for (i = 0; i < RARRAY(ary)->len; i++) { + if (RTEST(rb_yield(RARRAY(ary)->ptr[i]))) { + rb_ary_push(result, rb_ary_elt(ary, i)); + } + } + return result; +} + Added: external/Pygments-0.9/tests/examplefiles/example.cpp ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/example.cpp Tue Oct 23 20:20:22 2007 @@ -0,0 +1,2363 @@ +/*************************************************************************** + ansigenerator.cpp - description + ------------------- + begin : Jul 5 2004 + copyright : (C) 2004 by Andr? Simon + email : andre.simon1 at gmx.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include "ansigenerator.h" + +using namespace std; + +namespace highlight { + + +string AnsiGenerator::getOpenTag(const string&font, + const string&fgCol, const string&bgCol) { + ostringstream s; + s << "\033["< +#include +#include +#include + +#include "codegenerator.h" +#include "charcodes.h" +#include "version.h" + +namespace highlight { + +/** + \brief This class generates ANSI escape sequences. + + It contains information about the resulting document structure (document + header and footer), the colour system, white space handling and text + formatting attributes. + +* @author Andre Simon +*/ + +class AnsiGenerator : public highlight::CodeGenerator + { + public: + + /** Constructor + \param colourTheme Name of Colour theme to use + */ + AnsiGenerator( const string &colourTheme); + AnsiGenerator(); + ~AnsiGenerator(); + + /** prints document header + \param title Title of the document + */ + string getHeader(const string & title); + + /** Prints document footer*/ + string getFooter(); + + /** Prints document body*/ + void printBody(); + + private: + + /** \return escaped character*/ + virtual string maskCharacter(unsigned char ); + + + /** gibt ANSI-"Tags" zurueck (Farbindex+bold+kursiv)*/ + string getOpenTag(const string&font, + const string&fgCol, const string&bgCol=""); + + + + string getMatchingOpenTag(unsigned int styleID); + string getMatchingCloseTag(unsigned int styleID); + }; + +} +#endif +/* + * Copyright (c) 1998,1999,2000,2001,2002 Tal Davidson. All rights reserved. + * + * ASBeautifier.cpp + * by Tal Davidson (davidsont at bigfoot.com) + * This file is a part of "Artistic Style" - an indentater and reformatter + * of C, C, C# and Java source files. + * + * The "Artistic Style" project, including all files needed to compile it, + * is free software; you can redistribute it and/or use it and/or modify it + * under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, + * or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU General Public + * License along with this program. + * + * Patches: + * 18 March 1999 - Brian Rampel - + * Fixed inverse insertion of spaces vs. tabs when in -t mode. + * 08 may 2004 + * applied ASBeautifier.cpp.BITFIELD.patch.bz2 + */ + +#include "compiler_defines.h" +#include "ASBeautifier.h" + +#include +#include +#include +#include +#include + + +#define INIT_CONTAINER(container, value) {if ( (container) != NULL ) delete (container); (container) = (value); } +#define DELETE_CONTAINER(container) {if ( (container) != NULL ) delete (container) ; } + +#ifdef USES_NAMESPACE +using namespace std; +#endif + + + + +#ifdef USES_NAMESPACE +namespace astyle + { +#endif + + bool ASBeautifier::calledInitStatic = false; + + vector ASBeautifier::headers; + vector ASBeautifier::nonParenHeaders; + vector ASBeautifier::preBlockStatements; + vector ASBeautifier::assignmentOperators; + vector ASBeautifier::nonAssignmentOperators; + + /* + * initialize the static vars + */ + void ASBeautifier::initStatic() + { + if (calledInitStatic) + return; + + calledInitStatic = true; + + headers.push_back(&AS_IF); + headers.push_back(&AS_ELSE); + headers.push_back(&AS_FOR); + headers.push_back(&AS_WHILE); + headers.push_back(&AS_DO); + headers.push_back(&AS_TRY); + headers.push_back(&AS_CATCH); + headers.push_back(&AS_FINALLY); + headers.push_back(&AS_SYNCHRONIZED); + headers.push_back(&AS_SWITCH); + headers.push_back(&AS_CASE); + headers.push_back(&AS_DEFAULT); + headers.push_back(&AS_FOREACH); + headers.push_back(&AS_LOCK); + headers.push_back(&AS_UNSAFE); + headers.push_back(&AS_FIXED); + headers.push_back(&AS_GET); + headers.push_back(&AS_SET); + headers.push_back(&AS_ADD); + headers.push_back(&AS_REMOVE); + //headers.push_back(&AS_PUBLIC); + //headers.push_back(&AS_PRIVATE); + //headers.push_back(&AS_PROTECTED); + + //headers.push_back(&AS_OPERATOR); + headers.push_back(&AS_TEMPLATE); + headers.push_back(&AS_CONST); + /**/ + headers.push_back(&AS_STATIC); + headers.push_back(&AS_EXTERN); + + nonParenHeaders.push_back(&AS_ELSE); + nonParenHeaders.push_back(&AS_DO); + nonParenHeaders.push_back(&AS_TRY); + nonParenHeaders.push_back(&AS_FINALLY); + nonParenHeaders.push_back(&AS_STATIC); + nonParenHeaders.push_back(&AS_CONST); + nonParenHeaders.push_back(&AS_EXTERN); + nonParenHeaders.push_back(&AS_CASE); + nonParenHeaders.push_back(&AS_DEFAULT); + nonParenHeaders.push_back(&AS_UNSAFE); + nonParenHeaders.push_back(&AS_GET); + nonParenHeaders.push_back(&AS_SET); + nonParenHeaders.push_back(&AS_ADD); + nonParenHeaders.push_back(&AS_REMOVE); + + + + nonParenHeaders.push_back(&AS_PUBLIC); + nonParenHeaders.push_back(&AS_PRIVATE); + nonParenHeaders.push_back(&AS_PROTECTED); + nonParenHeaders.push_back(&AS_TEMPLATE); + nonParenHeaders.push_back(&AS_CONST); + /// nonParenHeaders.push_back(&AS_ASM); + + preBlockStatements.push_back(&AS_CLASS); + preBlockStatements.push_back(&AS_STRUCT); + preBlockStatements.push_back(&AS_UNION); + preBlockStatements.push_back(&AS_INTERFACE); + preBlockStatements.push_back(&AS_NAMESPACE); + preBlockStatements.push_back(&AS_THROWS); + preBlockStatements.push_back(&AS_EXTERN); + + assignmentOperators.push_back(&AS_ASSIGN); + assignmentOperators.push_back(&AS_PLUS_ASSIGN); + assignmentOperators.push_back(&AS_MINUS_ASSIGN); + assignmentOperators.push_back(&AS_MULT_ASSIGN); + assignmentOperators.push_back(&AS_DIV_ASSIGN); + assignmentOperators.push_back(&AS_MOD_ASSIGN); + assignmentOperators.push_back(&AS_OR_ASSIGN); + assignmentOperators.push_back(&AS_AND_ASSIGN); + assignmentOperators.push_back(&AS_XOR_ASSIGN); + assignmentOperators.push_back(&AS_GR_GR_GR_ASSIGN); + assignmentOperators.push_back(&AS_GR_GR_ASSIGN); + assignmentOperators.push_back(&AS_LS_LS_LS_ASSIGN); + assignmentOperators.push_back(&AS_LS_LS_ASSIGN); + + assignmentOperators.push_back(&AS_RETURN); + + nonAssignmentOperators.push_back(&AS_EQUAL); + nonAssignmentOperators.push_back(&AS_PLUS_PLUS); + nonAssignmentOperators.push_back(&AS_MINUS_MINUS); + nonAssignmentOperators.push_back(&AS_NOT_EQUAL); + nonAssignmentOperators.push_back(&AS_GR_EQUAL); + nonAssignmentOperators.push_back(&AS_GR_GR_GR); + nonAssignmentOperators.push_back(&AS_GR_GR); + nonAssignmentOperators.push_back(&AS_LS_EQUAL); + nonAssignmentOperators.push_back(&AS_LS_LS_LS); + nonAssignmentOperators.push_back(&AS_LS_LS); + nonAssignmentOperators.push_back(&AS_ARROW); + nonAssignmentOperators.push_back(&AS_AND); + nonAssignmentOperators.push_back(&AS_OR); + } + + /** + * ASBeautifier's constructor + */ + ASBeautifier::ASBeautifier() + { + initStatic(); + + waitingBeautifierStack = NULL; + activeBeautifierStack = NULL; + waitingBeautifierStackLengthStack = NULL; + activeBeautifierStackLengthStack = NULL; + + headerStack = NULL; + tempStacks = NULL; + blockParenDepthStack = NULL; + blockStatementStack = NULL; + parenStatementStack = NULL; + bracketBlockStateStack = NULL; + inStatementIndentStack = NULL; + inStatementIndentStackSizeStack = NULL; + parenIndentStack = NULL; + sourceIterator = NULL; + + isMinimalConditinalIndentSet = false; + shouldForceTabIndentation = false; + + setSpaceIndentation(4); + setMaxInStatementIndentLength(40); + setClassIndent(false); + setSwitchIndent(false); + setCaseIndent(false); + setBlockIndent(false); + setBracketIndent(false); + setNamespaceIndent(false); + setLabelIndent(false); + setEmptyLineFill(false); + setCStyle(); + setPreprocessorIndent(false); + } + + ASBeautifier::ASBeautifier(const ASBeautifier &other) + { + waitingBeautifierStack = NULL; + activeBeautifierStack = NULL; + waitingBeautifierStackLengthStack = NULL; + activeBeautifierStackLengthStack = NULL; + + headerStack = new vector; + *headerStack = *other.headerStack; + + tempStacks = new vector< vector* >; + vector< vector* >::iterator iter; + for (iter = other.tempStacks->begin(); + iter != other.tempStacks->end(); + ++iter) + { + vector *newVec = new vector; + *newVec = **iter; + tempStacks->push_back(newVec); + } + blockParenDepthStack = new vector; + *blockParenDepthStack = *other.blockParenDepthStack; + + blockStatementStack = new vector; + *blockStatementStack = *other.blockStatementStack; + + parenStatementStack = new vector; + *parenStatementStack = *other.parenStatementStack; + + bracketBlockStateStack = new vector; + *bracketBlockStateStack = *other.bracketBlockStateStack; + + inStatementIndentStack = new vector; + *inStatementIndentStack = *other.inStatementIndentStack; + + inStatementIndentStackSizeStack = new vector; + *inStatementIndentStackSizeStack = *other.inStatementIndentStackSizeStack; + + parenIndentStack = new vector; + *parenIndentStack = *other.parenIndentStack; + + sourceIterator = other.sourceIterator; + + indentString = other.indentString; + currentHeader = other.currentHeader; + previousLastLineHeader = other.previousLastLineHeader; + immediatelyPreviousAssignmentOp = other.immediatelyPreviousAssignmentOp; + isInQuote = other.isInQuote; + isInComment = other.isInComment; + isInCase = other.isInCase; + isInQuestion = other.isInQuestion; + isInStatement =other. isInStatement; + isInHeader = other.isInHeader; + isCStyle = other.isCStyle; + isInOperator = other.isInOperator; + isInTemplate = other.isInTemplate; + isInConst = other.isInConst; + classIndent = other.classIndent; + isInClassHeader = other.isInClassHeader; + isInClassHeaderTab = other.isInClassHeaderTab; + switchIndent = other.switchIndent; + caseIndent = other.caseIndent; + namespaceIndent = other.namespaceIndent; + bracketIndent = other.bracketIndent; + blockIndent = other.blockIndent; + labelIndent = other.labelIndent; + preprocessorIndent = other.preprocessorIndent; + parenDepth = other.parenDepth; + indentLength = other.indentLength; + blockTabCount = other.blockTabCount; + leadingWhiteSpaces = other.leadingWhiteSpaces; + maxInStatementIndent = other.maxInStatementIndent; + templateDepth = other.templateDepth; + quoteChar = other.quoteChar; + prevNonSpaceCh = other.prevNonSpaceCh; + currentNonSpaceCh = other.currentNonSpaceCh; + currentNonLegalCh = other.currentNonLegalCh; + prevNonLegalCh = other.prevNonLegalCh; + isInConditional = other.isInConditional; + minConditionalIndent = other.minConditionalIndent; + prevFinalLineSpaceTabCount = other.prevFinalLineSpaceTabCount; + prevFinalLineTabCount = other.prevFinalLineTabCount; + emptyLineFill = other.emptyLineFill; + probationHeader = other.probationHeader; + isInDefine = other.isInDefine; + isInDefineDefinition = other.isInDefineDefinition; + backslashEndsPrevLine = other.backslashEndsPrevLine; + defineTabCount = other.defineTabCount; + } + + /** + * ASBeautifier's destructor + */ + ASBeautifier::~ASBeautifier() + { + DELETE_CONTAINER( headerStack ); + DELETE_CONTAINER( tempStacks ); + DELETE_CONTAINER( blockParenDepthStack ); + DELETE_CONTAINER( blockStatementStack ); + DELETE_CONTAINER( parenStatementStack ); + DELETE_CONTAINER( bracketBlockStateStack ); + DELETE_CONTAINER( inStatementIndentStack ); + DELETE_CONTAINER( inStatementIndentStackSizeStack ); + DELETE_CONTAINER( parenIndentStack ); + + // DELETE_CONTAINER( sourceIterator ); + } + + /** + * initialize the ASBeautifier. + * + * init() should be called every time a ABeautifier object is to start + * beautifying a NEW source file. + * init() recieves a pointer to a DYNAMICALLY CREATED ASSourceIterator object + * that will be used to iterate through the source code. This object will be + * deleted during the ASBeautifier's destruction, and thus should not be + * deleted elsewhere. + * + * @param iter a pointer to the DYNAMICALLY CREATED ASSourceIterator object. + */ + void ASBeautifier::init(ASSourceIterator *iter) + + { + sourceIterator = iter; + init(); + } + + /** + * initialize the ASBeautifier. + */ + void ASBeautifier::init() + { + INIT_CONTAINER( waitingBeautifierStack, new vector ); + INIT_CONTAINER( activeBeautifierStack, new vector ); + + INIT_CONTAINER( waitingBeautifierStackLengthStack, new vector ); + INIT_CONTAINER( activeBeautifierStackLengthStack, new vector ); + + INIT_CONTAINER( headerStack, new vector ); + INIT_CONTAINER( tempStacks, new vector< vector* > ); + tempStacks->push_back(new vector); + + INIT_CONTAINER( blockParenDepthStack, new vector ); + INIT_CONTAINER( blockStatementStack, new vector ); + INIT_CONTAINER( parenStatementStack, new vector ); + + INIT_CONTAINER( bracketBlockStateStack, new vector ); + bracketBlockStateStack->push_back(true); + + INIT_CONTAINER( inStatementIndentStack, new vector ); + INIT_CONTAINER( inStatementIndentStackSizeStack, new vector ); + inStatementIndentStackSizeStack->push_back(0); + INIT_CONTAINER( parenIndentStack, new vector ); + + immediatelyPreviousAssignmentOp = NULL; + previousLastLineHeader = NULL; + + isInQuote = false; + isInComment = false; + isInStatement = false; + isInCase = false; + isInQuestion = false; + isInClassHeader = false; + isInClassHeaderTab = false; + isInHeader = false; + isInOperator = false; + isInTemplate = false; + isInConst = false; + isInConditional = false; + templateDepth = 0; + parenDepth=0; + blockTabCount = 0; + leadingWhiteSpaces = 0; + prevNonSpaceCh = '{'; + currentNonSpaceCh = '{'; + prevNonLegalCh = '{'; + currentNonLegalCh = '{'; + prevFinalLineSpaceTabCount = 0; + prevFinalLineTabCount = 0; + probationHeader = NULL; + backslashEndsPrevLine = false; + isInDefine = false; + isInDefineDefinition = false; + defineTabCount = 0; + } + + /** + * set indentation style to ANSI C/C++. + */ + void ASBeautifier::setCStyle() + { + isCStyle = true; + } + + /** + * set indentation style to Java / K&R. + */ + void ASBeautifier::setJavaStyle() + { + isCStyle = false; + } + + /** + * indent using one tab per indentation + */ + void ASBeautifier::setTabIndentation(int length, bool forceTabs) + { + indentString = "\t"; + indentLength = length; + shouldForceTabIndentation = forceTabs; + + if (!isMinimalConditinalIndentSet) + minConditionalIndent = indentLength * 2; + } + + /** + + * indent using a number of spaces per indentation. + * + * @param length number of spaces per indent. + */ + void ASBeautifier::setSpaceIndentation(int length) + { + indentString=string(length, ' '); + indentLength = length; + + if (!isMinimalConditinalIndentSet) + minConditionalIndent = indentLength * 2; + } + + /** + * set the maximum indentation between two lines in a multi-line statement. + * + * @param max maximum indentation length. + */ + void ASBeautifier::setMaxInStatementIndentLength(int max) + { + maxInStatementIndent = max; + } + + /** + * set the minimum indentation between two lines in a multi-line condition. + * + * @param min minimal indentation length. + */ + void ASBeautifier::setMinConditionalIndentLength(int min) + { + minConditionalIndent = min; + isMinimalConditinalIndentSet = true; + } + + /** + * set the state of the bracket indentation option. If true, brackets will + * be indented one additional indent. + * + * @param state state of option. + */ + void ASBeautifier::setBracketIndent(bool state) + { + bracketIndent = state; + } + + /** + * set the state of the block indentation option. If true, entire blocks + * will be indented one additional indent, similar to the GNU indent style. + * + * @param state state of option. + */ + void ASBeautifier::setBlockIndent(bool state) + { + if (state) + setBracketIndent(false); // so that we don't have both bracket and block indent + blockIndent = state; + } + + /** + * set the state of the class indentation option. If true, C++ class + * definitions will be indented one additional indent. + * + * @param state state of option. + */ + void ASBeautifier::setClassIndent(bool state) + { + classIndent = state; + } + + /** + * set the state of the switch indentation option. If true, blocks of 'switch' + * statements will be indented one additional indent. + * + * @param state state of option. + */ + void ASBeautifier::setSwitchIndent(bool state) + { + switchIndent = state; + } + + /** + * set the state of the case indentation option. If true, lines of 'case' + * statements will be indented one additional indent. + * + * @param state state of option. + */ + void ASBeautifier::setCaseIndent(bool state) + { + caseIndent = state; + } + /** + * set the state of the namespace indentation option. + * If true, blocks of 'namespace' statements will be indented one + * additional indent. Otherwise, NO indentation will be added. + * + * @param state state of option. + */ + void ASBeautifier::setNamespaceIndent(bool state) + { + namespaceIndent = state; + } + + /** + * set the state of the label indentation option. + * If true, labels will be indented one indent LESS than the + * current indentation level. + * If false, labels will be flushed to the left with NO + * indent at all. + * + * @param state state of option. + */ + void ASBeautifier::setLabelIndent(bool state) + { + labelIndent = state; + } + + /** + * set the state of the preprocessor indentation option. + * If true, multiline #define statements will be indented. + * + * @param state state of option. + */ + void ASBeautifier::setPreprocessorIndent(bool state) + { + preprocessorIndent = state; + } + + /** + * set the state of the empty line fill option. + * If true, empty lines will be filled with the whitespace. + * of their previous lines. + * If false, these lines will remain empty. + * + * @param state state of option. + */ + void ASBeautifier::setEmptyLineFill(bool state) + { + emptyLineFill = state; + } + + /** + * check if there are any indented lines ready to be read by nextLine() + * + * @return are there any indented lines ready? + */ + bool ASBeautifier::hasMoreLines() const + { + return sourceIterator->hasMoreLines(); + } + + /** + * get the next indented line. + * + * @return indented line. + */ + string ASBeautifier::nextLine() + { + return beautify(sourceIterator->nextLine()); + } + + /** + * beautify a line of source code. + * every line of source code in a source code file should be sent + * one after the other to the beautify method. + * + * @return the indented line. + * @param originalLine the original unindented line. + */ + string ASBeautifier::beautify(const string &originalLine) + { + string line; + bool isInLineComment = false; + bool lineStartsInComment = false; + bool isInClass = false; + bool isInSwitch = false; + bool isImmediatelyAfterConst = false; + bool isSpecialChar = false; + + char ch = ' '; + char prevCh; + string outBuffer; // the newly idented line is bufferd here + int tabCount = 0; + const string *lastLineHeader = NULL; + bool closingBracketReached = false; + int spaceTabCount = 0; + char tempCh; + unsigned int headerStackSize = headerStack->size(); + //bool isLineInStatement = isInStatement; + bool shouldIndentBrackettedLine = true; + int lineOpeningBlocksNum = 0; + int lineClosingBlocksNum = 0; + bool previousLineProbation = (probationHeader != NULL); + unsigned int i; + + currentHeader = NULL; + + lineStartsInComment = isInComment; + + // handle and remove white spaces around the line: + // If not in comment, first find out size of white space before line, + // so that possible comments starting in the line continue in + // relation to the preliminary white-space. + if (!isInComment) + { + leadingWhiteSpaces = 0; + while (leadingWhiteSpacesinit(); + //defineBeautifier->isInDefineDefinition = true; + //defineBeautifier->beautify(""); + activeBeautifierStack->push_back(defineBeautifier); + } + else + { + // the is the cloned beautifier that is in charge of indenting the #define. + isInDefine = true; + } + } + else if (preproc.COMPARE(0, 2, string("if")) == 0) + { + // push a new beautifier into the stack + waitingBeautifierStackLengthStack->push_back(waitingBeautifierStack->size()); + activeBeautifierStackLengthStack->push_back(activeBeautifierStack->size()); + waitingBeautifierStack->push_back(new ASBeautifier(*this)); + } + else if (preproc.COMPARE(0, 4/*2*/, string("else")) == 0) + { + if (!waitingBeautifierStack->empty()) + { + // MOVE current waiting beautifier to active stack. + activeBeautifierStack->push_back(waitingBeautifierStack->back()); + waitingBeautifierStack->pop_back(); + } + } + else if (preproc.COMPARE(0, 4, string("elif")) == 0) + { + if (!waitingBeautifierStack->empty()) + { + // append a COPY current waiting beautifier to active stack, WITHOUT deleting the original. + activeBeautifierStack->push_back( new ASBeautifier( *(waitingBeautifierStack->back()) ) ); + } + } + else if (preproc.COMPARE(0, 5, string("endif")) == 0) + { + unsigned int stackLength; + ASBeautifier *beautifier; + + if (!waitingBeautifierStackLengthStack->empty()) + { + stackLength = waitingBeautifierStackLengthStack->back(); + waitingBeautifierStackLengthStack->pop_back(); + while (waitingBeautifierStack->size() > stackLength) + { + beautifier = waitingBeautifierStack->back(); + waitingBeautifierStack->pop_back(); + delete beautifier; + } + } + + if (!activeBeautifierStackLengthStack->empty()) + { + stackLength = activeBeautifierStackLengthStack->back(); + activeBeautifierStackLengthStack->pop_back(); + while (activeBeautifierStack->size() > stackLength) + { + beautifier = activeBeautifierStack->back(); + activeBeautifierStack->pop_back(); + delete beautifier; + } + } + + + } + } + + // check if the last char is a backslash + if(line.length() > 0) + backslashEndsPrevLine = (line[line.length() - 1] == '\\'); + else + backslashEndsPrevLine = false; + + // check if this line ends a multi-line #define + // if so, use the #define's cloned beautifier for the line's indentation + // and then remove it from the active beautifier stack and delete it. + if (!backslashEndsPrevLine && isInDefineDefinition && !isInDefine) + { + string beautifiedLine; + ASBeautifier *defineBeautifier; + + isInDefineDefinition = false; + defineBeautifier = activeBeautifierStack->back(); + activeBeautifierStack->pop_back(); + + beautifiedLine = defineBeautifier->beautify(line); + delete defineBeautifier; + return beautifiedLine; + } + + // unless this is a multi-line #define, return this precompiler line as is. + if (!isInDefine && !isInDefineDefinition) + return originalLine; + } + + // if there exists any worker beautifier in the activeBeautifierStack, + // then use it instead of me to indent the current line. + if (!isInDefine && activeBeautifierStack != NULL && !activeBeautifierStack->empty()) + { + return activeBeautifierStack->back()->beautify(line); + } + + // calculate preliminary indentation based on data from past lines + if (!inStatementIndentStack->empty()) + spaceTabCount = inStatementIndentStack->back(); + + + for (i=0; i0 && (*headerStack)[i-1] != &AS_OPEN_BRACKET + && (*headerStack)[i] == &AS_OPEN_BRACKET))) + ++tabCount; + + if (isCStyle && !namespaceIndent && i >= 1 + && (*headerStack)[i-1] == &AS_NAMESPACE + && (*headerStack)[i] == &AS_OPEN_BRACKET) + --tabCount; + + if (isCStyle && i >= 1 + && (*headerStack)[i-1] == &AS_CLASS + && (*headerStack)[i] == &AS_OPEN_BRACKET ) + { + if (classIndent) + ++tabCount; + isInClass = true; + } + + // is the switchIndent option is on, indent switch statements an additional indent. + else if (switchIndent && i > 1 && + (*headerStack)[i-1] == &AS_SWITCH && + (*headerStack)[i] == &AS_OPEN_BRACKET + ) + { + ++tabCount; + isInSwitch = true; + } + + } + + if (!lineStartsInComment + && isCStyle + && isInClass + && classIndent + && headerStackSize >= 2 + &&(*headerStack)[headerStackSize-2] == &AS_CLASS + && (*headerStack)[headerStackSize-1] == &AS_OPEN_BRACKET + && line[0] == '}') + --tabCount; + + else if (!lineStartsInComment + && isInSwitch + && switchIndent + && headerStackSize >= 2 + && (*headerStack)[headerStackSize-2] == &AS_SWITCH + && (*headerStack)[headerStackSize-1] == &AS_OPEN_BRACKET + && line[0] == '}') + --tabCount; + + if (isInClassHeader) + { + isInClassHeaderTab = true; + tabCount += 2; + } + + if (isInConditional) + { + --tabCount; + } + + + // parse characters in the current line. + + for (i=0; ipush_back(probationHeader); + + // handle the specific probation header + isInConditional = (probationHeader == &AS_SYNCHRONIZED); + if (probationHeader == &AS_CONST) + isImmediatelyAfterConst = true; + // isInConst = true; + /* TODO: + * There is actually no more need for the global isInConst variable. + * The only reason for checking const is to see if there is a const + * immediately before an open-bracket. + * Since CONST is now put into probation and is checked during itspost-char, + * isImmediatelyAfterConst can be set by its own... + */ + + isInStatement = false; + // if the probation comes from the previous line, then indent by 1 tab count. + if (previousLineProbation && ch == '{') + tabCount++; + previousLineProbation = false; + } + + // dismiss the probation header + probationHeader = NULL; + } + + prevNonSpaceCh = currentNonSpaceCh; + currentNonSpaceCh = ch; + if (!isLegalNameChar(ch) && ch != ',' && ch != ';' ) + { + prevNonLegalCh = currentNonLegalCh; + currentNonLegalCh = ch; + } + + //if (isInConst) + //{ + // isInConst = false; + // isImmediatelyAfterConst = true; + //} + + if (isInHeader) + { + isInHeader = false; + currentHeader = headerStack->back(); + } + else + currentHeader = NULL; + + if (isCStyle && isInTemplate + && (ch == '<' || ch == '>') + && findHeader(line, i, nonAssignmentOperators) == NULL) //; + { + if (ch == '<') + { + ++templateDepth; + } + else if (ch == '>') + { + if (--templateDepth <= 0) + { + if (isInTemplate) + ch = ';'; + else + ch = 't'; + isInTemplate = false; + templateDepth = 0; + } + + } + } + + // handle parenthesies + if (ch == '(' || ch == '[' || ch == ')' || ch == ']') + { + if (ch == '(' || ch == '[') + { + if (parenDepth == 0) + { + parenStatementStack->push_back(isInStatement); + isInStatement = true; + } + parenDepth++; + + inStatementIndentStackSizeStack->push_back(inStatementIndentStack->size()); + + if (currentHeader != NULL) + registerInStatementIndent(line, i, spaceTabCount, minConditionalIndent/*indentLength*2*/, true); + else + registerInStatementIndent(line, i, spaceTabCount, 0, true); + } + else if (ch == ')' || ch == ']') + { + parenDepth--; + if (parenDepth == 0) + { + isInStatement = parenStatementStack->back(); + parenStatementStack->pop_back(); + ch = ' '; + + isInConditional = false; + } + + if (!inStatementIndentStackSizeStack->empty()) + { + unsigned int previousIndentStackSize = inStatementIndentStackSizeStack->back(); + inStatementIndentStackSizeStack->pop_back(); + while (previousIndentStackSize < inStatementIndentStack->size()) + inStatementIndentStack->pop_back(); + + if (!parenIndentStack->empty()) + { + int poppedIndent = parenIndentStack->back(); + parenIndentStack->pop_back(); + + if (i == 0) + spaceTabCount = poppedIndent; + } + } + } + + continue; + } + + + if (ch == '{') + { + bool isBlockOpener = false; + + // first, check if '{' is a block-opener or an static-array opener + isBlockOpener = ( (prevNonSpaceCh == '{' && bracketBlockStateStack->back()) + || prevNonSpaceCh == '}' + || prevNonSpaceCh == ')' + || prevNonSpaceCh == ';' + || isInClassHeader + || isBlockOpener + || isImmediatelyAfterConst + || (isInDefine && + (prevNonSpaceCh == '(' + || prevNonSpaceCh == '_' + || isalnum(prevNonSpaceCh))) ); + + isInClassHeader = false; + if (!isBlockOpener && currentHeader != NULL) + { + for (unsigned int n=0; n < nonParenHeaders.size(); n++) + if (currentHeader == nonParenHeaders[n]) + { + isBlockOpener = true; + break; + } + } + bracketBlockStateStack->push_back(isBlockOpener); + if (!isBlockOpener) + { + inStatementIndentStackSizeStack->push_back(inStatementIndentStack->size()); + registerInStatementIndent(line, i, spaceTabCount, 0, true); + parenDepth++; + if (i == 0) + shouldIndentBrackettedLine = false; + + continue; + } + + // this bracket is a block opener... + + ++lineOpeningBlocksNum; + + if (isInClassHeader) + isInClassHeader = false; + if (isInClassHeaderTab) + { + isInClassHeaderTab = false; + tabCount -= 2; + } + + blockParenDepthStack->push_back(parenDepth); + blockStatementStack->push_back(isInStatement); + + inStatementIndentStackSizeStack->push_back(inStatementIndentStack->size()); + + blockTabCount += isInStatement? 1 : 0; + parenDepth = 0; + isInStatement = false; + + tempStacks->push_back(new vector); + headerStack->push_back(&AS_OPEN_BRACKET); + lastLineHeader = &AS_OPEN_BRACKET; // <------ + + continue; + } + + //check if a header has been reached + if (prevCh == ' ') + { + bool isIndentableHeader = true; + const string *newHeader = findHeader(line, i, headers); + if (newHeader != NULL) + { + // if we reached here, then this is a header... + isInHeader = true; + + vector *lastTempStack; + if (tempStacks->empty()) + lastTempStack = NULL; + else + lastTempStack = tempStacks->back(); + + // if a new block is opened, push a new stack into tempStacks to hold the + // future list of headers in the new block. + + // take care of the special case: 'else if (...)' + if (newHeader == &AS_IF && lastLineHeader == &AS_ELSE) + { + //spaceTabCount += indentLength; // to counter the opposite addition that occurs when the 'if' is registered below... + headerStack->pop_back(); + } + + // take care of 'else' + else if (newHeader == &AS_ELSE) + { + if (lastTempStack != NULL) + { + int indexOfIf = indexOf(*lastTempStack, &AS_IF); // <--- + if (indexOfIf != -1) + { + // recreate the header list in headerStack up to the previous 'if' + // from the temporary snapshot stored in lastTempStack. + int restackSize = lastTempStack->size() - indexOfIf - 1; + for (int r=0; rpush_back(lastTempStack->back()); + lastTempStack->pop_back(); + } + if (!closingBracketReached) + tabCount += restackSize; + } + /* + * If the above if is not true, i.e. no 'if' before the 'else', + * then nothing beautiful will come out of this... + * I should think about inserting an Exception here to notify the caller of this... + */ + } + } + + // check if 'while' closes a previous 'do' + else if (newHeader == &AS_WHILE) + { + if (lastTempStack != NULL) + { + int indexOfDo = indexOf(*lastTempStack, &AS_DO); // <--- + if (indexOfDo != -1) + { + // recreate the header list in headerStack up to the previous 'do' + // from the temporary snapshot stored in lastTempStack. + int restackSize = lastTempStack->size() - indexOfDo - 1; + for (int r=0; rpush_back(lastTempStack->back()); + lastTempStack->pop_back(); + } + if (!closingBracketReached) + tabCount += restackSize; + } + } + } + // check if 'catch' closes a previous 'try' or 'catch' + else if (newHeader == &AS_CATCH || newHeader == &AS_FINALLY) + { + if (lastTempStack != NULL) + { + int indexOfTry = indexOf(*lastTempStack, &AS_TRY); + if (indexOfTry == -1) + indexOfTry = indexOf(*lastTempStack, &AS_CATCH); + if (indexOfTry != -1) + { + // recreate the header list in headerStack up to the previous 'try' + // from the temporary snapshot stored in lastTempStack. + int restackSize = lastTempStack->size() - indexOfTry - 1; + for (int r=0; rpush_back(lastTempStack->back()); + lastTempStack->pop_back(); + } + + if (!closingBracketReached) + tabCount += restackSize; + } + } + } + else if (newHeader == &AS_CASE) + { + isInCase = true; + if (!caseIndent) + --tabCount; + } + else if(newHeader == &AS_DEFAULT) + { + isInCase = true; + if (!caseIndent) + --tabCount; + } + else if (newHeader == &AS_PUBLIC || newHeader == &AS_PROTECTED || newHeader == &AS_PRIVATE) + { + if (isCStyle && !isInClassHeader) + --tabCount; + isIndentableHeader = false; + } + //else if ((newHeader == &STATIC || newHeader == &SYNCHRONIZED) && + // !headerStack->empty() && + // (headerStack->back() == &STATIC || headerStack->back() == &SYNCHRONIZED)) + //{ + // isIndentableHeader = false; + //} + else if (newHeader == &AS_STATIC + || newHeader == &AS_SYNCHRONIZED + || (newHeader == &AS_CONST && isCStyle)) + { + if (!headerStack->empty() && + (headerStack->back() == &AS_STATIC + || headerStack->back() == &AS_SYNCHRONIZED + || headerStack->back() == &AS_CONST)) + { + isIndentableHeader = false; + } + else + { + isIndentableHeader = false; + probationHeader = newHeader; + } + } + else if (newHeader == &AS_CONST) + { + // this will be entered only if NOT in C style + // since otherwise the CONST would be found to be a probstion header... + + //if (isCStyle) + // isInConst = true; + isIndentableHeader = false; + } + /* + else if (newHeader == &OPERATOR) + { + if (isCStyle) + isInOperator = true; + isIndentableHeader = false; + } + */ + else if (newHeader == &AS_TEMPLATE) + { + if (isCStyle) + isInTemplate = true; + isIndentableHeader = false; + } + + + if (isIndentableHeader) + { + // 3.2.99 + //spaceTabCount-=indentLength; + headerStack->push_back(newHeader); + isInStatement = false; + if (indexOf(nonParenHeaders, newHeader) == -1) + { + isInConditional = true; + } + lastLineHeader = newHeader; + } + else + isInHeader = false; + + //lastLineHeader = newHeader; + + outBuffer.append(newHeader->substr(1)); + i += newHeader->length() - 1; + + continue; + } + } + + if (isCStyle && !isalpha(prevCh) + && line.COMPARE(i, 8, AS_OPERATOR) == 0 && !isalnum(line[i+8])) + { + isInOperator = true; + outBuffer.append(AS_OPERATOR.substr(1)); + i += 7; + continue; + } + + if (ch == '?') + isInQuestion = true; + + + // special handling of 'case' statements + if (ch == ':') + { + if (line.length() > i+1 && line[i+1] == ':') // look for :: + { + ++i; + outBuffer.append(1, ':'); + ch = ' '; + continue; + } + + else if (isCStyle && isInClass && prevNonSpaceCh != ')') + { + // BEGIN Content of ASBeautifier.cpp.BITFIELD.patch: + + unsigned int chIndex; + char nextCh = 0; + for (chIndex = i+1; chIndex < line.length(); chIndex++) + if (!isWhiteSpace(line[chIndex])) + break; + if (chIndex< line.length()) + nextCh = line[chIndex]; + int nWord =0; + for (chIndex = 0; chIndex < i; chIndex++) + { + if (!isWhiteSpace(line[chIndex])) + { + nWord ++; + while (!isWhiteSpace(line[++chIndex])); + } + } + if ((nextCh >= '0' && nextCh <= '9') || (nWord >1)) + continue; + // END Content of ASBeautifier.cpp.BITFIELD.patch: + + --tabCount; + // found a 'private:' or 'public:' inside a class definition + // so do nothing special + } + + else if (isCStyle && isInClassHeader) + { + + // found a 'class A : public B' definition + // so do nothing special + } + + else if (isInQuestion) + { + isInQuestion = false; + } + else if (isCStyle && prevNonSpaceCh == ')') + { + isInClassHeader = true; + if (i==0) + tabCount += 2; + } + else + { + currentNonSpaceCh = ';'; // so that brackets after the ':' will appear as block-openers + if (isInCase) + { + isInCase = false; + ch = ';'; // from here on, treat char as ';' + } + // BEGIN content of ASBeautifier.cpp.BITFIELD.patch.bz2 + else // bitfield or labels + { + unsigned int chIndex; + char nextCh = 0; + for (chIndex = i+1; (isCStyle && chIndex < line.length()); chIndex++) + if (!isWhiteSpace(line[chIndex])) + break; + if (chIndex< line.length()) + nextCh = line[chIndex]; + + int nWord =0; + for (chIndex = 0; chIndex < i; chIndex++) + { + if (!isWhiteSpace(line[chIndex])) + { + nWord ++; + while (!isWhiteSpace(line[++chIndex])); + } + } + if (isCStyle && (nextCh >= '0' && nextCh <= '9') || (nWord >1)) + { + continue; + } + // END content of ASASBeautifier.cpp.BITFIELD.patch.bz2 + + else // is in a label (e.g. 'label1:') + { + if (labelIndent) + --tabCount; // unindent label by one indent + else + tabCount = 0; // completely flush indent to left + } + + // BEGIN content of ASASBeautifier.cpp.BITFIELD.patch.bz2 + } + // END content of ASASBeautifier.cpp.BITFIELD.patch.bz2 + + } + } + + if ((ch == ';' || (parenDepth>0 && ch == ',')) && !inStatementIndentStackSizeStack->empty()) + while ((unsigned int)inStatementIndentStackSizeStack->back() + (parenDepth>0 ? 1 : 0) < inStatementIndentStack->size()) + inStatementIndentStack->pop_back(); + + + // handle ends of statements + if ( (ch == ';' && parenDepth == 0) || ch == '}'/* || (ch == ',' && parenDepth == 0)*/) + { + if (ch == '}') + { + // first check if this '}' closes a previous block, or a static array... + if (!bracketBlockStateStack->empty()) + { + bool bracketBlockState = bracketBlockStateStack->back(); + bracketBlockStateStack->pop_back(); + if (!bracketBlockState) + { + if (!inStatementIndentStackSizeStack->empty()) + { + // this bracket is a static array + + unsigned int previousIndentStackSize = inStatementIndentStackSizeStack->back(); + inStatementIndentStackSizeStack->pop_back(); + while (previousIndentStackSize < inStatementIndentStack->size()) + inStatementIndentStack->pop_back(); + parenDepth--; + if (i == 0) + shouldIndentBrackettedLine = false; + + if (!parenIndentStack->empty()) + { + int poppedIndent = parenIndentStack->back(); + parenIndentStack->pop_back(); + if (i == 0) + spaceTabCount = poppedIndent; + } + } + continue; + } + } + + // this bracket is block closer... + + ++lineClosingBlocksNum; + + if(!inStatementIndentStackSizeStack->empty()) + inStatementIndentStackSizeStack->pop_back(); + + if (!blockParenDepthStack->empty()) + { + parenDepth = blockParenDepthStack->back(); + blockParenDepthStack->pop_back(); + isInStatement = blockStatementStack->back(); + blockStatementStack->pop_back(); + + if (isInStatement) + blockTabCount--; + } + + closingBracketReached = true; + int headerPlace = indexOf(*headerStack, &AS_OPEN_BRACKET); // <--- + if (headerPlace != -1) + { + const string *popped = headerStack->back(); + while (popped != &AS_OPEN_BRACKET) + { + headerStack->pop_back(); + popped = headerStack->back(); + } + headerStack->pop_back(); + + if (!tempStacks->empty()) + { + vector *temp = tempStacks->back(); + tempStacks->pop_back(); + delete temp; + } + } + + + ch = ' '; // needed due to cases such as '}else{', so that headers ('else' tn tih case) will be identified... + } + + /* + * Create a temporary snapshot of the current block's header-list in the + * uppermost inner stack in tempStacks, and clear the headerStack up to + * the begining of the block. + * Thus, the next future statement will think it comes one indent past + * the block's '{' unless it specifically checks for a companion-header + * (such as a previous 'if' for an 'else' header) within the tempStacks, + * and recreates the temporary snapshot by manipulating the tempStacks. + */ + if (!tempStacks->back()->empty()) + while (!tempStacks->back()->empty()) + tempStacks->back()->pop_back(); + while (!headerStack->empty() && headerStack->back() != &AS_OPEN_BRACKET) + { + tempStacks->back()->push_back(headerStack->back()); + headerStack->pop_back(); + } + + if (parenDepth == 0 && ch == ';') + isInStatement=false; + + isInClassHeader = false; + + continue; + } + + + // check for preBlockStatements ONLY if not within parenthesies + // (otherwise 'struct XXX' statements would be wrongly interpreted...) + if (prevCh == ' ' && !isInTemplate && parenDepth == 0) + { + const string *newHeader = findHeader(line, i, preBlockStatements); + if (newHeader != NULL) + { + isInClassHeader = true; + outBuffer.append(newHeader->substr(1)); + i += newHeader->length() - 1; + //if (isCStyle) + headerStack->push_back(newHeader); + } + } + + // Handle operators + // + + //// // PRECHECK if a '==' or '--' or '++' operator was reached. + //// // If not, then register an indent IF an assignment operator was reached. + //// // The precheck is important, so that statements such as 'i--==2' are not recognized + //// // to have assignment operators (here, '-=') in them . . . + + const string *foundAssignmentOp = NULL; + const string *foundNonAssignmentOp = NULL; + + immediatelyPreviousAssignmentOp = NULL; + + // Check if an operator has been reached. + foundAssignmentOp = findHeader(line, i, assignmentOperators, false); + foundNonAssignmentOp = findHeader(line, i, nonAssignmentOperators, false); + + // Since findHeader's boundry checking was not used above, it is possible + // that both an assignment op and a non-assignment op where found, + // e.g. '>>' and '>>='. If this is the case, treat the LONGER one as the + // found operator. + if (foundAssignmentOp != NULL && foundNonAssignmentOp != NULL) + if (foundAssignmentOp->length() < foundNonAssignmentOp->length()) + foundAssignmentOp = NULL; + else + foundNonAssignmentOp = NULL; + + if (foundNonAssignmentOp != NULL) + { + if (foundNonAssignmentOp->length() > 1) + { + outBuffer.append(foundNonAssignmentOp->substr(1)); + i += foundNonAssignmentOp->length() - 1; + } + } + + else if (foundAssignmentOp != NULL) + + { + if (foundAssignmentOp->length() > 1) + { + outBuffer.append(foundAssignmentOp->substr(1)); + i += foundAssignmentOp->length() - 1; + } + + if (!isInOperator && !isInTemplate) + { + registerInStatementIndent(line, i, spaceTabCount, 0, false); + immediatelyPreviousAssignmentOp = foundAssignmentOp; + isInStatement = true; + } + } + + /* + immediatelyPreviousAssignmentOp = NULL; + bool isNonAssingmentOperator = false; + for (int n = 0; n < nonAssignmentOperators.size(); n++) + if (line.COMPARE(i, nonAssignmentOperators[n]->length(), *(nonAssignmentOperators[n])) == 0) + { + if (nonAssignmentOperators[n]->length() > 1) + { + outBuffer.append(nonAssignmentOperators[n]->substr(1)); + i += nonAssignmentOperators[n]->length() - 1; + } + isNonAssingmentOperator = true; + break; + } + if (!isNonAssingmentOperator) + { + for (int a = 0; a < assignmentOperators.size(); a++) + if (line.COMPARE(i, assignmentOperators[a]->length(), *(assignmentOperators[a])) == 0) + { + if (assignmentOperators[a]->length() > 1) + { + outBuffer.append(assignmentOperators[a]->substr(1)); + i += assignmentOperators[a]->length() - 1; + } + + if (!isInOperator && !isInTemplate) + { + registerInStatementIndent(line, i, spaceTabCount, 0, false); + immediatelyPreviousAssignmentOp = assignmentOperators[a]; + isInStatement = true; + } + break; + } + } + */ + + if (isInOperator) + isInOperator = false; + } + + // handle special cases of unindentation: + + /* + * if '{' doesn't follow an immediately previous '{' in the headerStack + * (but rather another header such as "for" or "if", then unindent it + * by one indentation relative to its block. + */ + // cerr << endl << lineOpeningBlocksNum << " " << lineClosingBlocksNum << " " << previousLastLineHeader << endl; + + // indent #define lines with one less tab + //if (isInDefine) + // tabCount -= defineTabCount-1; + + + if (!lineStartsInComment + && !blockIndent + && outBuffer.length()>0 + && outBuffer[0]=='{' + && !(lineOpeningBlocksNum > 0 && lineOpeningBlocksNum == lineClosingBlocksNum) + && !(headerStack->size() > 1 && (*headerStack)[headerStack->size()-2] == &AS_OPEN_BRACKET) + && shouldIndentBrackettedLine) + --tabCount; + + else if (!lineStartsInComment + && outBuffer.length()>0 + && outBuffer[0]=='}' + && shouldIndentBrackettedLine ) + --tabCount; + + // correctly indent one-line-blocks... + else if (!lineStartsInComment + && outBuffer.length()>0 + && lineOpeningBlocksNum > 0 + && lineOpeningBlocksNum == lineClosingBlocksNum + && previousLastLineHeader != NULL + && previousLastLineHeader != &AS_OPEN_BRACKET) + tabCount -= 1; //lineOpeningBlocksNum - (blockIndent ? 1 : 0); + + if (tabCount < 0) + tabCount = 0; + + // take care of extra bracket indentatation option... + if (bracketIndent && outBuffer.length()>0 && shouldIndentBrackettedLine) + if (outBuffer[0]=='{' || outBuffer[0]=='}') + tabCount++; + + + if (isInDefine) + { + if (outBuffer[0] == '#') + { + string preproc = trim(string(outBuffer.c_str() + 1)); + if (preproc.COMPARE(0, 6, string("define")) == 0) + { + if (!inStatementIndentStack->empty() + && inStatementIndentStack->back() > 0) + { + defineTabCount = tabCount; + } + else + { + defineTabCount = tabCount - 1; + tabCount--; + } + } + } + + tabCount -= defineTabCount; + } + + if (tabCount < 0) + tabCount = 0; + + + // finally, insert indentations into begining of line + + prevFinalLineSpaceTabCount = spaceTabCount; + prevFinalLineTabCount = tabCount; + + if (shouldForceTabIndentation) + { + tabCount += spaceTabCount / indentLength; + spaceTabCount = spaceTabCount % indentLength; + } + + outBuffer = preLineWS(spaceTabCount,tabCount) + outBuffer; + + if (lastLineHeader != NULL) + previousLastLineHeader = lastLineHeader; + + return outBuffer; + } + + + string ASBeautifier::preLineWS(int spaceTabCount, int tabCount) + { + string ws; + + for (int i=0; i 0) + ws += string(" "); + + return ws; + + } + + /** + * register an in-statement indent. + */ + void ASBeautifier::registerInStatementIndent(const string &line, int i, int spaceTabCount, + int minIndent, bool updateParenStack) + { + int inStatementIndent; + int remainingCharNum = line.length() - i; + int nextNonWSChar = 1; + + nextNonWSChar = getNextProgramCharDistance(line, i); + + // if indent is around the last char in the line, indent instead 2 spaces from the previous indent + if (nextNonWSChar == remainingCharNum) + { + int previousIndent = spaceTabCount; + if (!inStatementIndentStack->empty()) + previousIndent = inStatementIndentStack->back(); + + inStatementIndentStack->push_back(/*2*/ indentLength + previousIndent ); + if (updateParenStack) + parenIndentStack->push_back( previousIndent ); + return; + } + + if (updateParenStack) + parenIndentStack->push_back(i+spaceTabCount); + + inStatementIndent = i + nextNonWSChar + spaceTabCount; + + if (i + nextNonWSChar < minIndent) + inStatementIndent = minIndent + spaceTabCount; + + if (i + nextNonWSChar > maxInStatementIndent) + inStatementIndent = indentLength*2 + spaceTabCount; + + + + if (!inStatementIndentStack->empty() && + inStatementIndent < inStatementIndentStack->back()) + inStatementIndent = inStatementIndentStack->back(); + + inStatementIndentStack->push_back(inStatementIndent); + } + + /** + * get distance to the next non-white sspace, non-comment character in the line. + * if no such character exists, return the length remaining to the end of the line. + */ + int ASBeautifier::getNextProgramCharDistance(const string &line, int i) + { + bool inComment = false; + int remainingCharNum = line.length() - i; + int charDistance = 1; + int ch; + + for (charDistance = 1; charDistance < remainingCharNum; charDistance++) + { + ch = line[i + charDistance]; + if (inComment) + { + if (line.COMPARE(i + charDistance, 2, AS_CLOSE_COMMENT) == 0) + { + charDistance++; + inComment = false; + } + continue; + } + else if (isWhiteSpace(ch)) + continue; + else if (ch == '/') + { + if (line.COMPARE(i + charDistance, 2, AS_OPEN_LINE_COMMENT) == 0) + return remainingCharNum; + else if (line.COMPARE(i + charDistance, 2, AS_OPEN_COMMENT) == 0) + { + charDistance++; + inComment = true; + } + } + else + return charDistance; + } + + return charDistance; + } + + + /** + * check if a specific character can be used in a legal variable/method/class name + * + * @return legality of the char. + * @param ch the character to be checked. + */ + bool ASBeautifier::isLegalNameChar(char ch) const + { + return (isalnum(ch) //(ch>='a' && ch<='z') || (ch>='A' && ch<='Z') || (ch>='0' && ch<='9') || + || ch=='.' || ch=='_' || (!isCStyle && ch=='$') || (isCStyle && ch=='~')); + } + + + /** + * check if a specific line position contains a header, out of several possible headers. + * + * @return a pointer to the found header. if no header was found then return NULL. + */ + const string *ASBeautifier::findHeader(const string &line, int i, const vector &possibleHeaders, bool checkBoundry) + { + int maxHeaders = possibleHeaders.size(); + const string *header = NULL; + int p; + + for (p=0; p < maxHeaders; p++) + { + header = possibleHeaders[p]; + + if (line.COMPARE(i, header->length(), *header) == 0) + { + // check that this is a header and not a part of a longer word + // (e.g. not at its begining, not at its middle...) + + int lineLength = line.length(); + int headerEnd = i + header->length(); + char startCh = (*header)[0]; // first char of header + char endCh = 0; // char just after header + char prevCh = 0; // char just before header + + if (headerEnd < lineLength) + { + endCh = line[headerEnd]; + } + if (i > 0) + { + prevCh = line[i-1]; + } + + if (!checkBoundry) + { + return header; + } + else if (prevCh != 0 + && isLegalNameChar(startCh) + && isLegalNameChar(prevCh)) + { + return NULL; + } + else if (headerEnd >= lineLength + || !isLegalNameChar(startCh) + || !isLegalNameChar(endCh)) + { + return header; + } + else + { + return NULL; + } + } + } + + return NULL; + } + + + /** + * check if a specific character can be used in a legal variable/method/class name + * + * @return legality of the char. + * @param ch the character to be checked. + */ + bool ASBeautifier::isWhiteSpace(char ch) const + { + return (ch == ' ' || ch == '\t'); + } + + /** + * find the index number of a string element in a container of strings + * + * @return the index number of element in the ocntainer. -1 if element not found. + * @param container a vector of strings. + * @param element the element to find . + */ + int ASBeautifier::indexOf(vector &container, const string *element) + { + vector::const_iterator where; + + where= find(container.begin(), container.end(), element); + if (where == container.end()) + return -1; + else + return where - container.begin(); + } + + /** + * trim removes the white space surrounding a line. + * + * @return the trimmed line. + * @param str the line to trim. + */ + string ASBeautifier::trim(const string &str) + { + + int start = 0; + int end = str.length() - 1; + + while (start < end && isWhiteSpace(str[start])) + start++; + + while (start <= end && isWhiteSpace(str[end])) + end--; + + string returnStr(str, start, end+1-start); + return returnStr; + } + +#ifdef USES_NAMESPACE +} +#endif +/* + * Copyright (c) 1998,1999,2000,2001,2002 Tal Davidson. All rights reserved. + * + * compiler_defines.h (1 January 1999) + * by Tal Davidson (davidsont at bigfoot.com) + * This file is a part of "Artistic Style" - an indentater and reformatter + * of C, C++, C# and Java source files. + * + * The "Artistic Style" project, including all files needed to compile it, + * is free software; you can redistribute it and/or use it and/or modify it + * under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, + * or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU General Public + * License along with this program. + */ + + +#ifndef ASBEAUTIFIER_H +#define ASBEAUTIFIER_H + +#include "ASResource.h" +#include "compiler_defines.h" +#include "ASSourceIterator.h" + +#include +#include + + +using namespace std; + +namespace astyle + { + + enum BracketMode { NONE_MODE, ATTACH_MODE, BREAK_MODE, BDAC_MODE }; + enum BracketType { NULL_TYPE = 0, + DEFINITION_TYPE = 1, + COMMAND_TYPE = 2, + ARRAY_TYPE = 4, + SINGLE_LINE_TYPE = 8}; + + + class ASBeautifier : protected ASResource + { + public: + ASBeautifier(); + virtual ~ASBeautifier(); + virtual void init(ASSourceIterator* iter); // pointer to dynamically created iterator. + virtual void init(); + virtual bool hasMoreLines() const; + virtual string nextLine(); + virtual string beautify(const string &line); + void setTabIndentation(int length = 4, bool forceTabs = false); + void setSpaceIndentation(int length = 4); + void setMaxInStatementIndentLength(int max); + void setMinConditionalIndentLength(int min); + void setClassIndent(bool state); + void setSwitchIndent(bool state); + void setCaseIndent(bool state); + void setBracketIndent(bool state); + void setBlockIndent(bool state); + void setNamespaceIndent(bool state); + void setLabelIndent(bool state); + void setCStyle(); + void setJavaStyle(); + void setEmptyLineFill(bool state); + void setPreprocessorIndent(bool state); + + + protected: + int getNextProgramCharDistance(const string &line, int i); + bool isLegalNameChar(char ch) const; + bool isWhiteSpace(char ch) const; + const string *findHeader(const string &line, int i, + const vector &possibleHeaders, + bool checkBoundry = true); + string trim(const string &str); + int indexOf(vector &container, const string *element); + + private: + ASBeautifier(const ASBeautifier ©); + void operator=(ASBeautifier&); // not to be implemented + + void initStatic(); + void registerInStatementIndent(const string &line, int i, int spaceTabCount, + int minIndent, bool updateParenStack); + string preLineWS(int spaceTabCount, int tabCount); + + static vector headers; + static vector nonParenHeaders; + static vector preprocessorHeaders; + static vector preBlockStatements; + static vector assignmentOperators; + static vector nonAssignmentOperators; + + static bool calledInitStatic; + + ASSourceIterator *sourceIterator; + vector *waitingBeautifierStack; + vector *activeBeautifierStack; + vector *waitingBeautifierStackLengthStack; + vector *activeBeautifierStackLengthStack; + vector *headerStack; + vector< vector* > *tempStacks; + vector *blockParenDepthStack; + vector *blockStatementStack; + vector *parenStatementStack; + vector *inStatementIndentStack; + vector *inStatementIndentStackSizeStack; + vector *parenIndentStack; + vector *bracketBlockStateStack; + string indentString; + const string *currentHeader; + const string *previousLastLineHeader; + const string *immediatelyPreviousAssignmentOp; + const string *probationHeader; + bool isInQuote; + bool isInComment; + bool isInCase; + bool isInQuestion; + bool isInStatement; + bool isInHeader; + bool isCStyle; + bool isInOperator; + bool isInTemplate; + bool isInConst; + bool isInDefine; + bool isInDefineDefinition; + bool classIndent; + bool isInClassHeader; + bool isInClassHeaderTab; + bool switchIndent; + bool caseIndent; + bool namespaceIndent; + bool bracketIndent; + bool blockIndent; + bool labelIndent; + bool preprocessorIndent; + bool isInConditional; + bool isMinimalConditinalIndentSet; + bool shouldForceTabIndentation; + int minConditionalIndent; + int parenDepth; + int indentLength; + int blockTabCount; + unsigned int leadingWhiteSpaces; + int maxInStatementIndent; + int templateDepth; + char quoteChar; + char prevNonSpaceCh; + char currentNonSpaceCh; + char currentNonLegalCh; + char prevNonLegalCh; + int prevFinalLineSpaceTabCount; + int prevFinalLineTabCount; + bool emptyLineFill; + bool backslashEndsPrevLine; + int defineTabCount; + }; +} + +#endif +/* + * Copyright (c) 1998,1999,2000,2001,2002 Tal Davidson. All rights reserved. + * + * ASFormatter.cpp + * by Tal Davidson (davidsont at bigfoot.com) + * This file is a part of "Artistic Style" - an indentater and reformatter + * of C, C++, C# and Java source files. + * + * The "Artistic Style" project, including all files needed to compile it, + * is free software; you can redistribute it and/or use it and/or modify it + * under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, + * or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU General Public + * License along with this program. + * + * + * Patches: + * 26 November 1998 - Richard Bullington - + * A correction of line-breaking in headers following '}', + + * was created using a variation of a patch by Richard Bullington. + * 08 May 2004 + * applied ASFormatter450670.patch.bz2, ASFormatter.cpp.patch.bz2, + * patch1_ssvb_patch.tar.gz + */ + +#include "compiler_defines.h" +#include "ASFormatter.h" + + +#include +#include +#include +#include +#include + + +#define INIT_CONTAINER(container, value) {if ( (container) != NULL ) delete (container); (container) = (value); } +#define DELETE_CONTAINER(container) {if ( (container) != NULL ) delete (container) ; } +#define IS_A(a,b) ( ((a) & (b)) == (b)) +#ifdef USES_NAMESPACE +using namespace std; + Added: external/Pygments-0.9/tests/examplefiles/example.lua ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/example.lua Tue Oct 23 20:20:22 2007 @@ -0,0 +1,250 @@ +--[[ + Auctioneer Advanced + Version: <%version%> (<%codename%>) + Revision: $Id: CoreMain.lua 2233 2007-09-25 03:57:33Z norganna $ + URL: http://auctioneeraddon.com/ + + This is an addon for World of Warcraft that adds statistical history to the auction data that is collected + when the auction is scanned, so that you can easily determine what price + you will be able to sell an item for at auction or at a vendor whenever you + mouse-over an item in the game + + License: + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program(see GPL.txt); if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + Note: + This AddOn's source code is specifically designed to work with + World of Warcraft's interpreted AddOn system. + You have an implicit licence to use this AddOn with these facilities + since that is its designated purpose as per: + http://www.fsf.org/licensing/licenses/gpl-faq.html#InterpreterIncompat +]] + + +--[[ + See CoreAPI.lua for a description of the modules API +]] + +if (not AucAdvanced) then AucAdvanced = {} end +if (not AucAdvancedData) then AucAdvancedData = {} end +if (not AucAdvancedLocal) then AucAdvancedLocal = {} end +if (not AucAdvancedConfig) then AucAdvancedConfig = {} end + +AucAdvanced.Version="<%version%>"; +if (AucAdvanced.Version == "<".."%version%>") then + AucAdvanced.Version = "5.0.DEV"; +end + +local private = {} + +-- For our modular stats system, each stats engine should add their +-- subclass to AucAdvanced.Modules.. and store their data into their own +-- data table in AucAdvancedData.Stats. +if (not AucAdvanced.Modules) then AucAdvanced.Modules = {Stat={},Util={},Filter={}} end +if (not AucAdvancedData.Stats) then AucAdvancedData.Stats = {} end +if (not AucAdvancedLocal.Stats) then AucAdvancedLocal.Stats = {} end + +function private.TooltipHook(vars, ret, frame, name, hyperlink, quality, quantity, cost, additional) + if EnhTooltip.LinkType(hyperlink) ~= "item" then + return -- Auctioneer hooks into item tooltips only + end + + -- Check to see if we need to force load scandata + local getter = AucAdvanced.Settings.GetSetting + if (getter("scandata.tooltip.display") and getter("scandata.force")) then + AucAdvanced.Scan.GetImage() + end + + for system, systemMods in pairs(AucAdvanced.Modules) do + for engine, engineLib in pairs(systemMods) do + if (engineLib.Processor) then engineLib.Processor("tooltip", frame, name, hyperlink, quality, quantity, cost, additional) end + end + end +end + +function private.HookAH() + hooksecurefunc("AuctionFrameBrowse_Update", AucAdvanced.API.ListUpdate) + for system, systemMods in pairs(AucAdvanced.Modules) do + for engine, engineLib in pairs(systemMods) do + if (engineLib.Processor) then + engineLib.Processor("auctionui") + end + end + end +end + +function private.OnLoad(addon) + addon = addon:lower() + + -- Check if the actual addon itself is loading + if (addon == "auc-advanced") then + Stubby.RegisterAddOnHook("Blizzard_AuctionUi", "Auc-Advanced", private.HookAH) + Stubby.RegisterFunctionHook("EnhTooltip.AddTooltip", 600, private.TooltipHook) + for pos, module in ipairs(AucAdvanced.EmbeddedModules) do + -- These embedded modules have also just been loaded + private.OnLoad(module) + end + end + + -- Notify the actual module if it exists + local auc, sys, eng = strsplit("-", addon) + if (auc == "auc" and sys and eng) then + for system, systemMods in pairs(AucAdvanced.Modules) do + if (sys == system:lower()) then + for engine, engineLib in pairs(systemMods) do + if (eng == engine:lower() and engineLib.OnLoad) then + engineLib.OnLoad(addon) + end + end + end + end + end + + -- Check all modules' load triggers and pass event to processors + for system, systemMods in pairs(AucAdvanced.Modules) do + for engine, engineLib in pairs(systemMods) do + if (engineLib.LoadTriggers and engineLib.LoadTriggers[addon]) then + if (engineLib.OnLoad) then + engineLib.OnLoad(addon) + end + end + if (engineLib.Processor and auc == "auc" and sys and eng) then + engineLib.Processor("load", addon) + end + end + end +end + +function private.OnUnload() + for system, systemMods in pairs(AucAdvanced.Modules) do + for engine, engineLib in pairs(systemMods) do + if (engineLib.OnUnload) then + engineLib.OnUnload() + end + end + end +end + +private.Schedule = {} +function private.OnEvent(...) + local event, arg = select(2, ...) + if (event == "ADDON_LOADED") then + local addon = string.lower(arg) + if (addon:sub(1,4) == "auc-") then + private.OnLoad(addon) + end + elseif (event == "AUCTION_HOUSE_SHOW") then + -- Do Nothing for now + elseif (event == "AUCTION_HOUSE_CLOSED") then + AucAdvanced.Scan.Interrupt() + elseif (event == "PLAYER_LOGOUT") then + AucAdvanced.Scan.Commit(true) + private.OnUnload() + elseif event == "UNIT_INVENTORY_CHANGED" + or event == "ITEM_LOCK_CHANGED" + or event == "CURSOR_UPDATE" + or event == "BAG_UPDATE" + then + private.Schedule["inventory"] = GetTime() + 0.15 + end +end + +function private.OnUpdate(...) + if event == "inventory" then + AucAdvanced.Post.AlertBagsChanged() + end + + local now = GetTime() + for event, time in pairs(private.Schedule) do + if time > now then + for system, systemMods in pairs(AucAdvanced.Modules) do + for engine, engineLib in pairs(systemMods) do + if engineLib.Processor then + engineLib.Processor(event, time) + end + end + end + end + private.Schedule[event] = nil + end +end + +private.Frame = CreateFrame("Frame") +private.Frame:RegisterEvent("ADDON_LOADED") +private.Frame:RegisterEvent("AUCTION_HOUSE_SHOW") +private.Frame:RegisterEvent("AUCTION_HOUSE_CLOSED") +private.Frame:RegisterEvent("UNIT_INVENTORY_CHANGED") +private.Frame:RegisterEvent("ITEM_LOCK_CHANGED") +private.Frame:RegisterEvent("CURSOR_UPDATE") +private.Frame:RegisterEvent("BAG_UPDATE") +private.Frame:RegisterEvent("PLAYER_LOGOUT") +private.Frame:SetScript("OnEvent", private.OnEvent) +private.Frame:SetScript("OnUpdate", private.OnUpdate) + +-- Auctioneer's debug functions +AucAdvanced.Debug = {} +local addonName = "Auctioneer" -- the addon's name as it will be displayed in + -- the debug messages +------------------------------------------------------------------------------- +-- Prints the specified message to nLog. +-- +-- syntax: +-- errorCode, message = debugPrint([message][, category][, title][, errorCode][, level]) +-- +-- parameters: +-- message - (string) the error message +-- nil, no error message specified +-- category - (string) the category of the debug message +-- nil, no category specified +-- title - (string) the title for the debug message +-- nil, no title specified +-- errorCode - (number) the error code +-- nil, no error code specified +-- level - (string) nLog message level +-- Any nLog.levels string is valid. +-- nil, no level specified +-- +-- returns: +-- errorCode - (number) errorCode, if one is specified +-- nil, otherwise +-- message - (string) message, if one is specified +-- nil, otherwise +------------------------------------------------------------------------------- +function AucAdvanced.Debug.DebugPrint(message, category, title, errorCode, level) + return DebugLib.DebugPrint(addonName, message, category, title, errorCode, level) +end + +------------------------------------------------------------------------------- +-- Used to make sure that conditions are met within functions. +-- If test is false, the error message will be written to nLog and the user's +-- default chat channel. +-- +-- syntax: +-- assertion = assert(test, message) +-- +-- parameters: +-- test - (any) false/nil, if the assertion failed +-- anything else, otherwise +-- message - (string) the message which will be output to the user +-- +-- returns: +-- assertion - (boolean) true, if the test passed +-- false, otherwise +------------------------------------------------------------------------------- +function AucAdvanced.Debug.Assert(test, message) + return DebugLib.Assert(addonName, test, message) +end + + Added: external/Pygments-0.9/tests/examplefiles/example.moo ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/example.moo Tue Oct 23 20:20:22 2007 @@ -0,0 +1,26 @@ +if (this.running) + player:tell("[Train] Error: already a jump in progress"); + return; +endif +this.running = 1; +this.aborted = 0; +this:announce_all("[Train] departure in 20 seconds"); +dest = this.targets[random(length(this.targets))]; +this:announce_all("[Train] Next stop is '", dest:title(), "'"); +this:announce_all("You hear the engines starting up"); +this.location:announce("The MOOTrain starts up his engines"); +suspend(20); +if (this.aborted) + this.running = 0; + this.aborted = 0; + return; +endif +this:announce_all("[Train] Departure!"); +this.location:announce_all("The MOOTrain leaves into the 42th dimension!"); +this:announce_all("Outside you see the lights of the 42th dimension"); +this:moveto(dest); +suspend(4); +this:announce_all("The glowing gets less, until you can see the clear shape of the room, the MOOTrain has landed in"); +this.location:announce_all("The MOOTrain arrives out of the 42th dimension!"); +this:announce_all("[Train] arrived in '", dest:title(), "'"); +this.running = 0; \ No newline at end of file Added: external/Pygments-0.9/tests/examplefiles/example.pas ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/example.pas Tue Oct 23 20:20:22 2007 @@ -0,0 +1,2708 @@ +// vim:ft=pascal + +unit YTools; + +{=============================================================================== + + cYcnus.YTools 1.0.3 Beta for Delphi 4+ + by licenser and Murphy + + ?2000-2003 by cYcnus + visit www.cYcnus.de + + licenser at cYcnus.de (Heinz N. Gies) + murphy at cYcnus.de (Kornelius Kalnbach) + + this unit is published under the terms of the GPL + +===============================================================================} + +interface + +uses + Windows, SysUtils, Classes, YTypes; + +const + BackSpace = #8; + Tab = #9; + LF = #10; //Line Feed + CR = #13; //Carriage Return + Space = #32; + EOLChars = [CR, LF]; +{$IFNDEF VER140} + sLineBreak = #13#10; + SwitchChars = ['/', '-']; +{$ENDIF} + EOL = sLineBreak; + MaxCard = High(Cardinal); + AllChars = [#0..#255]; + Alphabetical = ['A'..'Z', 'a'..'z']; + DecimalChars = ['0'..'9']; + AlphaNumerical = Alphabetical + DecimalChars; + StrangeChars = [#0..#31, #127, #129, #141..#144, #157, #158]; + + HexadecimalChars = DecimalChars + ['A'..'F', 'a'..'f']; + OctalChars = ['0'..'7']; + BinaryChars = ['0', '1']; + + QuoteChars = ['''', '"']; + WildCards = ['*', '?']; + FileNameEnemies = WildCards + ['\', '/', ':', '<', '>', '|']; + + HexChar: array[THex] of Char = ( + '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); + LowerHexChar: array[THex] of Char = ( + '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'); + BaseNChar: array[TBaseN] of Char = ( + '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H', + 'I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); + + cYcnusOverlayColor = $050001; + + faFindEveryFile = faReadOnly + faHidden + faSysFile + faArchive; + + platWin9x = [VER_PLATFORM_WIN32s, VER_PLATFORM_WIN32_WINDOWS]; + + +{ Debugging } +procedure ClearReport(const ReportName: string); +procedure Report(const ReportName, Text: string); +procedure ReportFmt(const ReportName, Fmt: string; const Args: array of const); + +{ Params } +procedure GetParams(Strings: TStrings); overload; +function GetParams(const Separator: string = ' '): string; overload; + +function ParamNum(const S: string): Integer; +function ParamPrefixNum(const Prefix: string): Integer; +function Param(const S: string): Boolean; +function ParamPrefix(const Prefix: string): Boolean; + +function Switch(const Switch: string; const PrefixChars: TCharSet = SwitchChars; + IgnoreCase: Boolean = True): Boolean; +function GetParam(const Prefix: string = ''; const Default: string = ''): string; + +{ Dirs & UserName} +function GetMyDir(FullPath: Boolean = False): string; +function WinDir: string; +function SysDir: string; +function UserName: string; + +{ Strings & Chars} +function FirstChar(const S: string): Char; +function LastChar(const S: string): Char; + +function CharPos(C: Char; const S: string; Offset: Integer = 1): Integer; overload; +function CharPos(C: TCharSet; const S: string; Offset: Integer = 1): Integer; overload; +function CharPosR(C: Char; const S: string; Offset: Integer = -1): Integer; +function PosEx(const SubStr, S: string; Offset: Integer = 1): Integer; +function PosExText(const SubStr, S: string; Offset: Integer = 1): Integer; +function PosExAnsiText(const SubStr, S: string; Offset: Integer = 1): Integer; + +function UntilChar(const S: string; Brake: Char): string; overload; +function UntilChar(const S: string; Brake: TCharSet): string; overload; +function UntilLastChar(const S: string; Brake: Char; + IgnoreNoBrake: Boolean = True): string; + +function FromChar(const S: string; Brake: Char): string; overload; +function FromChar(const S: string; Brake: TCharSet): string; overload; +function FromLastChar(const S: string; Brake: Char; + IgnoreNoBrake: Boolean = False): string; + +function BetweenChars(const S: string; Start, Finish: Char; + Inclusive: Boolean = False): string; + +function UntilStr(const S: string; Brake: string): string; +function FromStr(const S: string; Brake: string): string; + +function StringWrap(const S: string; Width: Integer; const LineEnd: string = EOL): string; + +{ Splitting & Combining } +function Split(const S, Separator: string; IgnoreMultiSep: Boolean = True; + MinCount: Integer = 0): TStrA; overload; +procedure Split(const S, Separator: string; Strings: TStrings; + IgnoreMultiSep: Boolean = True); overload; +function Split(const S: string; Separators: TCharSet; + IgnoreMultiSep: Boolean = True; MinCount: Integer = 0): TStrA; overload; + +procedure TileStr(const S: string; BrakeStart: Integer; BrakeEnd: Integer; + out Left, Right: string); + +function Join(Strings: TStrings; Separator: string = ' '): string; overload; +function Join(StrA: TStrA; Separator: string = ' '): string; overload; + +function MulStr(const S: string; Count: Integer): string; + +{ Strings ausrichten } +function AlignR(const S: string; Width: Integer; Filler: Char = ' '): string; +function MaxStr(const S: string; MaxLen: Integer): string; + +{ Stringing } +function TrimAll(const S: string): string; + +function ControlChar(C: Char): Boolean; +function FriendlyChar(C: Char): Char; + +function FriendlyStr(const S: string): string; overload; +function FriendlyStr(a: TByteA): string; overload; + +function Quote(const S: string; Quoter: Char = '"'): string; +function UnQuote(const S: string): string; +function DeQuote(const S: string): string; + +function StrNumerus(const Value: Integer; const Singular, Plural: string; + const Zero: string = '0'): string; + +function MakeStr(const Items: array of const; Separator: string = ''): string; +procedure ShowText(const Items: array of const; Separator: string = ''); + +{ Delete } +function DeleteChars(const S: string; C: Char): string; overload; +function DeleteChars(const S: string; C: TCharSet): string; overload; +function ExtractChars(const S: string; C: TCharSet): string; + +{ Find } +function CharCount(const S: string; C: Char): Integer; + +function CharIn(const S: string; C: Char): Boolean; overload; +function CharIn(const S: string; C: TCharSet): Boolean; overload; + +function StrAtPos(const S: string; Pos: Integer; const Str: string): Boolean; +function StrAtBegin(const S, Str: string): Boolean; +function StrIn(const S, SubStr: string): Boolean; overload; +function StrIn(A: TStrA; const S: string): Boolean; overload; +function StrIn(SL: TStrings; const S: string): Boolean; overload; +function StrIndex(A: TStrA; const S: string): Integer; overload; +function StrIndex(SL: TStrings; const S: string): Integer; overload; + +function TextAtPos(const S: string; Pos: Integer; const Text: string): Boolean; +function TextAtBegin(const S, Text: string): Boolean; +function TextIn(const S, Text: string): Boolean; overload; +function TextIn(A: TStrA; const Text: string): Boolean; overload; +function TextIn(SL: TStrings; const Text: string): Boolean; overload; +function TextIndex(A: TStrA; const Text: string): Integer; overload; +function TextIndex(SL: TStrings; const Text: string): Integer; overload; + +{ Replace } +function ReplaceChars(const S: string; Old, New: Char): string; overload; +function ReplaceChars(const S: string; Old: TCharSet; New: Char): string; overload; + +function Replace(const S, Old, New: string): string; + +{ TStrings } +function SLOfFile(const FileName: string): TStringList; +function ContainsEmptyLines(SL: TStrings): Boolean; +procedure DeleteEmptyLines(SL: TStrings); +procedure DeleteCommentLines(SL: TStrings; const CommentSign: string = '//'); +procedure WriteSL(Strings: TStrings; const Prefix: string = ''; + const Suffix: string = ''); + +function FindLine(SL: TStrings; const S: string): Integer; + +procedure QuickSortSL(SL: TStringList); + +{ TStrA } +function IncStrA(StrA: TStrA): Integer; + +{ TByteA } +function StrOfByteA(a: TByteA): string; +function ByteAOfStr(const S: string): TByteA; +function ByteAOfInt(i: Integer): TByteA; +function IntOfByteA(A: TByteA): Integer; +function ByteAOfHex(const Hex: string): TByteA; + +function SameByteA(const A, B: TByteA): Boolean; +function Reverse(a: TByteA): TByteA; +function SaveByteA(Data: TByteA; const FileName: string; Overwrite: Boolean = True): Boolean; +function LoadByteA(const FileName: string): TByteA; + +function Endian(i: Integer): Integer; + +{ Files } +function SizeOfFile(const FileName: string): Integer; +function FileEx(const FileName: string; AllowFolders: Boolean = False): Boolean; +function LWPSolve(const Dir: string): string; +function LWPSlash(const Dir: string): string; + +function ExtractDrive(const FileName: string): string; +function ExtractPath(const FileName: string): string; +function ExtractPrefix(const FileName: string): string; +function ExtractSuffix(const FileName: string): string; + +function IsValidFileName(const FileName: string): Boolean; +function MakeValidFileName(FileName: string; const Default: string = 'File'): string; + +{ Converting } +function IsValidInteger(const S: string): Boolean; +function IsValidCardinal(const S: string): Boolean; + +function StrOfBool(flag: Boolean; const TrueStr: string = 'True'; + const FalseStr: string = 'False'): string; +function StrOfInt(i: Integer): string; +function CardOfStr(const S: string): Cardinal; + +function HexOrd(Hex: Char): THex; +function ByteOfHex(Hex: THexByteStr): Byte; + +function DecOfHex(const Hex: string): string; +function HexOfByte(b: Byte): THexByteStr; +function HexOfCard(i: Cardinal): string; overload; +function HexOfCard(i: Cardinal; Digits: Integer): string; overload; + +function PascalHexArray(a: TByteA; Name: string): string; + +function HexOfByteA(a: TByteA; Blocks: Integer = 1; + const Splitter: string = ' '): string; +function BinOfByteA(a: TByteA; Blocks: Integer = 4; + const Splitter: string = ' '): string; + +function CardOfHex(Hex: string): Cardinal; +function IntOfBin(Bin: string): Cardinal; + +function BinOfIntFill(n: cardinal; MinCount: Integer = 8): string; +function BinOfInt(n: cardinal): string; + +function BaseNOfInt(I: Cardinal; B: TBaseN): string; +function IntOfBaseN(V: string; B: TBaseN): Cardinal; + +{ Ranges } +function KeepIn(i, Bottom, Top: Variant): Variant; +function InRange(Value, Bottom, Top: Variant): Boolean; +function InStrictRange(Value, Bottom, Top: Variant): Boolean; +function Min(const A, B: Integer): Integer; overload; +function Min(const A: TIntA): Integer; overload; +function Max(const A, B: Integer): Integer; overload; +function Max(const A: TIntA): Integer; overload; + +const + RangesSeparator = ','; + RangeInnerSeparator = '-'; + RangeInfinite = '*'; + RangeSpecialChars = [RangesSeparator, RangeInnerSeparator, RangeInfinite]; + +function RangesOfStr(const S: string): TRanges; +function InRanges(Ranges: TRanges; TestValue: Cardinal): Boolean; + +function Success(Res: Integer; ResultOnSuccess: Integer = ERROR_SUCCESS): Boolean; +function Failure(Res: Integer; ResultOnSuccess: Integer = ERROR_SUCCESS): Boolean; + +function ExpandString(const S: string): string; + +{ Files } +procedure DeleteFiles(const Mask: string; ScanSubDirs: Boolean = True; + Attributes: Integer = faFindEveryFile); +procedure FileNew(const FileName: string); +function DateTimeOfFileTime(const FileTime: TFileTime): TDateTime; + +{ FileNames } +function GetFileNew(FileName: string; NoFloppyDrives: Boolean = True): string; + +{ Finding Files } +function FindAll(Strings: TStrings; const Mask: string; + ScanSubDirs: Boolean = True; Attributes: Integer = faFindEveryFile; + FileReturn: TFileNameFunc = nil): Boolean; +function FindAllFirst(const Mask: string; ScanSubDirs: Boolean = True; + Attributes: Integer = faFindEveryFile): string; + +function FullOSInfo: string; +function Win32PlatformStr: string; +function Win9x: Boolean; +function WinNT: Boolean; +function Win2000: Boolean; +function WinXP: Boolean; + +var + MyDir: string = ''; + LastSuccessRes: Integer = 0; + +{ Backward compatibility } +{$IFNDEF VER130} +function SameText(const S1, S2: string): Boolean; +{$ENDIF} + +implementation +{$IFNDEF VER140} +uses FileCtrl; +{$ENDIF} + +{$IFNDEF VER130} +function SameText(const S1, S2: string): Boolean; +begin + Result := CompareText(S1, S2) = 0; +end; +{$ENDIF} + +procedure Report(const ReportName, Text: string); +var + F: TextFile; + FileName: string; +begin + FileName := MyDir + ReportName + '.rep'; + Assign(F, FileName); + try + if not FileExists(FileName) then + Rewrite(F) + else + Append(F); + WriteLn(F, Text); + finally + Close(F); + end; +end; + +procedure ClearReport(const ReportName: string); +var + FileName: string; +begin + FileName := MyDir + ReportName + '.rep'; + DeleteFile(FileName); +end; + +procedure ReportFmt(const ReportName, Fmt: string; const Args: array of const); +begin + Report(ReportName, Format(Fmt, Args)); +end; + +procedure GetParams(Strings: TStrings); +var + P: PChar; + Param: string; + + function GetParamStr(var P: PChar; var Param: string): Boolean; + var + Quoted: Boolean; + begin + Param := ''; + + repeat + while (P[0] <> #0) and (P[0] <= ' ') do + Inc(P); + + Quoted := False; + while P[0] <> #0 do begin + if P[0] = '"' then begin + Quoted := not Quoted; + Inc(P); + Continue; end; + if (P[0] <= ' ') and not Quoted then + Break; + Param := Param + P[0]; + Inc(P); + end; + until (Param <> '') or (P[0] = #0); + + Result := Param <> ''; + end; + +begin + Strings.Clear; + P := GetCommandLine; + GetParamStr(P, Param); + while GetParamStr(P, Param) do + Strings.Add(Param); +end; + +function GetParams(const Separator: string = ' '): string; +var + SL: TStringList; +begin + SL := TStringList.Create; + GetParams(SL); + Result := Join(SL, Separator); + SL.Free; +end; + +function Switch(const Switch: string; const PrefixChars: TCharSet = SwitchChars; + IgnoreCase: Boolean = True): Boolean; +//= SysUtils.FindCmdLineSwitch +var + i: Integer; + s: string; +begin + Result := True; + + for i := 1 to ParamCount do begin + s := ParamStr(i); + + if (s <> '') and (s[1] in PrefixChars) then begin + //i know that always s <> '', but this is saver + s := Copy(s, 2, MaxInt); + if (s = Switch) or (IgnoreCase and (0=AnsiCompareText(s, Switch))) then + Exit; + end; + end; + + Result := False; +end; + +function ParamNum(const S: string): Integer; +begin + for Result := 1 to ParamCount do + if 0=AnsiCompareText(ParamStr(Result), S) then + Exit; + + Result := 0; +end; + +function ParamPrefixNum(const Prefix: string): Integer; +var + Len: Integer; +begin + Len := Length(Prefix); + for Result := 1 to ParamCount do + if 0=AnsiCompareText(Copy(ParamStr(Result), 1, Len), Prefix) then + Exit; + + Result := 0; +end; + +function Param(const S: string): Boolean; +begin + Result := ParamNum(S) > 0; +end; + +function ParamPrefix(const Prefix: string): Boolean; +begin + Result := ParamPrefixNum(Prefix) > 0; +end; + +function GetParam(const Prefix: string = ''; const Default: string = ''): string; +var + i: Integer; +begin + Result := Default; + + if Prefix = '' then begin + Result := ParamStr(1); + Exit; end; + + i := ParamPrefixNum(Prefix); + if i > 0 then + Result := Copy(ParamStr(i), Length(Prefix) + 1, MaxInt); +end; + +function GetMyDir(FullPath: Boolean = False): string; +var + Buffer: array[0..260] of Char; +begin + Result := ''; + SetString(Result, Buffer, GetModuleFileName(0, Buffer, SizeOf(Buffer))); + if FullPath then + Result := GetFileNew(Result); + Result := ExtractPath(Result); +end; + +function WinDir: string; +var + Res: PChar; +begin + Result := '\'; + GetMem(Res, MAX_PATH); + GetWindowsDirectory(Res, MAX_PATH); + Result := Res + '\'; + FreeMem(Res, MAX_PATH); +end; + +function SysDir: string; +var + Res: PChar; +begin + Result := '\'; + GetMem(Res, MAX_PATH); + GetSystemDirectory(Res, MAX_PATH); + Result := Res + '\'; + FreeMem(Res, MAX_PATH); +end; + +function UserName: string; +var + Len: Cardinal; + Res: PChar; +begin + Result := ''; + GetMem(Res, MAX_PATH); + Len := MAX_PATH; + GetUserName(Res, Len); + Result := Res; + FreeMem(Res, MAX_PATH); +end; + +function FirstChar(const S: string): Char; +begin + if s = '' then + Result := #0 + else + Result := s[1]; +end; + +function LastChar(const S: string): Char; +begin + if s = '' then + Result := #0 + else + Result := s[Length(s)]; +end; + +function CharPos(C: Char; const S: string; Offset: Integer = 1): Integer; +var + MaxPosToSearch: Integer; +begin + Result := Offset; + MaxPosToSearch := Length(S); + + while Result <= MaxPosToSearch do begin + if S[Result] = C then + Exit; + Inc(Result); + end; + + Result := 0; +end; + +function CharPos(C: TCharSet; const S: string; Offset: Integer = 1): Integer; +var + MaxPosToSearch: Integer; +begin + Result := Offset; + MaxPosToSearch := Length(S); + + while Result <= MaxPosToSearch do begin + if S[Result] in C then + Exit; + Inc(Result); + end; + + Result := 0; +end; + +function CharPosR(C: Char; const S: string; Offset: Integer = -1): Integer; +begin + if Offset < 0 then + Result := Length(S) + 1 - Offset + else + Result := Offset; + if Result > Length(S) then + Result := Length(S); + + while Result > 0 do begin + if S[Result] = C then + Exit; + Dec(Result); + end; +end; + +function PosEx(const SubStr, S: string; Offset: Integer = 1): Integer; +var + MaxPosToSearch, LenSubStr, i: Integer; +begin + if SubStr = '' then begin + Result := 0; + Exit; end; + + if Offset < 1 then + Result := 1 + else + Result := Offset; + + LenSubStr := Length(SubStr); + MaxPosToSearch := Length(S) - LenSubStr + 1; + + while Result <= MaxPosToSearch do begin + if S[Result] = SubStr[1] then begin + i := 1; + + while (i < LenSubStr) + and (S[Result + i] = SubStr[i + 1]) do + Inc(i); + + if i = LenSubStr then + Exit; + end; + Inc(Result); + end; + + Result := 0; +end; + +function PosExText(const SubStr, S: string; Offset: Integer = 1): Integer; +var + MaxPosToSearch, LenSubStr, i: Integer; + + function SameChar(a, b: Char): Boolean; + begin + Result := UpCase(a) = UpCase(b) + end; + +begin + if SubStr = '' then begin + Result := 0; + Exit; end; + + if Offset < 1 then + Result := 1 + else + Result := Offset; + + LenSubStr := Length(SubStr); + MaxPosToSearch := Length(S) - LenSubStr + 1; + + while Result <= MaxPosToSearch do begin + if SameChar(S[Result], SubStr[1]) then begin + i := 1; + + while (i < LenSubStr) + and (SameChar(S[Result + i], SubStr[i + 1])) do + Inc(i); + + if i = LenSubStr then + Exit; + end; + Inc(Result); + end; + + Result := 0; +end; + +function PosExAnsiText(const SubStr, S: string; Offset: Integer = 1): Integer; +var + MaxPosToSearch, LenSubStr, i: Integer; + + function SameChar(a, b: Char): Boolean; + begin + Result := CharLower(PChar(a)) = CharLower(PChar(b)); + end; + +begin + if SubStr = '' then begin + Result := 0; + Exit; end; + + if Offset < 1 then + Result := 1 + else + Result := Offset; + + LenSubStr := Length(SubStr); + MaxPosToSearch := Length(S) - LenSubStr + 1; + + while Result <= MaxPosToSearch do begin + if SameChar(S[Result], SubStr[1]) then begin + i := 1; + + while (i < LenSubStr) + and (SameChar(S[Result + i], SubStr[i + 1])) do + Inc(i); + + if i = LenSubStr then + Exit; + end; + Inc(Result); + end; + + Result := 0; +end; + +function UntilChar(const S: string; Brake: Char): string; +var + p: Integer; +begin + p := CharPos(Brake, S); + + if p > 0 then + Result := Copy(S, 1, p - 1) + else + Result := S; +end; + +function UntilChar(const S: string; Brake: TCharSet): string; +var + p: Integer; +begin + Result := ''; + p := CharPos(Brake, S); + + if p > 0 then + Result := Copy(S, 1, p - 1) + else + Result := S; +end; + +function UntilLastChar(const S: string; Brake: Char; + IgnoreNoBrake: Boolean = True): string; +var + p: Integer; +begin + Result := ''; + p := CharPosR(Brake, S); + + if p > 0 then + Result := Copy(S, 1, p - 1) + else if IgnoreNoBrake then + Result := S; +end; + +function FromChar(const S: string; Brake: Char): string; +var + p: Integer; +begin + Result := ''; + p := CharPos(Brake, S); + + if p > 0 then + Result := Copy(S, p + 1, Length(S) - p); +end; + +function FromChar(const S: string; Brake: TCharSet): string; +var + p: Integer; +begin + Result := ''; + p := CharPos(Brake, S); + + if p > 0 then + Result := Copy(S, p + 1, Length(S) - p); +end; + +function FromLastChar(const S: string; Brake: Char; + IgnoreNoBrake: Boolean = False): string; +var + p: Integer; +begin + Result := ''; + p := CharPosR(Brake, S); + + if p > 0 then + Result := Copy(S, p + 1, Length(S) - p) + else if IgnoreNoBrake then + Result := S; +end; + +function BetweenChars(const S: string; Start, Finish: Char; + Inclusive: Boolean = False): string; +var + p, fin: Integer; +begin + Result := ''; + + p := CharPos(Start, S); + if p = 0 then + Exit; + + fin := CharPos(Finish, S, p + 1); + if fin = 0 then + Exit; + + if not Inclusive then begin + Inc(p); + Dec(fin); + end; + + Result := Copy(S, p, fin - p + 1); +end; + +function UntilStr(const S: string; Brake: string): string; +var + p: Integer; +begin + if Length(Brake) = 1 then begin + Result := UntilChar(S, Brake[1]); + Exit; end; + + p := PosEx(Brake, S); + + if p > 0 then + Result := Copy(S, 1, p - 1) + else + Result := S; +end; + +function FromStr(const S: string; Brake: string): string; +var + p: Integer; +begin + if Length(Brake) = 1 then begin + Result := FromChar(S, Brake[1]); + Exit; end; + + Result := ''; + p := PosEx(Brake, s); + + if p > 0 then begin + Inc(p, Length(Brake)); + Result := Copy(S, p, Length(S) - p + 1); + end; +end; + +function StringWrap(const S: string; Width: Integer; const LineEnd: string = EOL): string; +var + i: Integer; +begin + Result := ''; + if (S = '') or (Width < 1) then + Exit; + + i := 1; + while True do begin + Result := Result + Copy(S, i, Width); + Inc(i, Width); + if i <= Length(S) then + Result := Result + LineEnd + else + Exit; + end; +end; + +function Split(const S, Separator: string; IgnoreMultiSep: Boolean = True; + MinCount: Integer = 0): TStrA; +var + p, fin, SepLen: Integer; + + procedure Add(const S: string); + begin + if IgnoreMultiSep and (S = '') then + Exit; + SetLength(Result, Length(Result) + 1); + Result[High(Result)] := S; + end; + +begin + if S = '' then begin + if Length(Result) < MinCount then + SetLength(Result, MinCount); + Exit; end; + + Result := nil; + SepLen := Length(Separator); + + p := 1; + fin := PosEx(Separator, S); + while fin > 0 do begin + Add(Copy(S, p, fin - p)); + p := fin + SepLen; + fin := PosEx(Separator, S, p); + end; + Add(Copy(S, p, Length(S) - p + 1)); + + if Length(Result) < MinCount then + SetLength(Result, MinCount); +end; + +procedure Split(const S, Separator: string; Strings: TStrings; + IgnoreMultiSep: Boolean = True); +var + p, fin, SepLen: Integer; + + procedure Add(const S: string); + begin + if IgnoreMultiSep and (S = '') then + Exit; + Strings.Add(S); + end; + +begin + if S = '' then + Exit; + + Strings.BeginUpdate; + SepLen := Length(Separator); + p := 1; + fin := PosEx(Separator, S); + while fin > 0 do begin + Add(Copy(S, p, fin - p)); + p := fin + SepLen; + fin := PosEx(Separator, S, p); + end; + Add(Copy(S, p, Length(S) - p + 1)); + Strings.EndUpdate; +end; + +function Split(const S: string; Separators: TCharSet; + IgnoreMultiSep: Boolean = True; MinCount: Integer = 0): TStrA; +var + p, fin: Integer; + + procedure Add(const S: string); + begin + if IgnoreMultiSep and (S = '') then + Exit; + SetLength(Result, Length(Result) + 1); + Result[High(Result)] := S; + end; + +begin + if S = '' then begin + if Length(Result) < MinCount then + SetLength(Result, MinCount); + Exit; end; + + Result := nil; + + p := 1; + fin := CharPos(Separators, S); + while fin > 0 do begin + Add(Copy(S, p, fin - p)); + p := fin + 1; + fin := CharPos(Separators, S, p); + end; + Add(Copy(S, p, Length(S) - p + 1)); + + if Length(Result) < MinCount then + SetLength(Result, MinCount); +end; + +procedure TileStr(const S: string; BrakeStart: Integer; BrakeEnd: Integer; + out Left, Right: string); +begin + Left := Copy(S, 1, BrakeStart-1); + Right := Copy(S, BrakeEnd + 1, MaxInt); +end; + +function Join(Strings: TStrings; Separator: string = ' '): string; +var + i, imax: Integer; +begin + Result := ''; + imax := Strings.Count-1; + for i := 0 to imax do begin + Result := Result + Strings[i]; + if i < imax then + Result := Result + Separator; + end; +end; + +function Join(StrA: TStrA; Separator: string = ' '): string; overload; +var + i: Integer; +begin + Result := ''; + for i := 0 to High(StrA) do begin + Result := Result + StrA[i]; + if i < High(StrA) then + Result := Result + Separator; + end; +end; + +function MulStr(const S: string; Count: Integer): string; +var + P: PChar; + Len, i: Integer; +begin + Result := ''; + if Count = 0 then + Exit; + + Len := Length(S); + SetLength(Result, Len * Count); + + P := Pointer(Result); + for i := 1 to Count do begin + Move(Pointer(S)^, P^, Len); + Inc(P, Len); + end; +end; + +function AlignR(const S: string; Width: Integer; Filler: Char = ' '): string; +begin + Result := MulStr(Filler, Width - Length(S)) + S; +end; + +function MaxStr(const S: string; MaxLen: Integer): string; +var + Len: Integer; +begin + Len := Length(S); + if Len <= MaxLen then begin + Result := S; + Exit end; + + Result := Copy(S, 1, MaxLen - 3) + '...'; +end; + +function TrimAll(const S: string): string; +var + i: Integer; +begin + for i := 1 to Length(S) do + if S[i] > #32 then + Result := Result + S[i]; +end; + +function ControlChar(C: Char): Boolean; +begin + Result := C in StrangeChars; +end; + +function FriendlyChar(C: Char): Char; +begin + case C of + #0: Result := '.'; + #1..#31: Result := '?'; + #255: Result := '#'; + else + Result := C; + end; +end; + +function FriendlyStr(const S: string): string; +var + i: Integer; +begin + SetLength(Result, Length(S)); + for i := 1 to Length(S) do + Result[i] := FriendlyChar(S[i]); +end; + +function FriendlyStr(a: TByteA): string; +var + i: Integer; +begin + SetLength(Result, Length(a)); + for i := 0 to High(a) do + Result[i + 1] := FriendlyChar(Char(a[i])); +end; + +function Quote(const S: string; Quoter: Char = '"'): string; +begin + Result := S; + + if FirstChar(S) <> Quoter then + Result := Quoter + Result; + + if LastChar(S) <> Quoter then + Result := Result + Quoter; +end; + +function DeQuote(const S: string): string; +begin + Result := ''; + if Length(S) > 2 then + Result := Copy(S, 2, Length(S) - 2); +end; + +function UnQuote(const S: string): string; +var + Start, Len: Integer; +begin + Start := 1; + Len := Length(S); + + if (S <> '') and (S[1] in ([#0..#32] + QuoteChars)) then begin + if (LastChar(S) = S[1]) then + Dec(Len); + Inc(Start); + end; + + Result := Copy(S, Start, Len - Start + 1); +end; + +function StrNumerus(const Value: Integer; const Singular, Plural: string; + const Zero: string = '0'): string; +begin + if Abs(Value) = 1 then + Result := IntToStr(Value) + ' ' + Singular + else if Value = 0 then + Result := Zero + ' ' + Plural + else + Result := IntToStr(Value) + ' ' + Plural; +end; + +function MakeStr(const Items: array of const; Separator: string = ''): string; +const + BoolStrings: array[Boolean] of string = ('False', 'True'); + +var + i: Integer; + + function StrOfP(P: Pointer): string; + begin + if P = nil then + Result := '[nil]' + else + Result := '[' + IntToStr(Cardinal(P)) + ']'; + end; + + procedure Add(const S: string); + begin + Result := Result + s + Separator; + end; + +begin + Result := ''; + for i := 0 to High(Items) do + with Items[i] do + case VType of + vtString: Add(VString^); + vtInteger: Add(IntToStr(VInteger)); + vtBoolean: Add(BoolStrings[VBoolean]); + vtChar: Add(VChar); + vtPChar: Add(VPChar); + vtExtended: Add(FloatToStr(VExtended^)); + vtObject: if VObject is TComponent then + Add(TComponent(VObject).Name) + else + Add(VObject.ClassName); + vtClass: Add(VClass.ClassName); + vtAnsiString: Add(string(VAnsiString)); + vtCurrency: Add(CurrToStr(VCurrency^)); + vtInt64: Add(IntToStr(VInt64^)); + vtVariant: Add(string(VVariant^)); + + vtWideChar: Add(VWideChar); + vtPWideChar: Add(VPWideChar); + vtInterface: Add(StrOfP(VInterface)); + vtPointer: Add(StrOfP(VPointer)); + vtWideString: Add(WideString(VWideString)); + end; + if Result <> '' then + SetLength(result, Length(Result) - Length(Separator)); +end; + +procedure ShowText(const Items: array of const; Separator: string = ''); +var + Text: string; +begin + Text := MakeStr(Items, Separator); + + MessageBox(0, PChar(Text), 'Info', MB_OK and MB_APPLMODAL); +end; + +function DeleteChars(const S: string; C: Char): string; +var + i: Integer; +begin + Result := ''; + for i := 1 to Length(S) do + if S[i] <> C then + Result := Result + S[i]; +end; + +function DeleteChars(const S: string; C: TCharSet): string; +var + i: Integer; +begin + Result := ''; + for i := 1 to Length(S) do + if not (S[i] in C) then + Result := Result + S[i]; +end; + +function ExtractChars(const S: string; C: TCharSet): string; +var + i: Integer; +begin + Result := ''; + for i := 1 to Length(S) do + if S[i] in C then + Result := Result + S[i]; +end; + +function CharCount(const S: string; C: Char): Integer; +var + i: Integer; +begin + Result := 0; + for i := 1 to Length(S) do + if S[i] = C then + Inc(Result); +end; + +function StrAtPos(const S: string; Pos: Integer; const Str: string): Boolean; +begin + Result := (Str <> '') and (Str = Copy(S, Pos, Length(Str))); +end; + +function TextAtPos(const S: string; Pos: Integer; const Text: string): Boolean; +begin + Result := (Text <> '') and SameText(Text, Copy(S, Pos, Length(Text))); +end; + +function StrAtBegin(const S, Str: string): Boolean; +begin + Result := StrAtPos(S, 1, Str); +end; + +function TextAtBegin(const S, Text: string): Boolean; +begin + Result := TextAtPos(S, 1, Text); +end; + +function CharIn(const S: string; C: Char): Boolean; +var + i: Integer; +begin + Result := True; + for i := 1 to Length(S) do + if S[i] = C then Exit; + Result := False; +end; + +function CharIn(const S: string; C: TCharSet): Boolean; +var + i: Integer; +begin + Result := False; + for i := 1 to Length(S) do begin + Result := S[i] in C; + if Result then + Exit; + end; +end; + +function StrIn(const S, SubStr: string): Boolean; +begin + Result := PosEx(SubStr, S) > 0; +end; + +function StrIn(SL: TStrings; const S: string): Boolean; +var + i: Integer; +begin + Result := False; + for i := 0 to SL.Count-1 do begin + Result := (S = SL[i]); + if Result then + Exit; + end; +end; + +function StrIn(A: TStrA; const S: string): Boolean; +var + i: Integer; +begin + Result := False; + for i := Low(A) to High(A) do begin + Result := (S = A[i]); + if Result then + Exit; + end; +end; + +function TextIn(const S, Text: string): Boolean; +begin + Result := PosExText(Text, S) > 0; +end; + +function TextIn(SL: TStrings; const Text: string): Boolean; +var + i: Integer; +begin + Result := False; + for i := 0 to SL.Count-1 do begin + Result := SameText(Text, SL[i]); + if Result then + Exit; + end; +end; + +function TextIn(A: TStrA; const Text: string): Boolean; +var + i: Integer; +begin + Result := False; + for i := Low(A) to High(A) do begin + Result := SameText(Text, A[i]); + if Result then + Exit; + end; +end; + +function StrIndex(SL: TStrings; const S: string): Integer; +begin + for Result := 0 to SL.Count-1 do + if S = SL[Result] then + Exit; + Result := -1; +end; + +function StrIndex(A: TStrA; const S: string): Integer; +begin + for Result := Low(A) to High(A) do + if S = A[Result] then + Exit; + Result := -1; +end; + +function TextIndex(SL: TStrings; const Text: string): Integer; +begin + for Result := 0 to SL.Count-1 do + if SameText(Text, SL[Result]) then + Exit; + Result := -1; +end; + +function TextIndex(A: TStrA; const Text: string): Integer; +begin + for Result := Low(A) to High(A) do + if SameText(Text, A[Result]) then + Exit; + Result := -1; +end; + +function ReplaceChars(const S: string; Old, New: Char): string; +var + i: Integer; +begin + Result := S; + for i := 1 to Length(Result) do + if Result[i] = Old then + Result[i] := New; +end; + +function ReplaceChars(const S: string; Old: TCharSet; New: Char): string; +var + i: Integer; +begin + Result := S; + for i := 1 to Length(Result) do + if Result[i] in Old then + Result[i] := New; +end; + +function Replace(const S, Old, New: string): string; +var + oldp, ps: Integer; +begin + ps := 1; + Result := ''; + while True do begin + oldp := ps; + ps := PosEx(Old, S, oldp); + if ps = 0 then begin + Result := Result + Copy(S, oldp, Length(S) - oldp + 1); + Exit; end; + Result := Result + Copy(S, oldp, ps - oldp) + New; + Inc(ps, Length(Old)); + end; +end; + +function SLOfFile(const FileName: string): TStringList; +begin + Result := TStringList.Create; + if FileExists(FileName) then + Result.LoadFromFile(FileName); +end; + +function ContainsEmptyLines(SL: TStrings): Boolean; +begin + Result := StrIn(SL, ''); +end; + +procedure DeleteEmptyLines(SL: TStrings); +var + i: Integer; +begin + i := 0; + while i < SL.Count do begin + if SL[i] = '' then + SL.Delete(i) + else + Inc(i); + end; +end; + +procedure DeleteCommentLines(SL: TStrings; const CommentSign: string = '//'); +var + i: Integer; +begin + i := 0; + while i < SL.Count do begin + if (SL[i] = '') or (StrAtBegin(TrimLeft(SL[i]), CommentSign)) then + SL.Delete(i) + else + Inc(i); + end; +end; + +function FindLine(SL: TStrings; const S: string): Integer; +begin + for Result := 0 to SL.Count-1 do + if TextAtBegin(SL[Result], S) then + Exit; + Result := -1; +end; + +procedure QuickSortSL(SL: TStringList); + + procedure Sort(l, r: Integer); + var + i,j: Integer; + z,x: string; + begin + i := l; + j := r; + x := SL[(j + i) div 2]; + repeat + while SL[i] < x do Inc(i); + while SL[j] > x do Dec(j); + if i <= j then begin + z := SL[i]; + SL[i] := SL[j]; + SL[j] := z; + Inc(i); Dec(j); + end; + until i > j; + if j > l then Sort(l, j); + if i < r then Sort(i, r); + end; + +begin + if SL.Count > 0 then + Sort(0, SL.Count-1); +end; + +function IncStrA(StrA: TStrA): Integer; +begin + SetLength(StrA, Length(StrA) + 1); + Result := High(StrA); +end; + +function StrOfByteA(a: TByteA): string; +begin + Result := string(Copy(a, 0, Length(a))); +end; + +function ByteAOfStr(const S: string): TByteA; +begin + Result := TByteA(Copy(S, 1, Length(s))); +end; + +function ByteAOfInt(i: Integer): TByteA; +begin + SetLength(Result, SizeOf(Integer)); + Move(i, Pointer(Result)^, SizeOf(Integer)); +end; + +function IntOfByteA(A: TByteA): Integer; +begin + Result := 0; + Move(Pointer(A)^, Result, Min(Length(A), SizeOf(Integer))); +end; + +function ByteAOfHex(const Hex: string): TByteA; +var + i: Integer; + h: string; +begin + h := ExtractChars(Hex, HexadecimalChars); + SetLength(Result, Length(h) div 2); + for i := 0 to High(Result) do + Result[i] := ByteOfHex(Copy(h, (i shl 1) + 1, 2)); +end; + +function SizeOfFile(const FileName: string): Integer; +var + F: file; +begin + AssignFile(F, FileName); + {$I-}Reset(F, 1);{$I+} + if IOResult = 0 then begin + Result := FileSize(F); + CloseFile(F); + end else + Result := 0; +end; + +function FileEx(const FileName: string; AllowFolders: Boolean = False): Boolean; +var + FindData: TWin32FindData; +begin + if FileName = '' then begin + Result := False; + Exit; end; + + Result := (AllowFolders and DirectoryExists(FileName)) or + (FindFirstFile(PChar(FileName), FindData) <> INVALID_HANDLE_VALUE); + Result := Result and not CharIn(FileName, WildCards); + Result := Result and (AllowFolders + or ((FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0)); +end; + +function LWPSolve(const Dir: string): string; +begin + if (Dir <> '') and (Dir[Length(Dir)] = '\') then begin + Result := Copy(Dir, 1, Length(Dir) - 1); + end else + Result := Dir; +end; + +function LWPSlash(const Dir: string): string; +begin + if (Dir <> '') and (Dir[Length(Dir)] = '\') then begin + Result := Copy(Dir, 1, Length(Dir)); + end else + Result := Dir + '\'; +end; + +function ExtractDrive(const FileName: string): string; +begin + Result := ''; + if (Length(FileName) >= 2) and (FileName[2] = ':') then + Result := UpperCase(FileName[1] + ':\'); +end; + +function ExtractPath(const FileName: string): string; +var + p: Integer; +begin + p := CharPosR('\', FileName); + if P > 0 then + Result := Copy(FileName, 1, p) + else + Result := FileName; +end; + +function ExtractPrefix(const FileName: string): string; +begin + Result := UntilLastChar(ExtractFileName(FileName), '.'); +end; + +function ExtractSuffix(const FileName: string): string; +begin + Result := FromLastChar(ExtractFileName(FileName), '.'); +end; + +function SameByteA(const A, B: TByteA): Boolean; +begin + Result := (A = B) or ((Length(A) = Length(B)) and CompareMem(A, B, Length(A))); +end; + +function Reverse(A: TByteA): TByteA; +var + i: Integer; +begin + SetLength(Result, Length(A)); + + for i := 0 to High(A) do + Result[High(Result) - i] := A[i]; +end; + +function Endian(i: Integer): Integer; +type + EndianArray = packed array[0..3] of Byte; +var + a, b: EndianArray; +begin + a := EndianArray(i); + b[0] := a[3]; + b[1] := a[2]; + b[2] := a[1]; + b[3] := a[0]; + Result := Integer(b); +end; + +function SaveByteA(Data: TByteA; const FileName: string; + Overwrite: Boolean = True): Boolean; +var + F: file; +begin + if FileExists(FileName) and not Overwrite then begin + Result := False; + Exit end; + + AssignFile(F, FileName); + {$I-}Rewrite(F, 1);{$I+} + if IOResult = 0 then begin + if Length(Data) > 0 then + BlockWrite(F, Data[0], Length(Data)); + CloseFile(F); + Result := True; + end else + Result := False; +end; + +function LoadByteA(const FileName: string): TByteA; +var + F: file; +begin + AssignFile(F, FileName); + {$I-}Reset(F, 1);{$I+} + if IOResult = 0 then begin + SetLength(Result, FileSize(F)); + if Length(Result) > 0 then + BlockRead(F, Result[0], FileSize(F)); + CloseFile(F); + end else + SetLength(Result, 0); +end; + +function IsValidFileName(const FileName: string): Boolean; +begin + Result := (FileName <> '') and not CharIn(FileName, FileNameEnemies) + and CharIn(Trim(FileName), AllChars - ['.']); +end; + +function MakeValidFileName(FileName: string; const Default: string = 'File'): string; +begin + if FileName = '' then + FileName := Default; + + if CharIn(FileName, FileNameEnemies) then + Result := ReplaceChars(FileName, FileNameEnemies, '_') + else if not CharIn(Trim(FileName), AllChars - ['.']) then + Result := Default + else + Result := FileName; +end; + +function IsValidInteger(const S: string): Boolean; +{const + LowInt = '2147483648'; + HighInt = '2147483647'; +var + len, RealLen, i, o: Integer; + c: Char; +begin + Result := False; + if S = '' then + Exit; + + len := Length(S); + o := 1; + + if S[1] = '-' then begin + if len = 1 then + Exit; + Inc(o); + while (o <= len) and (S[o] = '0') do + Inc(o); + if o > len then + Exit; + if o < len then begin + RealLen := len - o + 1; + if RealLen > Length(LowInt) then + Exit + else if RealLen = Length(LowInt) then begin + for i := 1 to Length(LowInt) do begin + c := S[i + o - 1]; + if (c < '0') or (c > LowInt[i]) then + Exit; + if c in ['0'..Char((Byte(LowInt[i])-1))] then + Break; + end; + Inc(o, i); + end; + end; + end else begin + while (o <= len) and (S[o] = '0') do + Inc(o); + if o <= len then begin + RealLen := len - o + 1; + if RealLen > Length(HighInt) then + Exit + else if RealLen = Length(HighInt) then begin + for i := 1 to Length(HighInt) do begin + c := S[i + o - 1]; + if (c < '0') or (c > HighInt[i]) then + Exit; + if c in ['0'..Char((Byte(HighInt[i])-1))] then + Break; + end; + Inc(o, i); + end; + end; + end; + + for i := o to len do + if not (S[i] in ['0'..'9']) then + Exit; + + Result := True; } +var + i: Int64; +begin + i := StrToInt64Def(S, High(Int64)); + Result := (i >= Low(Integer)) and (i <= High(Integer)); +end; + +function IsValidCardinal(const S: string): Boolean; +{const + HighCard = '4294967295'; +var + len, RealLen, i, o: Integer; +begin + Result := False; + if S = '' then + Exit; + + len := Length(S); + o := 1; + + while (o <= len) and (S[o] = '0') do + Inc(o); + if o <= len then begin + RealLen := len - o + 1; + if RealLen > Length(HighCard) then + Exit + else if RealLen = Length(HighCard) then begin + for i := 1 to Length(HighCard) do begin + if S[i + o - 1] > HighCard[i] then + Exit; + if S[i + o - 1] in ['0'..Char((Byte(HighCard[i])-1))] then + Break; + end; + Inc(o, i); + end; + end; + + for i := o to len do + if not (S[i] in ['0'..'9']) then + Exit; + + Result := True; } +var + i: Int64; +begin + i := StrToInt64Def(S, -1); + Result := (i >= 0) and (i <= High(Cardinal)); +end; + +function StrOfBool(flag: Boolean; const TrueStr: string = 'True'; + const FalseStr: string = 'False'): string; +begin + if Flag then + Result := TrueStr + else + Result := FalseStr; +end; + +function StrOfInt(i: Integer): string; +begin +{ if i = 0 then begin + Result := '0'; + Exit end; + + while i > 0 do begin + Result := Char(Byte('0') + (i mod 10)) + Result; + i := i div 10; + end;} + Result := IntToStr(i); +end; + +function CardOfStr(const S: string): Cardinal; +var + Res: Int64; +begin + Res := StrToInt64Def(S, -1); + if Res > High(Cardinal) then + Res := High(Cardinal) + else if Res < 0 then + Res := 0; + Result := Cardinal(Res); +end; + +function HexOrd(Hex: Char): THex; +begin + case Hex of + '0'..'9': + Result := Byte(Hex) - 48; + 'A'..'F': + Result := Byte(Hex) - 55; + 'a'..'f': + Result := Byte(Hex) - 87; + else + Result := 0; + end; +end; + +function ByteOfHex(Hex: THexByteStr): Byte; +begin + Result := (HexOrd(Hex[1]) shl 4) + HexOrd(Hex[2]); +end; + +function DecOfHex(const Hex: string): string; +begin + Result := IntToStr(CardOfHex(Hex)); +end; + +function HexOfByte(b: Byte): THexByteStr; +begin + Result := HexChar[(b and $F0) shr 4] + + HexChar[ b and $0F ]; +end; + +{function HexOfCard2(c: Cardinal): string; +var + Data: array[0..(1 shl 4) - 1] of Char; + i: Integer; +begin + for i := 0 to (1 shl 4) - 1 do + if i < 10 then + Data[i] := Char(Ord('0') + i) + else + Data[i] := Char(Ord('A') + i - 10); + + Result := Data[(c and (((1 shl (1 shl 2)) - 1) shl (7 shl 2))) shr (7 shl 2)] + + Data[(c and (((1 shl (1 shl 2)) - 1) shl (6 shl 2))) shr (6 shl 2)] + + Data[(c and (((1 shl (1 shl 2)) - 1) shl (5 shl 2))) shr (5 shl 2)] + + Data[(c and (((1 shl (1 shl 2)) - 1) shl (4 shl 2))) shr (4 shl 2)] + + Data[(c and (((1 shl (1 shl 2)) - 1) shl (3 shl 2))) shr (3 shl 2)] + + Data[(c and (((1 shl (1 shl 2)) - 1) shl (2 shl 2))) shr (2 shl 2)] + + Data[(c and (((1 shl (1 shl 2)) - 1) shl (1 shl 2))) shr (1 shl 2)] + + Data[(c and (((1 shl (1 shl 2)) - 1) shl (0 shl 2))) shr (0 shl 2)]; +end; } + +function HexOfCard(i: Cardinal): string; +var + a: Cardinal; +begin + Result := ''; + while i > 0 do begin + a := i and $F; + Result := HexChar[a] + Result; + i := i shr 4; + end; +end; + +function HexOfCard(i: Cardinal; Digits: Integer): string; +var + a: Cardinal; +begin + Result := ''; + while i > 0 do begin + a := i and $F; + Result := HexChar[a] + Result; + i := i shr 4; + end; + Result := MulStr('0', Digits - Length(Result)) + Result; +end; + +function PascalHexArray(a: TByteA; Name: string): string; +var + i, len: Integer; +begin + Result := 'const' + EOL + + ' ' + Name + ': array[0..' + IntToStr(High(a)) + '] of Byte = ('; + + len := Length(a); + for i := 0 to len-1 do begin + if (i mod 19) = 0 then + Result := Result + EOL + ' ' + ' '; + Result := Result + '$' + HexOfByte(a[i]); + if i < len-1 then + Result := Result + ','; + end; + Result := Result + EOL + ' );'; +end; + +function HexOfByteA(a: TByteA; Blocks: Integer = 1; + const Splitter: string = ' '): string; +var + i: Integer; +begin + Result := ''; + + if Blocks > 0 then + for i := 0 to High(a) do begin + Result := Result + HexOfByte(a[i]); + if i < High(a) then + if ((i+1) mod Blocks) = 0 then + Result := Result + Splitter; + end + else + for i := 0 to High(a) do + Result := Result + HexOfByte(a[i]); +end; + +function BinOfByteA(a: TByteA; Blocks: Integer = 4; + const Splitter: string = ' '): string; +var + i, max: Integer; + Bit: Boolean; +begin + Result := ''; + + if Blocks > 0 then begin + max := 8 * (High(a)) + 7; + for i := 0 to max do begin + Bit := 7-(i mod 8) in TBitSet(a[i div 8]); + Result := Result + Char(Byte('0') + Byte(Bit)); + if i < max then + if ((i+1) mod Blocks) = 0 then + Result := Result + Splitter; + end; + end else + for i := 0 to High(a) do + Result := Result + Char(Byte('0') + a[i] shr (i and 8)); +end; + +function CardOfHex(Hex: string): Cardinal; +var + i: Integer; +begin + Result := 0; + Hex := Copy(ExtractChars(Hex, HexadecimalChars), 1, 8); + + for i := 1 to Length(Hex) do + if Hex[i] <> '0' then + Inc(Result, HexOrd(Hex[i]) shl ((Length(Hex) - i) shl 2)); +end; + +function IntOfBin(Bin: string): Cardinal; +var + i: Integer; +begin + Result := 0; + Bin := Copy(ExtractChars(Bin, BinaryChars), 1, 32); + + for i := Length(Bin) downto 1 do + if Bin[i] = '1' then + Inc(Result, 1 shl (Length(Bin) - i)); +end; + +function BinOfInt(n: Cardinal): string; +var + a: Integer; +begin + if n = 0 then begin + Result := '0'; + exit; end; + + Result := ''; + while n > 0 do begin + a := n and 1; + Result := Char(a + Byte('0')) + Result; + n := n shr 1; + end; +end; + +function BinOfIntFill(n: Cardinal; MinCount: Integer = 8): string; +var + a: Integer; +begin + if n = 0 then begin + Result := MulStr('0', MinCount); + Exit; end; + + Result := ''; + while n > 0 do begin + a := n and 1; + Result := Char(a + Byte('0')) + Result; + n := n shr 1; + end; + Result := MulStr('0', MinCount - Length(Result)) + Result; +end; + +function BaseNOfInt(I: Cardinal; B: TBaseN): string; +var + a: Integer; +begin + if (B < 2) or (i = 0) then begin + Result := '0'; + Exit; end; + + Result := ''; + while i > 0 do begin + a := i mod B; + Result := BaseNChar[a] + Result; + i := i div B; + end; +end; + +function IntOfBaseN(V: string; B: TBaseN): Cardinal; +var + i: Integer; + F: Cardinal; + c: Byte; +begin + Result := 0; + V := TrimAll(V); + F := 1; + for i := Length(V) downto 1 do begin + c := Byte(UpCase(V[i])); + case Char(c) of + '0'..'9': c := c - 48; + 'A'..'Z': c := c - 55; + end; + if c < B then + Result := Result + Byte(c) * F; + F := F * B; + end; +end; + +function KeepIn(i, Bottom, Top: Variant): Variant; +begin + Result := i; + if Result > Top then + Result := Top + else if Result < Bottom then + Result := Bottom; +end; + +function InRange(Value, Bottom, Top: Variant): Boolean; +begin + Result := (Value >= Bottom) and (Value <= Top); +end; + +function InStrictRange(Value, Bottom, Top: Variant): Boolean; +begin + Result := (Value > Bottom) and (Value < Top); +end; + +function Min(const A, B: Integer): Integer; +begin + if A < B then + Result := A + else + Result := B; +end; + +function Min(const A: TIntA): Integer; +var + i: Integer; +begin + Result := 0; + if Length(A) = 0 then + Exit; + + Result := A[0]; + for i := 1 to High(A) do + if A[i] < Result then + Result := A[i]; +end; + +function Max(const A, B: Integer): Integer; +begin + if A > B then + Result := A + else + Result := B; +end; + +function Max(const A: TIntA): Integer; +var + i: Integer; +begin + Result := 0; + if Length(A) = 0 then + Exit; + + Result := A[0]; + for i := 1 to High(A) do + if A[i] > Result then + Result := A[i]; +end; + +function RangesOfStr(const S: string): TRanges; +var + SL: TStringList; + r, b, t: string; + i, p: Integer; + + function TryStrToCard(const S: string; out Value: Cardinal): Boolean; + var + E: Integer; + begin + Val(S, Value, E); + Result := E = 0; + end; + +begin + Result := nil; + SL := TStringList.Create; + try + Split(S, RangesSeparator, SL); + SetLength(Result, SL.Count); + for i := 0 to SL.Count-1 do begin + r := SL[i]; + with Result[i] do begin + p := CharPos(RangeInnerSeparator, r); + Simple := p = 0; // no '-' found + if Simple then begin + if r = RangeInfinite then begin // * --> *-* + Simple := False; + Bottom := Low(Bottom); + Top := High(Top); + end else if not TryStrToCard(r, Value) then + Break; + + end else begin + TileStr(r, p, p, b, t); + + if b = RangeInfinite then + Bottom := Low(Bottom) + else if not TryStrToCard(b, Bottom) then + Break; + + if t = RangeInfinite then + Top := High(Top) + else if not TryStrToCard(t, Top) then + Break; + if Bottom > Top then begin + p := Bottom; Bottom := Top; Top := p; + end; + end; + end; + end; + + if i <> SL.Count then + Result := nil; + + finally + SL.Free; + end; +end; + +function InRanges(Ranges: TRanges; TestValue: Cardinal): Boolean; +var + i: Integer; +begin + Result := True; + + for i := 0 to High(Ranges) do + with Ranges[i] do + if Simple then begin + if TestValue = Value then + Exit; + end else begin + if InRange(TestValue, Bottom, Top) then + Exit; + end; + + Result := False; +end; + +procedure WriteSL(Strings: TStrings; const Prefix: string = ''; + const Suffix: string = ''); +var + i: Integer; +begin + for i := 0 to Strings.Count-1 do + WriteLn(Prefix + Strings[i] + Suffix); +end; + +function Success(Res: Integer; ResultOnSuccess: Integer = ERROR_SUCCESS): Boolean; +begin + Result := (Res = ResultOnSuccess); + LastSuccessRes := Res; +end; + +function Failure(Res: Integer; ResultOnSuccess: Integer = ERROR_SUCCESS): Boolean; +begin + Result := not Success(Res, ResultOnSuccess); +end; + +function ExpandString(const S: string): string; +var + Len: Integer; + P, Res: PChar; +begin + Result := ''; + P := PChar(S); + Len := ExpandEnvironmentStrings(P, nil, 0); + if Len = 0 then + Exit; + + GetMem(Res, Len); + ExpandEnvironmentStrings(P, Res, Len); + + Result := Res; + FreeMem(Res, Len); +end; + +function FindAll(Strings: TStrings; const Mask: string; + ScanSubDirs: Boolean = True; Attributes: Integer = faFindEveryFile; + FileReturn: TFileNameFunc = nil): Boolean; +var + Path, FileName: string; + + procedure ScanDir(const Path, FileName: string); + var + PSR: TSearchRec; + Res: Integer; + + procedure Add(const S: string); + begin + if S <> '' then + Strings.Add(S); + end; + + begin + Res := FindFirst(Path + FileName, Attributes, PSR); + while Success(Res, 0) do begin + if Assigned(FileReturn) then + Add(FileReturn(Path + PSR.Name)) + else + Add(Path + PSR.Name); + Res := FindNext(PSR); + end; + FindClose(PSR); + if not ScanSubDirs then + Exit; + + Res := FindFirst(Path + '*', faDirectory, PSR); + while Success(Res, 0) do begin + if (PSR.Attr and faDirectory > 0) + and (PSR.Name <> '.') and (PSR.Name <> '..') then + ScanDir(Path + PSR.Name + '\', FileName); + Res := FindNext(PSR); + end; + FindClose(PSR); + end; + +begin + Strings.Clear; + Path := ExtractPath(Mask); + FileName := ExtractFileName(Mask); + ScanDir(Path, FileName); + Result := Strings.Count > 0; +end; + +function FindAllFirst(const Mask: string; ScanSubDirs: Boolean = True; + Attributes: Integer = faFindEveryFile): string; +var + Path, FileName: string; + + function ScanDir(const Path, FileName: string): Boolean; + var + PSR: TSearchRec; + Res: Integer; + begin + Result := False; + if Success(FindFirst(Path + FileName, Attributes, PSR), 0) then begin + FindAllFirst := Path + PSR.Name; + Result := True; + FindClose(PSR); + Exit; end; + if not ScanSubDirs then + Exit; + + Res := FindFirst(Path + '*', faDirectory, PSR); + while not Result and Success(Res, 0) do begin + if (PSR.Attr and faDirectory > 0) + and (PSR.Name <> '.') and (PSR.Name <> '..') then + Result := ScanDir(Path + PSR.Name + '\', FileName); + Res := FindNext(PSR); + end; + FindClose(PSR); + end; +begin + Result := ''; + Path := ExtractPath(Mask); + FileName := ExtractFileName(Mask); + ScanDir(Path, FileName); +end; + +procedure DeleteFiles(const Mask: string; ScanSubDirs: Boolean = True; + Attributes: Integer = faFindEveryFile); +var + Path, FileName: string; + + procedure ScanDir(const Path, FileName: string); + var + PSR: TSearchRec; + Res: Integer; + + procedure TryDeleteFile(const FileName: string); + begin + try + DeleteFile(Path + PSR.Name); + except + end; + end; + + begin + Res := FindFirst(Path + FileName, Attributes, PSR); + while Success(Res, 0) do begin + TryDeleteFile(Path + PSR.Name); + Res := FindNext(PSR); + end; + FindClose(PSR); + if not ScanSubDirs then + Exit; + + Res := FindFirst(Path + '*', faDirectory, PSR); + while Success(Res, 0) do begin + if (PSR.Attr and faDirectory > 0) + and (PSR.Name <> '.') and (PSR.Name <> '..') then begin + ScanDir(Path + PSR.Name + '\', FileName); + TryDeleteFile(Path + PSR.Name); + end; + Res := FindNext(PSR); + end; + FindClose(PSR); + end; +begin + Path := ExtractPath(Mask); + FileName := ExtractFileName(Mask); + ScanDir(Path, FileName); +end; + +function GetFileNew(FileName: string; NoFloppyDrives: Boolean = True): string; +var + Drive: string; + pf, pd, Len: Integer; + PSR: TSearchRec; +begin + Result := ''; + FileName := Trim(FileName); + if Length(FileName) < 2 then + Exit; + + Drive := ExtractDrive(FileName); + if not DirectoryExists(Drive) then + Exit; + + if NoFloppyDrives and (Drive[1] in ['A', 'B']) then + Exit; + + Len := Length(FileName); + Result := Drive; + pf := Length(Drive) + 1; + while pf <= Len do begin + if FileName[pf] = '\' then begin + Result := Result + '\'; + Inc(pf); + Continue; end; + + pd := CharPos('\', FileName, pf); + if pd = 0 then begin + if 0=FindFirst(Result + Copy(FileName, pf, MaxInt), faFindEveryFile, PSR) then begin + Result := Result + PSR.Name; + Break; end else begin + FindClose(PSR); + if 0=FindFirst(Result + Copy(FileName, pf, MaxInt), faDirectory, PSR) then + Result := Result + PSR.Name + '\' + else + Result := ''; + FindClose(PSR); + if Result = '' then + Break; + end; + end; + + if 0=FindFirst(Result + Copy(FileName, pf, pd - pf), faDirectory, PSR) then + Result := Result + PSR.Name + '\' + else + Result := ''; + FindClose(PSR); + if Result = '' then + Break; + + pf := pd + 1; + end; + + if (Result <> '') and not FileEx(Result, True) then + Result := ''; +end; + +function DateTimeOfFileTime(const FileTime: TFileTime): TDateTime; +var + LocalFileTime: TFileTime; + Res: Integer; +begin + Result := 0; + + FileTimeToLocalFileTime(FileTime, LocalFileTime); + if not FileTimeToDosDateTime(LocalFileTime, LongRec(Res).Hi, + LongRec(Res).Lo) then + Res := -1; + + if (Res = -1) or (Res = 0) then + Exit; + try + Result := FileDateToDateTime(Res); + except + end; +end; + +procedure FileNew(const FileName: string); +var + Handle: Integer; +begin + Handle := FileCreate(FileName); + FileClose(Handle); +end; + +function Win32PlatformStr: string; +const + PlatformStrings: array[VER_PLATFORM_WIN32s..VER_PLATFORM_WIN32_NT] of string = + ('VER_PLATFORM_WIN32s', 'VER_PLATFORM_WIN32_WINDOWS', 'VER_PLATFORM_WIN32_NT'); +begin + Result := PlatformStrings[Win32Platform]; +end; + +function FullOSInfo: string; +begin + Result := Format( + 'Platform: %s' + EOL + + 'Version: %d.%d Build %d' + EOL + + 'CSD: %s', + [ + Win32PlatformStr, + Win32MajorVersion, Win32MinorVersion, Win32BuildNumber, + Win32CSDVersion + ] + ); +end; + +function Win9x: Boolean; +begin + Result := Win32Platform = VER_PLATFORM_WIN32_WINDOWS; +end; + +function WinNT: Boolean; +begin + Result := Win32Platform = VER_PLATFORM_WIN32_NT; +end; + +function Win2000: Boolean; +begin + Result := (Win32Platform = VER_PLATFORM_WIN32_NT) + and (Win32MajorVersion = 4); +end; + +function WinXP: Boolean; +begin + Result := Win32MajorVersion >= 5; +end; + +initialization + MyDir := GetMyDir; + +end. + +unit FifoStream; + +interface + +uses Classes, windows, Dialogs; + +const + DefaultChunksize = 32768; // 32kb per chunk as default. + +type + PMemChunk = ^TMemChunk; + TMemChunk = record + Filled: Longword; + Read: Longword; + Data: pointer; + end; + + TFifo = class + private + FBuffers: TList; + FChunksize: Longword; + FCritSect: TRTLCriticalSection; + FIsWinNT: boolean; + FBytesInFifo: LongWord; + protected + function GetBytesInFifo: LongWord; + public + constructor Create; + destructor Destroy; override; + procedure Write(Data: pointer; Size: LongWord); + procedure Read(Buff: pointer; var ReqSize: LongWord); + procedure PeekData(Buff: pointer; var ReqSize: LongWord); + published + property BytesInFifo: LongWord read FBytesInFifo; + end; + +implementation + +constructor TFifo.Create; +begin + inherited; + FBuffers := TList.Create; + // set default chunksize... + FChunksize := DefaultChunksize; + InitializeCriticalSection(FCritSect); +end; + +destructor TFifo.Destroy; +var + I: Integer; +begin + EnterCriticalSection(FCritSect); + for I := 0 to FBuffers.count - 1 do + begin + FreeMem(PMemChunk(Fbuffers[I]).Data); + Dispose(PMemChunk(Fbuffers[I])); + end; + FBuffers.Clear; + FBuffers.Free; + LeaveCriticalSection(FCritSect); + + DeleteCriticalSection(FCritSect); + inherited; +end; + +function TFifo.GetBytesInFifo: LongWord; +begin + Result := 0; + if FBuffers.Count = 0 then + begin + exit; + end + else + begin + if FBuffers.Count > 1 then + Inc(Result, (FBuffers.Count - 1) * FChunkSize); + Inc(Result, PMemChunk(FBuffers[Fbuffers.Count - 1]).Filled); + Dec(Result, PMemChunk(FBuffers[0]).Read); + end; +end; + +procedure TFifo.Write(Data: pointer; Size: LongWord); +var + Privpointer: pointer; + PrivSize: LongWord; + Chunk: PMemChunk; + PosInChunk: pointer; +begin + if LongWord(Data) = 0 then + begin + // null pointer? somebody is trying to fool us, get out... + Exit; + end; + EnterCriticalSection(FCritSect); + PrivPointer := Data; + PrivSize := 0; + // are already buffers there? + if FBuffers.count > 0 then + begin + // is the last one of them not completely filled? + if PMemChunk(FBuffers[FBuffers.count - 1]).filled < FChunksize then + // not completely filled, so fill up the buffer. + begin + Chunk := PMemChunk(FBuffers[FBuffers.count - 1]); + // fetch chunkdata. + PosInChunk := Chunk.Data; + // move to current fill pos... + Inc(LongWord(PosInChunk), Chunk.Filled); + // can we fill the chunk completely? + if Size > FChunksize - Chunk.Filled then + begin + // yes we can. + Move(PrivPointer^, PosInChunk^, FChunksize - Chunk.Filled); + Inc(PrivSize, FChunksize - Chunk.Filled); + Inc(LongWord(PrivPointer), FChunksize - Chunk.Filled); + Chunk.Filled := FChunkSize; + end + else + // we have to less data for filling the chunk completely, + // just put everything in. + begin + Move(PrivPointer^, PosInChunk^, Size); + Inc(PrivSize, Size); + Inc(Chunk.Filled, Size); + end; + end; + end; + // as long as we have remaining stuff put it into new chunks. + while (PrivSize < Size) do + begin + new(Chunk); + GetMem(Chunk.Data, FChunksize); + Chunk.Read := 0; + // can we fill an entire chunk with the remaining data? + if Privsize + FChunksize < Size then + begin + // yes we can, so put the stuff in. + Move(Privpointer^, Chunk.Data^, FChunksize); + Inc(LongWord(PrivPointer), FChunksize); + Inc(PrivSize, FChunksize); + Chunk.Filled := FChunksize; + end + else // we have to less data to fill the entire chunk, just put the remaining stuff in. + begin + Move(Privpointer^, Chunk.Data^, Size - Privsize); + Chunk.Filled := Size - Privsize; + Inc(PrivSize, Size - Privsize); + end; + Fbuffers.Add(Chunk); + end; + if Size <> Privsize then + Showmessage('miscalculation in TFifo.write'); + FBytesInFifo := GetBytesInFifo; + LeaveCriticalSection(FCritSect); +end; + +procedure TFifo.Read(Buff: pointer; var ReqSize: LongWord); +var + PrivSize: Integer; + Privpos: pointer; + Chunk: PMemChunk; + ChunkPos: pointer; +begin + if LongWord(Buff) = 0 then + begin + // null pointer? somebody is trying to fool us, get out... + Exit; + end; + EnterCriticalSection(FCritSect); + PrivSize := 0; + Privpos := Buff; + while FBuffers.Count > 0 do + begin + Chunk := PMemChunk(FBuffers[0]); + ChunkPos := Chunk.data; + Inc(LongWord(ChunkPos), Chunk.Read); + // does the remaining part of the chunk fit into the buffer? + if PrivSize + (Chunk.Filled - Chunk.read) < ReqSize then + begin // yep, it fits + Move(ChunkPos^, Privpos^, Chunk.Filled - Chunk.read); + Inc(PrivSize, Chunk.Filled - Chunk.read); + FreeMem(Chunk.Data); + Dispose(Chunk); + FBuffers.Delete(0); + end + else // remaining part didn't fit, get as much as we can and increment the + // read attribute. + begin + Move(ChunkPos^, Privpos^, ReqSize - PrivSize); + Inc(Chunk.read, ReqSize - PrivSize); + Inc(PrivSize, ReqSize - PrivSize); + // as we filled the buffer, we'll have to break here. + break; + end; + end; + FBytesInFifo := GetBytesInFifo; + LeaveCriticalSection(FCritSect); + ReqSize := PrivSize; +end; + +// read Data from Stream without removing it from the Stream... + +procedure TFifo.PeekData(Buff: pointer; var ReqSize: LongWord); +var + PrivSize: Integer; + Privpos: pointer; + Chunk: PMemChunk; + ChunkPos: pointer; + ChunkNr: Integer; +begin + if LongWord(Buff) = 0 then + begin + // null pointer? somebody is trying to fool us, get out... + Exit; + end; + EnterCriticalSection(FCritSect); + PrivSize := 0; + Privpos := Buff; + ChunkNr := 0; + while FBuffers.Count > ChunkNr do + begin + Chunk := PMemChunk(FBuffers[ChunkNr]); + ChunkPos := Chunk.data; + Inc(LongWord(ChunkPos), Chunk.Read); + // does the remaining part of the chunk fit into the buffer? + if PrivSize + (Chunk.Filled - Chunk.read) < ReqSize then + begin // yep, it fits + Move(ChunkPos^, Privpos^, Chunk.Filled - Chunk.read); + Inc(PrivSize, Chunk.Filled - Chunk.read); + Inc(ChunkNr); + end + else // remaining part didn't fit, get as much as we can and increment the + // read attribute. + begin + Move(ChunkPos^, Privpos^, ReqSize - PrivSize); + Inc(PrivSize, ReqSize - PrivSize); + // as we filled the buffer, we'll have to break here. + break; + end; + end; + LeaveCriticalSection(FCritSect); + ReqSize := PrivSize; +end; + +end. Added: external/Pygments-0.9/tests/examplefiles/example.rb ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/example.rb Tue Oct 23 20:20:22 2007 @@ -0,0 +1,1852 @@ +module CodeRay + module Scanners + +class Ruby < Scanner + + RESERVED_WORDS = [ + 'and', 'def', 'end', 'in', 'or', 'unless', 'begin', + 'defined?', 'ensure', 'module', 'redo', 'super', 'until', + 'BEGIN', 'break', 'do', 'next', 'rescue', 'then', + 'when', 'END', 'case', 'else', 'for', 'retry', + 'while', 'alias', 'class', 'elsif', 'if', 'not', 'return', + 'undef', 'yield', + ] + + DEF_KEYWORDS = ['def'] + MODULE_KEYWORDS = ['class', 'module'] + DEF_NEW_STATE = WordList.new(:initial). + add(DEF_KEYWORDS, :def_expected). + add(MODULE_KEYWORDS, :module_expected) + + WORDS_ALLOWING_REGEXP = [ + 'and', 'or', 'not', 'while', 'until', 'unless', 'if', 'elsif', 'when' + ] + REGEXP_ALLOWED = WordList.new(false). + add(WORDS_ALLOWING_REGEXP, :set) + + PREDEFINED_CONSTANTS = [ + 'nil', 'true', 'false', 'self', + 'DATA', 'ARGV', 'ARGF', '__FILE__', '__LINE__', + ] + + IDENT_KIND = WordList.new(:ident). + add(RESERVED_WORDS, :reserved). + add(PREDEFINED_CONSTANTS, :pre_constant) + + METHOD_NAME = / #{IDENT} [?!]? /xo + METHOD_NAME_EX = / + #{METHOD_NAME} # common methods: split, foo=, empty?, gsub! + | \*\*? # multiplication and power + | [-+~]@? # plus, minus + | [\/%&|^`] # division, modulo or format strings, &and, |or, ^xor, `system` + | \[\]=? # array getter and setter + | <=?>? | >=? # comparison, rocket operator + | << | >> # append or shift left, shift right + | ===? # simple equality and case equality + /ox + GLOBAL_VARIABLE = / \$ (?: #{IDENT} | \d+ | [~&+`'=\/,;_.<>!@0$?*":F\\] | -[a-zA-Z_0-9] ) /ox + + DOUBLEQ = / " [^"\#\\]* (?: (?: \#\{.*?\} | \#(?:$")? | \\. ) [^"\#\\]* )* "? /ox + SINGLEQ = / ' [^'\\]* (?: \\. [^'\\]* )* '? /ox + STRING = / #{SINGLEQ} | #{DOUBLEQ} /ox + SHELL = / ` [^`\#\\]* (?: (?: \#\{.*?\} | \#(?:$`)? | \\. ) [^`\#\\]* )* `? /ox + REGEXP = / \/ [^\/\#\\]* (?: (?: \#\{.*?\} | \#(?:$\/)? | \\. ) [^\/\#\\]* )* \/? /ox + + DECIMAL = /\d+(?:_\d+)*/ # doesn't recognize 09 as octal error + OCTAL = /0_?[0-7]+(?:_[0-7]+)*/ + HEXADECIMAL = /0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*/ + BINARY = /0b[01]+(?:_[01]+)*/ + + EXPONENT = / [eE] [+-]? #{DECIMAL} /ox + FLOAT = / #{DECIMAL} (?: #{EXPONENT} | \. #{DECIMAL} #{EXPONENT}? ) / + INTEGER = /#{OCTAL}|#{HEXADECIMAL}|#{BINARY}|#{DECIMAL}/ + + def reset + super + @regexp_allowed = false + end + + def next_token + return if @scanner.eos? + + kind = :error + if @scanner.scan(/\s+/) # in every state + kind = :space + @regexp_allowed = :set if @regexp_allowed or @scanner.matched.index(?\n) # delayed flag setting + + elsif @state == :def_expected + if @scanner.scan(/ (?: (?:#{IDENT}(?:\.|::))* | (?:@@?|$)? #{IDENT}(?:\.|::) ) #{METHOD_NAME_EX} /ox) + kind = :method + @state = :initial + else + @scanner.getch + end + @state = :initial + + elsif @state == :module_expected + if @scanner.scan(/<#\\\\]*(?:(?:#\{.*?\}|#|\\\\.)[^>#\\\\]*)*>?|([^a-zA-Z\\\\])(?:(?!\1)[^#\\\\])*(?:(?:#\{.*?\}|#|\\\\.)(?:(?!\1)[^#\\\\])*)*\1?)|\([^)#\\\\]*(?:(?:#\{.*?\}|#|\\\\.)[^)#\\\\]*)*\)?|\[[^\]#\\\\]*(?:(?:#\{.*?\}|#|\\\\.)[^\]#\\\\]*)*\]?|\{[^}#\\\\]*(?:(?:#\{.*?\}|#|\\\\.)[^}#\\\\]*)*\}?|<[^>#\\\\]*(?:(?:#\{.*?\}|#|\\\\.)[^>#\\\\]*)*>?|([^a-zA-Z\s\\\\])(?:(?!\2)[^#\\\\])*(?:(?:#\{.*?\}|#|\\\\.)(?:(?!\2)[^#\\\\])*)*\2?|\\\\[^#\\\\]*(?:(?:#\{.*?\}|#)[^#\\\\]*)*\\\\?)/ + elsif @scanner.scan(/:(?:#{GLOBAL_VARIABLE}|#{METHOD_NAME_EX}|#{STRING})/ox) + kind = :symbol + elsif @scanner.scan(/ + \? (?: + [^\s\\] + | + \\ (?:M-\\C-|C-\\M-|M-\\c|c\\M-|c|C-|M-))? (?: \\ (?: . | [0-7]{3} | x[0-9A-Fa-f][0-9A-Fa-f] ) + ) + /mox) + kind = :integer + + elsif @scanner.scan(/ [-+*\/%=<>;,|&!()\[\]{}~?] | \.\.?\.? | ::? /x) + kind = :operator + @regexp_allowed = :set if @scanner.matched[-1,1] =~ /[~=!<>|&^,\(\[+\-\/\*%]\z/ + elsif @scanner.scan(FLOAT) + kind = :float + elsif @scanner.scan(INTEGER) + kind = :integer + else + @scanner.getch + end + end + + token = Token.new @scanner.matched, kind + + if kind == :regexp + token.text << @scanner.scan(/[eimnosux]*/) + end + + @regexp_allowed = (@regexp_allowed == :set) # delayed flag setting + + token + end +end + +register Ruby, 'ruby', 'rb' + + end +end +class Set + include Enumerable + + # Creates a new set containing the given objects. + def self.[](*ary) + new(ary) + end + + # Creates a new set containing the elements of the given enumerable + # object. + # + # If a block is given, the elements of enum are preprocessed by the + # given block. + def initialize(enum = nil, &block) # :yields: o + @hash ||= Hash.new + + enum.nil? and return + + if block + enum.each { |o| add(block[o]) } + else + merge(enum) + end + end + + # Copy internal hash. + def initialize_copy(orig) + @hash = orig.instance_eval{@hash}.dup + end + + # Returns the number of elements. + def size + @hash.size + end + alias length size + + # Returns true if the set contains no elements. + def empty? + @hash.empty? + end + + # Removes all elements and returns self. + def clear + @hash.clear + self + end + + # Replaces the contents of the set with the contents of the given + # enumerable object and returns self. + def replace(enum) + if enum.class == self.class + @hash.replace(enum.instance_eval { @hash }) + else + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" + clear + enum.each { |o| add(o) } + end + + self + end + + # Converts the set to an array. The order of elements is uncertain. + def to_a + @hash.keys + end + + def flatten_merge(set, seen = Set.new) + set.each { |e| + if e.is_a?(Set) + if seen.include?(e_id = e.object_id) + raise ArgumentError, "tried to flatten recursive Set" + end + + seen.add(e_id) + flatten_merge(e, seen) + seen.delete(e_id) + else + add(e) + end + } + + self + end + protected :flatten_merge + + # Returns a new set that is a copy of the set, flattening each + # containing set recursively. + def flatten + self.class.new.flatten_merge(self) + end + + # Equivalent to Set#flatten, but replaces the receiver with the + # result in place. Returns nil if no modifications were made. + def flatten! + if detect { |e| e.is_a?(Set) } + replace(flatten()) + else + nil + end + end + + # Returns true if the set contains the given object. + def include?(o) + @hash.include?(o) + end + alias member? include? + + # Returns true if the set is a superset of the given set. + def superset?(set) + set.is_a?(Set) or raise ArgumentError, "value must be a set" + return false if size < set.size + set.all? { |o| include?(o) } + end + + # Returns true if the set is a proper superset of the given set. + def proper_superset?(set) + set.is_a?(Set) or raise ArgumentError, "value must be a set" + return false if size <= set.size + set.all? { |o| include?(o) } + end + + # Returns true if the set is a subset of the given set. + def subset?(set) + set.is_a?(Set) or raise ArgumentError, "value must be a set" + return false if set.size < size + all? { |o| set.include?(o) } + end + + # Returns true if the set is a proper subset of the given set. + def proper_subset?(set) + set.is_a?(Set) or raise ArgumentError, "value must be a set" + return false if set.size <= size + all? { |o| set.include?(o) } + end + + # Calls the given block once for each element in the set, passing + # the element as parameter. + def each + @hash.each_key { |o| yield(o) } + self + end + + # Adds the given object to the set and returns self. Use +merge+ to + # add several elements at once. + def add(o) + @hash[o] = true + self + end + alias << add + + # Adds the given object to the set and returns self. If the + # object is already in the set, returns nil. + def add?(o) + if include?(o) + nil + else + add(o) + end + end + + # Deletes the given object from the set and returns self. Use +subtract+ to + # delete several items at once. + def delete(o) + @hash.delete(o) + self + end + + # Deletes the given object from the set and returns self. If the + # object is not in the set, returns nil. + def delete?(o) + if include?(o) + delete(o) + else + nil + end + end + + # Deletes every element of the set for which block evaluates to + # true, and returns self. + def delete_if + @hash.delete_if { |o,| yield(o) } + self + end + + # Do collect() destructively. + def collect! + set = self.class.new + each { |o| set << yield(o) } + replace(set) + end + alias map! collect! + + # Equivalent to Set#delete_if, but returns nil if no changes were + # made. + def reject! + n = size + delete_if { |o| yield(o) } + size == n ? nil : self + end + + # Merges the elements of the given enumerable object to the set and + # returns self. + def merge(enum) + if enum.is_a?(Set) + @hash.update(enum.instance_eval { @hash }) + else + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" + enum.each { |o| add(o) } + end + + self + end + + # Deletes every element that appears in the given enumerable object + # and returns self. + def subtract(enum) + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" + enum.each { |o| delete(o) } + self + end + + # Returns a new set built by merging the set and the elements of the + # given enumerable object. + def |(enum) + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" + dup.merge(enum) + end + alias + | ## + alias union | ## + + # Returns a new set built by duplicating the set, removing every + # element that appears in the given enumerable object. + def -(enum) + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" + dup.subtract(enum) + end + alias difference - ## + + # Returns a new array containing elements common to the set and the + # given enumerable object. + def &(enum) + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" + n = self.class.new + enum.each { |o| n.add(o) if include?(o) } + n + end + alias intersection & ## + + # Returns a new array containing elements exclusive between the set + # and the given enumerable object. (set ^ enum) is equivalent to + # ((set | enum) - (set & enum)). + def ^(enum) + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" + n = dup + enum.each { |o| if n.include?(o) then n.delete(o) else n.add(o) end } + n + end + + # Returns true if two sets are equal. The equality of each couple + # of elements is defined according to Object#eql?. + def ==(set) + equal?(set) and return true + + set.is_a?(Set) && size == set.size or return false + + hash = @hash.dup + set.all? { |o| hash.include?(o) } + end + + def hash # :nodoc: + @hash.hash + end + + def eql?(o) # :nodoc: + return false unless o.is_a?(Set) + @hash.eql?(o.instance_eval{@hash}) + end + + # Classifies the set by the return value of the given block and + # returns a hash of {value => set of elements} pairs. The block is + # called once for each element of the set, passing the element as + # parameter. + # + # e.g.: + # + # require 'set' + # files = Set.new(Dir.glob("*.rb")) + # hash = files.classify { |f| File.mtime(f).year } + # p hash # => {2000=>#, + # # 2001=>#, + # # 2002=>#} + def classify # :yields: o + h = {} + + each { |i| + x = yield(i) + (h[x] ||= self.class.new).add(i) + } + + h + end + + # Divides the set into a set of subsets according to the commonality + # defined by the given block. + # + # If the arity of the block is 2, elements o1 and o2 are in common + # if block.call(o1, o2) is true. Otherwise, elements o1 and o2 are + # in common if block.call(o1) == block.call(o2). + # + # e.g.: + # + # require 'set' + # numbers = Set[1, 3, 4, 6, 9, 10, 11] + # set = numbers.divide { |i,j| (i - j).abs == 1 } + # p set # => #, + # # #, + # # #, + # # #}> + def divide(&func) + if func.arity == 2 + require 'tsort' + + class << dig = {} # :nodoc: + include TSort + + alias tsort_each_node each_key + def tsort_each_child(node, &block) + fetch(node).each(&block) + end + end + + each { |u| + dig[u] = a = [] + each{ |v| func.call(u, v) and a << v } + } + + set = Set.new() + dig.each_strongly_connected_component { |css| + set.add(self.class.new(css)) + } + set + else + Set.new(classify(&func).values) + end + end + + InspectKey = :__inspect_key__ # :nodoc: + + # Returns a string containing a human-readable representation of the + # set. ("#") + def inspect + ids = (Thread.current[InspectKey] ||= []) + + if ids.include?(object_id) + return sprintf('#<%s: {...}>', self.class.name) + end + + begin + ids << object_id + return sprintf('#<%s: {%s}>', self.class, to_a.inspect[1..-2]) + ensure + ids.pop + end + end + + def pretty_print(pp) # :nodoc: + pp.text sprintf('#<%s: {', self.class.name) + pp.nest(1) { + pp.seplist(self) { |o| + pp.pp o + } + } + pp.text "}>" + end + + def pretty_print_cycle(pp) # :nodoc: + pp.text sprintf('#<%s: {%s}>', self.class.name, empty? ? '' : '...') + end +end + +# SortedSet implements a set which elements are sorted in order. See Set. +class SortedSet < Set + @@setup = false + + class << self + def [](*ary) # :nodoc: + new(ary) + end + + def setup # :nodoc: + @@setup and return + + begin + require 'rbtree' + + module_eval %{ + def initialize(*args, &block) + @hash = RBTree.new + super + end + } + rescue LoadError + module_eval %{ + def initialize(*args, &block) + @keys = nil + super + end + + def clear + @keys = nil + super + end + + def replace(enum) + @keys = nil + super + end + + def add(o) + @keys = nil + @hash[o] = true + self + end + alias << add + + def delete(o) + @keys = nil + @hash.delete(o) + self + end + + def delete_if + n = @hash.size + @hash.delete_if { |o,| yield(o) } + @keys = nil if @hash.size != n + self + end + + def merge(enum) + @keys = nil + super + end + + def each + to_a.each { |o| yield(o) } + end + + def to_a + (@keys = @hash.keys).sort! unless @keys + @keys + end + } + end + + @@setup = true + end + end + + def initialize(*args, &block) # :nodoc: + SortedSet.setup + initialize(*args, &block) + end +end + +module Enumerable + # Makes a set from the enumerable object with given arguments. + def to_set(klass = Set, *args, &block) + klass.new(self, *args, &block) + end +end + +# =begin +# == RestricedSet class +# RestricedSet implements a set with restrictions defined by a given +# block. +# +# === Super class +# Set +# +# === Class Methods +# --- RestricedSet::new(enum = nil) { |o| ... } +# --- RestricedSet::new(enum = nil) { |rset, o| ... } +# Creates a new restricted set containing the elements of the given +# enumerable object. Restrictions are defined by the given block. +# +# If the block's arity is 2, it is called with the RestrictedSet +# itself and an object to see if the object is allowed to be put in +# the set. +# +# Otherwise, the block is called with an object to see if the object +# is allowed to be put in the set. +# +# === Instance Methods +# --- restriction_proc +# Returns the restriction procedure of the set. +# +# =end +# +# class RestricedSet < Set +# def initialize(*args, &block) +# @proc = block or raise ArgumentError, "missing a block" +# +# if @proc.arity == 2 +# instance_eval %{ +# def add(o) +# @hash[o] = true if @proc.call(self, o) +# self +# end +# alias << add +# +# def add?(o) +# if include?(o) || !@proc.call(self, o) +# nil +# else +# @hash[o] = true +# self +# end +# end +# +# def replace(enum) +# enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" +# clear +# enum.each { |o| add(o) } +# +# self +# end +# +# def merge(enum) +# enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" +# enum.each { |o| add(o) } +# +# self +# end +# } +# else +# instance_eval %{ +# def add(o) +# if @proc.call(o) +# @hash[o] = true +# end +# self +# end +# alias << add +# +# def add?(o) +# if include?(o) || !@proc.call(o) +# nil +# else +# @hash[o] = true +# self +# end +# end +# } +# end +# +# super(*args) +# end +# +# def restriction_proc +# @proc +# end +# end + +if $0 == __FILE__ + eval DATA.read, nil, $0, __LINE__+4 +end + +# = rweb - CGI Support Library +# +# Author:: Johannes Barre (mailto:rweb at igels.net) +# Copyright:: Copyright (c) 2003, 04 by Johannes Barre +# License:: GNU Lesser General Public License (COPYING, http://www.gnu.org/copyleft/lesser.html) +# Version:: 0.1.0 +# CVS-ID:: $Id: example.rb 39 2005-11-05 03:33:55Z murphy $ +# +# == What is Rweb? +# Rweb is a replacement for the cgi class included in the ruby distribution. +# +# == How to use +# +# === Basics +# +# This class is made to be as easy as possible to use. An example: +# +# require "rweb" +# +# web = Rweb.new +# web.out do +# web.puts "Hello world!" +# end +# +# The visitor will get a simple "Hello World!" in his browser. Please notice, +# that won't set html-tags for you, so you should better do something like this: +# +# require "rweb" +# +# web = Rweb.new +# web.out do +# web.puts "Hello world!" +# end +# +# === Set headers +# Of course, it's also possible to tell the browser, that the content of this +# page is plain text instead of html code: +# +# require "rweb" +# +# web = Rweb.new +# web.out do +# web.header("content-type: text/plain") +# web.puts "Hello plain world!" +# end +# +# Please remember, headers can't be set after the page content has been send. +# You have to set all nessessary headers before the first puts oder print. It's +# possible to cache the content until everything is complete. Doing it this +# way, you can set headers everywhere. +# +# If you set a header twice, the second header will replace the first one. The +# header name is not casesensitive, it will allways converted in to the +# capitalised form suggested by the w3c (http://w3.org) +# +# === Set cookies +# Setting cookies is quite easy: +# include 'rweb' +# +# web = Rweb.new +# Cookie.new("Visits", web.cookies['visits'].to_i +1) +# web.out do +# web.puts "Welcome back! You visited this page #{web.cookies['visits'].to_i +1} times" +# end +# +# See the class Cookie for more details. +# +# === Get form and cookie values +# There are four ways to submit data from the browser to the server and your +# ruby script: via GET, POST, cookies and file upload. Rweb doesn't support +# file upload by now. +# +# include 'rweb' +# +# web = Rweb.new +# web.out do +# web.print "action: #{web.get['action']} " +# web.puts "The value of the cookie 'visits' is #{web.cookies['visits']}" +# web.puts "The post parameter 'test['x']' is #{web.post['test']['x']}" +# end + +RWEB_VERSION = "0.1.0" +RWEB = "rweb/#{RWEB_VERSION}" + +#require 'rwebcookie' -> edit by bunny :-) + +class Rweb + # All parameter submitted via the GET method are available in attribute + # get. This is Hash, where every parameter is available as a key-value + # pair. + # + # If your input tag has a name like this one, it's value will be available + # as web.get["fieldname"] + # + # You can submit values as a Hash + # + # + # will be available as + # web.get["text"]["index"] + # web.get["text"]["index2"] + # Integers are also possible + # + # + # + # will be available as + # web.get["int"][0] # First Field + # web.get["int"][1] # Second one + # Please notice, this doesn'd work like you might expect: + # + # It will not be available as web.get["text"]["index"] but + # web.get["text[index]"] + attr_reader :get + + # All parameters submitted via POST are available in the attribute post. It + # works like the get attribute. + # + # will be available as + # web.post["text"][0] + attr_reader :post + + # All cookies submitted by the browser are available in cookies. This is a + # Hash, where every cookie is a key-value pair. + attr_reader :cookies + + # The name of the browser identification is submitted as USER_AGENT and + # available in this attribute. + attr_reader :user_agent + + # The IP address of the client. + attr_reader :remote_addr + + # Creates a new Rweb object. This should only done once. You can set various + # options via the settings hash. + # + # "cache" => true: Everything you script send to the client will be cached + # until the end of the out block or until flush is called. This way, you + # can modify headers and cookies even after printing something to the client. + # + # "safe" => level: Changes the $SAFE attribute. By default, $SAFE will be set + # to 1. If $SAFE is already higher than this value, it won't be changed. + # + # "silend" => true: Normaly, Rweb adds automaticly a header like this + # "X-Powered-By: Rweb/x.x.x (Ruby/y.y.y)". With the silend option you can + # suppress this. + def initialize (settings = {}) + # {{{ + @header = {} + @cookies = {} + @get = {} + @post = {} + + # Internal attributes + @status = nil + @reasonPhrase = nil + @setcookies = [] + @output_started = false; + @output_allowed = false; + + @mod_ruby = false + @env = ENV.to_hash + + if defined?(MOD_RUBY) + @output_method = "mod_ruby" + @mod_ruby = true + elsif @env['SERVER_SOFTWARE'] =~ /^Microsoft-IIS/i + @output_method = "nph" + else + @output_method = "ph" + end + + unless settings.is_a?(Hash) + raise TypeError, "settings must be a Hash" + end + @settings = settings + + unless @settings.has_key?("safe") + @settings["safe"] = 1 + end + + if $SAFE < @settings["safe"] + $SAFE = @settings["safe"] + end + + unless @settings.has_key?("cache") + @settings["cache"] = false + end + + # mod_ruby sets no QUERY_STRING variable, if no GET-Parameters are given + unless @env.has_key?("QUERY_STRING") + @env["QUERY_STRING"] = "" + end + + # Now we split the QUERY_STRING by the seperators & and ; or, if + # specified, settings['get seperator'] + unless @settings.has_key?("get seperator") + get_args = @env['QUERY_STRING'].split(/[&;]/) + else + get_args = @env['QUERY_STRING'].split(@settings['get seperator']) + end + + get_args.each do | arg | + arg_key, arg_val = arg.split(/=/, 2) + arg_key = Rweb::unescape(arg_key) + arg_val = Rweb::unescape(arg_val) + + # Parse names like name[0], name['text'] or name[] + pattern = /^(.+)\[("[^\]]*"|'[^\]]*'|[0-9]*)\]$/ + keys = [] + while match = pattern.match(arg_key) + arg_key = match[1] + keys = [match[2]] + keys + end + keys = [arg_key] + keys + + akt = @get + last = nil + lastkey = nil + keys.each do |key| + if key == "" + # No key specified (like in "test[]"), so we use the + # lowerst unused Integer as key + key = 0 + while akt.has_key?(key) + key += 1 + end + elsif /^[0-9]*$/ =~ key + # If the index is numerical convert it to an Integer + key = key.to_i + elsif key[0].chr == "'" || key[0].chr == '"' + key = key[1, key.length() -2] + end + if !akt.has_key?(key) || !akt[key].class == Hash + # create an empty Hash if there isn't already one + akt[key] = {} + end + last = akt + lastkey = key + akt = akt[key] + end + last[lastkey] = arg_val + end + + if @env['REQUEST_METHOD'] == "POST" + if @env.has_key?("CONTENT_TYPE") && @env['CONTENT_TYPE'] == "application/x-www-form-urlencoded" && @env.has_key?('CONTENT_LENGTH') + unless @settings.has_key?("post seperator") + post_args = $stdin.read(@env['CONTENT_LENGTH'].to_i).split(/[&;]/) + else + post_args = $stdin.read(@env['CONTENT_LENGTH'].to_i).split(@settings['post seperator']) + end + post_args.each do | arg | + arg_key, arg_val = arg.split(/=/, 2) + arg_key = Rweb::unescape(arg_key) + arg_val = Rweb::unescape(arg_val) + + # Parse names like name[0], name['text'] or name[] + pattern = /^(.+)\[("[^\]]*"|'[^\]]*'|[0-9]*)\]$/ + keys = [] + while match = pattern.match(arg_key) + arg_key = match[1] + keys = [match[2]] + keys + end + keys = [arg_key] + keys + + akt = @post + last = nil + lastkey = nil + keys.each do |key| + if key == "" + # No key specified (like in "test[]"), so we use + # the lowerst unused Integer as key + key = 0 + while akt.has_key?(key) + key += 1 + end + elsif /^[0-9]*$/ =~ key + # If the index is numerical convert it to an Integer + key = key.to_i + elsif key[0].chr == "'" || key[0].chr == '"' + key = key[1, key.length() -2] + end + if !akt.has_key?(key) || !akt[key].class == Hash + # create an empty Hash if there isn't already one + akt[key] = {} + end + last = akt + lastkey = key + akt = akt[key] + end + last[lastkey] = arg_val + end + else + # Maybe we should print a warning here? + $stderr.print("Unidentified form data recived and discarded.") + end + end + + if @env.has_key?("HTTP_COOKIE") + cookie = @env['HTTP_COOKIE'].split(/; ?/) + cookie.each do | c | + cookie_key, cookie_val = c.split(/=/, 2) + + @cookies [Rweb::unescape(cookie_key)] = Rweb::unescape(cookie_val) + end + end + + if defined?(@env['HTTP_USER_AGENT']) + @user_agent = @env['HTTP_USER_AGENT'] + else + @user_agent = nil; + end + + if defined?(@env['REMOTE_ADDR']) + @remote_addr = @env['REMOTE_ADDR'] + else + @remote_addr = nil + end + # }}} + end + + # Prints a String to the client. If caching is enabled, the String will + # buffered until the end of the out block ends. + def print(str = "") + # {{{ + unless @output_allowed + raise "You just can write to output inside of a Rweb::out-block" + end + + if @settings["cache"] + @buffer += [str.to_s] + else + unless @output_started + sendHeaders + end + $stdout.print(str) + end + nil + # }}} + end + + # Prints a String to the client and adds a line break at the end. Please + # remember, that a line break is not visible in HTML, use the
HTML-Tag + # for this. If caching is enabled, the String will buffered until the end + # of the out block ends. + def puts(str = "") + # {{{ + self.print(str + "\n") + # }}} + end + + # Alias to print. + def write(str = "") + # {{{ + self.print(str) + # }}} + end + + # If caching is enabled, all cached data are send to the cliend and the + # cache emptied. + def flush + # {{{ + unless @output_allowed + raise "You can't use flush outside of a Rweb::out-block" + end + buffer = @buffer.join + + unless @output_started + sendHeaders + end + $stdout.print(buffer) + + @buffer = [] + # }}} + end + + # Sends one or more header to the client. All headers are cached just + # before body data are send to the client. If the same header are set + # twice, only the last value is send. + # + # Example: + # web.header("Last-Modified: Mon, 16 Feb 2004 20:15:41 GMT") + # web.header("Location: http://www.ruby-lang.org") + # + # You can specify more than one header at the time by doing something like + # this: + # web.header("Content-Type: text/plain\nContent-Length: 383") + # or + # web.header(["Content-Type: text/plain", "Content-Length: 383"]) + def header(str) + # {{{ + if @output_started + raise "HTTP-Headers are already send. You can't change them after output has started!" + end + unless @output_allowed + raise "You just can set headers inside of a Rweb::out-block" + end + if str.is_a?Array + str.each do | value | + self.header(value) + end + + elsif str.split(/\n/).length > 1 + str.split(/\n/).each do | value | + self.header(value) + end + + elsif str.is_a? String + str.gsub!(/\r/, "") + + if (str =~ /^HTTP\/1\.[01] [0-9]{3} ?.*$/) == 0 + pattern = /^HTTP\/1.[01] ([0-9]{3}) ?(.*)$/ + + result = pattern.match(str) + self.setstatus(result[0], result[1]) + elsif (str =~ /^status: [0-9]{3} ?.*$/i) == 0 + pattern = /^status: ([0-9]{3}) ?(.*)$/i + + result = pattern.match(str) + self.setstatus(result[0], result[1]) + else + a = str.split(/: ?/, 2) + + @header[a[0].downcase] = a[1] + end + end + # }}} + end + + # Changes the status of this page. There are several codes like "200 OK", + # "302 Found", "404 Not Found" or "500 Internal Server Error". A list of + # all codes is available at + # http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10 + # + # You can just send the code number, the reason phrase will be added + # automaticly with the recommendations from the w3c if not specified. If + # you set the status twice or more, only the last status will be send. + # Examples: + # web.status("401 Unauthorized") + # web.status("410 Sad but true, this lonely page is gone :(") + # web.status(206) + # web.status("400") + # + # The default status is "200 OK". If a "Location" header is set, the + # default status is "302 Found". + def status(str) + # {{{ + if @output_started + raise "HTTP-Headers are already send. You can't change them after output has started!" + end + unless @output_allowed + raise "You just can set headers inside of a Rweb::out-block" + end + if str.is_a?Integer + @status = str + elsif str.is_a?String + p1 = /^([0-9]{3}) ?(.*)$/ + p2 = /^HTTP\/1\.[01] ([0-9]{3}) ?(.*)$/ + p3 = /^status: ([0-9]{3}) ?(.*)$/i + + if (a = p1.match(str)) == nil + if (a = p2.match(str)) == nil + if (a = p3.match(str)) == nil + raise ArgumentError, "Invalid argument", caller + end + end + end + @status = a[1].to_i + if a[2] != "" + @reasonPhrase = a[2] + else + @reasonPhrase = getReasonPhrase(@status) + end + else + raise ArgumentError, "Argument of setstatus must be integer or string", caller + end + # }}} + end + + # Handles the output of your content and rescues all exceptions. Send all + # data in the block to this method. For example: + # web.out do + # web.header("Content-Type: text/plain") + # web.puts("Hello, plain world!") + # end + def out + # {{{ + @output_allowed = true + @buffer = []; # We use an array as buffer, because it's more performant :) + + begin + yield + rescue Exception => exception + $stderr.puts "Ruby exception rescued (#{exception.class}): #{exception.message}" + $stderr.puts exception.backtrace.join("\n") + + unless @output_started + self.setstatus(500) + @header = {} + end + + unless (@settings.has_key?("hide errors") and @settings["hide errors"] == true) + unless @output_started + self.header("Content-Type: text/html") + self.puts "" + self.puts "" + self.puts "" + self.puts "500 Internal Server Error" + self.puts "" + self.puts "" + end + if @header.has_key?("content-type") and (@header["content-type"] =~ /^text\/html/i) == 0 + self.puts "

Internal Server Error

" + self.puts "

The server encountered an exception and was unable to complete your request.

" + self.puts "

The exception has provided the following information:

" + self.puts "
#{exception.class}: #{exception.message} on"
+                    self.puts
+                    self.puts "#{exception.backtrace.join("\n")}
" + self.puts "" + self.puts "" + else + self.puts "The server encountered an exception and was unable to complete your request" + self.puts "The exception has provided the following information:" + self.puts "#{exception.class}: #{exception.message}" + self.puts + self.puts exception.backtrace.join("\n") + end + end + end + + if @settings["cache"] + buffer = @buffer.join + + unless @output_started + unless @header.has_key?("content-length") + self.header("content-length: #{buffer.length}") + end + + sendHeaders + end + $stdout.print(buffer) + elsif !@output_started + sendHeaders + end + @output_allowed = false; + # }}} + end + + # Decodes URL encoded data, %20 for example stands for a space. + def Rweb.unescape(str) + # {{{ + if defined? str and str.is_a? String + str.gsub!(/\+/, " ") + str.gsub(/%.{2}/) do | s | + s[1,2].hex.chr + end + end + # }}} + end + + protected + def sendHeaders + # {{{ + + Cookie.disallow # no more cookies can be set or modified + if !(@settings.has_key?("silent") and @settings["silent"] == true) and !@header.has_key?("x-powered-by") + if @mod_ruby + header("x-powered-by: #{RWEB} (Ruby/#{RUBY_VERSION}, #{MOD_RUBY})"); + else + header("x-powered-by: #{RWEB} (Ruby/#{RUBY_VERSION})"); + end + end + + if @output_method == "ph" + if ((@status == nil or @status == 200) and !@header.has_key?("content-type") and !@header.has_key?("location")) + header("content-type: text/html") + end + + if @status != nil + $stdout.print "Status: #{@status} #{@reasonPhrase}\r\n" + end + + @header.each do |key, value| + key = key *1 # "unfreeze" key :) + key[0] = key[0,1].upcase![0] + + key = key.gsub(/-[a-z]/) do |char| + "-" + char[1,1].upcase + end + + $stdout.print "#{key}: #{value}\r\n" + end + cookies = Cookie.getHttpHeader # Get all cookies as an HTTP Header + if cookies + $stdout.print cookies + end + + $stdout.print "\r\n" + + elsif @output_method == "nph" + elsif @output_method == "mod_ruby" + r = Apache.request + + if ((@status == nil or @status == 200) and !@header.has_key?("content-type") and !@header.has_key?("location")) + header("text/html") + end + + if @status != nil + r.status_line = "#{@status} #{@reasonPhrase}" + end + + r.send_http_header + @header.each do |key, value| + key = key *1 # "unfreeze" key :) + + key[0] = key[0,1].upcase![0] + key = key.gsub(/-[a-z]/) do |char| + "-" + char[1,1].upcase + end + puts "#{key}: #{value.class}" + #r.headers_out[key] = value + end + end + @output_started = true + # }}} + end + + def getReasonPhrase (status) + # {{{ + if status == 100 + "Continue" + elsif status == 101 + "Switching Protocols" + elsif status == 200 + "OK" + elsif status == 201 + "Created" + elsif status == 202 + "Accepted" + elsif status == 203 + "Non-Authoritative Information" + elsif status == 204 + "No Content" + elsif status == 205 + "Reset Content" + elsif status == 206 + "Partial Content" + elsif status == 300 + "Multiple Choices" + elsif status == 301 + "Moved Permanently" + elsif status == 302 + "Found" + elsif status == 303 + "See Other" + elsif status == 304 + "Not Modified" + elsif status == 305 + "Use Proxy" + elsif status == 307 + "Temporary Redirect" + elsif status == 400 + "Bad Request" + elsif status == 401 + "Unauthorized" + elsif status == 402 + "Payment Required" + elsif status == 403 + "Forbidden" + elsif status == 404 + "Not Found" + elsif status == 405 + "Method Not Allowed" + elsif status == 406 + "Not Acceptable" + elsif status == 407 + "Proxy Authentication Required" + elsif status == 408 + "Request Time-out" + elsif status == 409 + "Conflict" + elsif status == 410 + "Gone" + elsif status == 411 + "Length Required" + elsif status == 412 + "Precondition Failed" + elsif status == 413 + "Request Entity Too Large" + elsif status == 414 + "Request-URI Too Large" + elsif status == 415 + "Unsupported Media Type" + elsif status == 416 + "Requested range not satisfiable" + elsif status == 417 + "Expectation Failed" + elsif status == 500 + "Internal Server Error" + elsif status == 501 + "Not Implemented" + elsif status == 502 + "Bad Gateway" + elsif status == 503 + "Service Unavailable" + elsif status == 504 + "Gateway Time-out" + elsif status == 505 + "HTTP Version not supported" + else + raise "Unknown Statuscode. See http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1 for more information." + end + # }}} + end +end + +class Cookie + attr_reader :name, :value, :maxage, :path, :domain, :secure, :comment + + # Sets a cookie. Please see below for details of the attributes. + def initialize (name, value = nil, maxage = nil, path = nil, domain = nil, secure = false) + # {{{ + # HTTP headers (Cookies are a HTTP header) can only set, while no content + # is send. So an exception will be raised, when @@allowed is set to false + # and a new cookie has set. + unless defined?(@@allowed) + @@allowed = true + end + unless @@allowed + raise "You can't set cookies after the HTTP headers are send." + end + + unless defined?(@@list) + @@list = [] + end + @@list += [self] + + unless defined?(@@type) + @@type = "netscape" + end + + unless name.class == String + raise TypeError, "The name of a cookie must be a string", caller + end + if value.class.superclass == Integer || value.class == Float + value = value.to_s + elsif value.class != String && value != nil + raise TypeError, "The value of a cookie must be a string, integer, float or nil", caller + end + if maxage.class == Time + maxage = maxage - Time.now + elsif !maxage.class.superclass == Integer || !maxage == nil + raise TypeError, "The maxage date of a cookie must be an Integer or Time object or nil.", caller + end + unless path.class == String || path == nil + raise TypeError, "The path of a cookie must be nil or a string", caller + end + unless domain.class == String || domain == nil + raise TypeError, "The value of a cookie must be nil or a string", caller + end + unless secure == true || secure == false + raise TypeError, "The secure field of a cookie must be true or false", caller + end + + @name, @value, @maxage, @path, @domain, @secure = name, value, maxage, path, domain, secure + @comment = nil + # }}} + end + + # Modifies the value of this cookie. The information you want to store. If the + # value is nil, the cookie will be deleted by the client. + # + # This attribute can be a String, Integer or Float object or nil. + def value=(value) + # {{{ + if value.class.superclass == Integer || value.class == Float + value = value.to_s + elsif value.class != String && value != nil + raise TypeError, "The value of a cookie must be a string, integer, float or nil", caller + end + @value = value + # }}} + end + + # Modifies the maxage of this cookie. This attribute defines the lifetime of + # the cookie, in seconds. A value of 0 means the cookie should be discarded + # imediatly. If it set to nil, the cookie will be deleted when the browser + # will be closed. + # + # Attention: This is different from other implementations like PHP, where you + # gives the seconds since 1/1/1970 0:00:00 GMT. + # + # This attribute must be an Integer or Time object or nil. + def maxage=(maxage) + # {{{ + if maxage.class == Time + maxage = maxage - Time.now + elsif maxage.class.superclass == Integer || !maxage == nil + raise TypeError, "The maxage of a cookie must be an Interger or Time object or nil.", caller + end + @maxage = maxage + # }}} + end + + # Modifies the path value of this cookie. The client will send this cookie + # only, if the requested document is this directory or a subdirectory of it. + # + # The value of the attribute must be a String object or nil. + def path=(path) + # {{{ + unless path.class == String || path == nil + raise TypeError, "The path of a cookie must be nil or a string", caller + end + @path = path + # }}} + end + + # Modifies the domain value of this cookie. The client will send this cookie + # only if it's connected with this domain (or a subdomain, if the first + # character is a dot like in ".ruby-lang.org") + # + # The value of this attribute must be a String or nil. + def domain=(domain) + # {{{ + unless domain.class == String || domain == nil + raise TypeError, "The domain of a cookie must be a String or nil.", caller + end + @domain = domain + # }}} + end + + # Modifies the secure flag of this cookie. If it's true, the client will only + # send this cookie if it is secured connected with us. + # + # The value od this attribute has to be true or false. + def secure=(secure) + # {{{ + unless secure == true || secure == false + raise TypeError, "The secure field of a cookie must be true or false", caller + end + @secure = secure + # }}} + end + + # Modifies the comment value of this cookie. The comment won't be send, if + # type is "netscape". + def comment=(comment) + # {{{ + unless comment.class == String || comment == nil + raise TypeError, "The comment of a cookie must be a string or nil", caller + end + @comment = comment + # }}} + end + + # Changes the type of all cookies. + # Allowed values are RFC2109 and netscape (default). + def Cookie.type=(type) + # {{{ + unless @@allowed + raise "The cookies are allready send, so you can't change the type anymore." + end + unless type.downcase == "rfc2109" && type.downcase == "netscape" + raise "The type of the cookies must be \"RFC2109\" or \"netscape\"." + end + @@type = type; + # }}} + end + + # After sending this message, no cookies can be set or modified. Use it, when + # HTTP-Headers are send. Rweb does this for you. + def Cookie.disallow + # {{{ + @@allowed = false + true + # }}} + end + + # Returns a HTTP header (type String) with all cookies. Rweb does this for + # you. + def Cookie.getHttpHeader + # {{{ + if defined?(@@list) + if @@type == "netscape" + str = "" + @@list.each do |cookie| + if cookie.value == nil + cookie.maxage = 0 + cookie.value = "" + end + # TODO: Name and value should be escaped! + str += "Set-Cookie: #{cookie.name}=#{cookie.value}" + unless cookie.maxage == nil + expire = Time.now + cookie.maxage + expire.gmtime + str += "; Expire=#{expire.strftime("%a, %d-%b-%Y %H:%M:%S %Z")}" + end + unless cookie.domain == nil + str += "; Domain=#{cookie.domain}" + end + unless cookie.path == nil + str += "; Path=#{cookie.path}" + end + if cookie.secure + str += "; Secure" + end + str += "\r\n" + end + return str + else # type == "RFC2109" + str = "Set-Cookie: " + comma = false; + + @@list.each do |cookie| + if cookie.value == nil + cookie.maxage = 0 + cookie.value = "" + end + if comma + str += "," + end + comma = true + + str += "#{cookie.name}=\"#{cookie.value}\"" + unless cookie.maxage == nil + str += "; Max-Age=\"#{cookie.maxage}\"" + end + unless cookie.domain == nil + str += "; Domain=\"#{cookie.domain}\"" + end + unless cookie.path == nil + str += "; Path=\"#{cookie.path}\"" + end + if cookie.secure + str += "; Secure" + end + unless cookie.comment == nil + str += "; Comment=\"#{cookie.comment}\"" + end + str += "; Version=\"1\"" + end + str + end + else + false + end + # }}} + end +end + +require 'strscan' + +module BBCode + DEBUG = true + + use 'encoder', 'tags', 'tagstack', 'smileys' + +=begin + The Parser class takes care of the encoding. + It scans the given BBCode (as plain text), finds tags + and smilies and also makes links of urls in text. + + Normal text is send directly to the encoder. + + If a tag was found, an instance of a Tag subclass is created + to handle the case. + + The @tagstack manages tag nesting and ensures valid HTML. +=end + + class Parser + class Attribute + # flatten and use only one empty_arg + def self.create attr + attr = flatten attr + return @@empty_attr if attr.empty? + new attr + end + + private_class_method :new + + # remove leading and trailing whitespace; concat lines + def self.flatten attr + attr.strip.gsub(/\n/, ' ') + # -> ^ and $ can only match at begin and end now + end + + ATTRIBUTE_SCAN = / + (?!$) # don't match at end + \s* + ( # $1 = key + [^=\s\]"\\]* + (?: + (?: \\. | "[^"\\]*(?:\\.[^"\\]*)*"? ) + [^=\s\]"\\]* + )* + ) + (?: + = + ( # $2 = value + [^\s\]"\\]* + (?: + (?: \\. | "[^"\\]*(?:\\.[^"\\]*)*"? ) + [^\s\]"\\]* + )* + )? + )? + \s* + /x + + def self.parse source + source = source.dup + # empty_tag: the tag looks like [... /] + # slice!: this deletes the \s*/] at the end + # \s+ because [url=http://rubybb.org/forum/] is NOT an empty tag. + # In RubyBBCode, you can use [url=http://rubybb.org/forum/ /], and this has to be + # interpreted correctly. + empty_tag = source.sub!(/^:/, '=') or source.slice!(/\/$/) + debug 'PARSE: ' + source.inspect + ' => ' + empty_tag.inspect + #-> we have now an attr that's EITHER empty OR begins and ends with non-whitespace. + + attr = Hash.new + attr[:flags] = [] + source.scan(ATTRIBUTE_SCAN) { |key, value| + if not value + attr[:flags] << unescape(key) + else + next if value.empty? and key.empty? + attr[unescape(key)] = unescape(value) + end + } + debug attr.inspect + + return empty_tag, attr + end + + def self.unescape_char esc + esc[1] + end + + def self.unquote qt + qt[1..-1].chomp('"').gsub(/\\./) { |esc| unescape_char esc } + end + + def self.unescape str + str.gsub(/ (\\.) | (" [^"\\]* (?:\\.[^"\\]*)* "?) /x) { + if $1 + unescape_char $1 + else + unquote $2 + end + } + end + + include Enumerable + def each &block + @args.each(&block) + end + + attr_reader :source, :args, :value + + def initialize source + @source = source + debug 'Attribute#new(%p)' % source + @empty_tag, @attr = Attribute.parse source + @value = @attr[''].to_s + end + + def empty? + self == @@empty_attr + end + + def empty_tag? + @empty_tag + end + + def [] *keys + res = @attr[*keys] + end + + def flags + attr[:flags] + end + + def to_s + @attr + end + + def inspect + 'ATTR[' + @attr.inspect + (@empty_tag ? ' | empty tag' : '') + ']' + end + end + class Attribute + @@empty_attr = new '' + end + end + Added: external/Pygments-0.9/tests/examplefiles/example.rhtml ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/example.rhtml Tue Oct 23 20:20:22 2007 @@ -0,0 +1,561 @@ +<% @title = 'Moderatoren-Interface' %> + +
+
<%= link_to 'Proben', :controller => '/admin/proben' %>
+
Die angesetzten Proben des Orchesters
+
<%= link_to 'Auftritte', :controller => '/admin/proben' %>
+
Die Auftritte des Orchesters
+ <%- if @valid_user and @valid_user.admin? -%> +
<%= link_to 'Benutzer', :controller => '/admin/user' %>
+
Benutzer organisieren (nur f??r den Admin)
+ <%- end -%> +
+<% @title = 'Anmeldung' %> + +<%= render :partial => 'user_form', :object => @user %> +<% @title = 'Administrator erstellen' %> + +<%= render :partial => 'user_form', :object => @user %> +<%= form_tag %> + + + + + + + + + + + + +
Name:<%= text_field 'user', 'name' %>
Passwort:<%= password_field 'user', 'password' %>
<%= submit_tag 'Anmelden' %>
+<%= end_form_tag %> +<% @title = 'Neuer Benutzer' -%> +<%= error_messages_for :user %> +<%= render :partial => 'form', :object => @user %> +<%= form_tag %> + + + + + + + + + + + + +
Name:<%= text_field 'user', 'name' %>
Passwort:<%= password_field 'user', 'password' %>
<%= submit_tag 'Anlegen' %>
+<%= end_form_tag %> +<% @title = 'Auftritte' %> + + + <%= render :partial => 'head' %> + <%= render :partial => 'day', :collection => @days %> +
+<% day, auftritte = *day -%> +<% + for auftritt in auftritte +-%> + + + + <%= colorize day.to_s(:dots) if day %> + <% if day and day.wday == 6 %>
Samstag<% end %> + + + <%= colorize auftritt.time %> + + + <%= colorize auftritt.program %> + <%= link_to 'E', :controller => 'admin/auftritte', :action => :edit, :id => auftritt %> + + + <%= colorize(auftritt.place, 'Ort: ') + '
' unless auftritt.place.blank? %> + + + +<% + day = nil + end +-%> + + Datum + Zeit + Programm + Ort + +<% @title = "Besetzung - #{@instrument.name}" %> + +

+<%= pluralize(@members.size, 'Sch??ler spielt', 'Sch??ler spielen') %> <%= h @instrument.name %>: +

+ + + <%= render :partial => 'member', :collection => @members %> +
+<% @title = 'Besetzung: %d Mitglieder' % Member.count -%> + + + + +<%= render :partial => 'member', :collection => @members %> +
+<% @title = "Besetzung - Instrument w??hlen" %> + +
    +<% for instr in @instruments -%> +
  • + <%= link_to h(instr.name), :action => :instrument, :id => instr.name %> + (<%= h instr.members.size %>) +
  • +<% end -%> +
+<% @title = "Besetzung: #{@member.name}" -%> + +
+ +
Instrument / Aufgabe:
+
<%= link_to_instruments_of @member %>
+ +
Geburtstag:
+
<%= h @member.birthday.to_s(:dots) %>
+ +
Adresse:
+
<%= h @member.street %>
<%= h @member.plz %>
+ +
Telefon:
+
<%= h @member.phone %>
+ +
Email:
+
<%= mail_to @member.email, @member.email, :encode => 'javascript' %>
+ +
+ + <%= link_to member.name, :action => :show, :id => member %>: + <%= link_to_instruments_of member %> + + +<% @title = 'Arbeitsgruppen' -%> +

+ Die Arbeitsgruppen sind verantwortlich f??r die Organisation und Durchf??hrung verschiedenster Aufgaben: +

+ +
    + +
  • Plakate und Konzertkarten +
      +
    • Frau Schraps
    • +
    • Paul-Robert Achcenich
    • +
    • Josefine Dahms
    • +
    +
  • + +
  • Noten
    +
      +
    • Frau Puppe
    • +
    • Theresa Rebin
    • +
    +
  • + +
  • Programme
    +
      +
    • ?
    • +
    +
  • + +
  • Instrumentenstransporte
    +
      +
    • Frau Feldmann
    • +
    • Knut M??ller
    • +
    • Patrick Wolter
    • +
    • Alexaner Wolf
    • +
    +
  • + +
  • Internetseite
    +
      +
    • Frau Sternbeck
    • +
    • Uwe Ritzschke
    • +
    • Paul-Robert Achcenich
    • +
    • Knut M??ller
    • +
    • Alexander Wolf
    • +
    +
  • + +
+<% @title = 'Chronik' -%> +

+ Das Jugendsinfonieorchester Marzahn-Hellersdorf wurde im Januar 2005 an der + Musikschule Marzahn-Hellersdorf gegr??ndet und gab im Mai 2005 sein erstes + umjubeltes Konzert im FEZ Wuhlheide. Das Orchester umfasst zur Zeit ca. 65 + jugendliche Musiker und soll auf die Gr????e eines ausgewachsenen + Sinfonieorchesters erweitert werden (80-100 Musiker). +

+ +

+ Als musikalischer Leiter konnte der Dirigent und Echo-Preistr??ger Jobst + Liebrecht gewonnen werden, der die Musikschule schon aus einer fr??heren + Zusammenarbeit anl??sslich der Kinderoper 'Pollicino' von Hans Werner Henze + kennt. Das Orchester probt w??chentlich. Neben den Tuttiproben finden au??erdem + ebenfalls w??chentlich Stimmsatzproben statt, die von Lehrkr??ften betreut werden. + Das gemeinsame Ziel ist der Aufbau eines leistungsstarken, lebendigen + Klangk??rpers, der die Jugendlichen und die Zuh??rer ganz neu und direkt f??r die + Orchestermusik begeistert und diese Musik in den sozialen Brennpunkt Marzahn- + Hellersdorf tr??gt. +

+ +

+ Im Jahr sind etwa 2-3 Konzertprogramme geplant, mit denen wir in Konzerts??len + auftreten. Das erste Konzert des Jugendsinfonieorchesters Marzahn-Hellersdorf + wurde von DeutschlandRadio Kultur aufgezeichnet und in einer Sendung mit dem + Titel „EINSTAND: Nicht nur auf der Strasse herumh??ngen” portr??tiert. + Wir wollen au??erdem vor Ort in Marzahn und Hellersdorf in die ??ffentlichkeit + gehen und spielen, um so f??r die Kultur zu werben und auch weitere Kinder und + Jugendliche f??r die Musik und f??rs Mitmachen zu gewinnen. Durch die Einrichtung + eines zus??tzlichen Vororchesters wird l??ngerfristig versucht, die Arbeit auf ein + breites Fundament zu stellen, eine Werkstatt, ein musikalisches Bauhaus zu + gr??nden. Wenn die Orchesterarbeit erfolgreich angelaufen ist, sollen auch + ??bergreifende Projekte (Theater, Tanz, Chor) stattfinden. +

+ +

+ Das Orchester will Musik von heute spielen in jedem Sinn, ob es sich um St??cke + aus der sinfonischen Tradition handelt oder um zeitgen??ssische Musik. Wir kennen + keine Ber??hrungs??ngste und sind neugierig auf Musik aller Art und m??chten diese + Neugierde mit unserem Publikum teilen. +

+<% @title = 'Dirigent - Jobst Liebrecht' -%> +

+ <%= image_tag 'jobstliebrecht.jpg', :alt => 'Jobst Liebrecht', :title => 'Jobst Liebrecht', :class => 'pic_right' %> + Jobst Liebrecht studierte Dirigieren an der Musikhochschule in M??nchen und bei Peter E??tv??s. Sein spezielles Interesse + f??r neue Musik f??hrte schnell zur Zusammenarbeit mit renommierten Ensembles auf dem Gebiet wie dem Ensemble Modern, + Frankfurt, dem Klangforum-Ensemble, Wien, dem Ensemble K??ln sowie dem Ensemble United Berlin. Aufnahmen entstanden beim + WDR, beim DeutschlandRadio Berlin, beim BR und beim SFB. Er dirigierte u.a. das Rundfunk Sinfonieorchester Berlin, die + Duisburger Philharmoniker und das M??nchner Kammerorchester sowie in den Opernh??usern in Halle und Giessen. Tourneen im + Ausland f??hrten ihn nach Argentinien, Georgien, S??dkorea und in die USA. +

+ +

+ Zu den Ur- und Erstauff??hrungen, die er betreut hat, geh??ren die Opern 'Lunu' von Moritz Eggert, 'Gloria von Jaxtberg' von + HK Gruber sowie in Zusammenarbeit mit dem Regisseur Einar Schleef das Musiktheaterspiel 'Der Golem in Bayreuth' von Ulla + Berkewicz/Lesch Schmidt am Wiener Burgtheater. +

+ +

+ Jobst Liebrecht war mehrere Jahre lang Assistent von Hans Werner Henze und auch immer wieder p??dagogisch t??tig. Seine + Aufnahme von Henzes M??rchenoper 'Pollicino', die als CD bei Wergo erschienen ist, wurde mit dem ECHO-Preis 2004 in der + Sparte 'Klassik f??r Kinder' ausgezeichnet. +

+ +

+ Als Komponist ist Jobst Liebrecht mit Liedern, Kammermusik sowie B??hnenmusiken an die ??ffentlichkeit getreten. +

+<% message, backtrace = session[:boom] -%> +<% @title = 'Fehler in Zeile %d' % [backtrace[/line\s+#(\d+)/,1]] -%> +
+
<%= h message %>
+
+<%= debug backtrace %> +<% cache :action_suffix => (action = params[:action]) do -%> +

+Der Inhalt f??r die Aktion <%= h action.inspect %> fehlt noch. +

+<% end -%> +<% @title = 'Schulferien Berlin' -%> +

+ Unser Orchester besteht zu einem sehr gro??en Teil aus Sch??lern und auch die + Musikschule, der die meisten von uns entstammen, hat in den Schulferien + geschlossen.
+ Deshalb finden innerhalb der Berliner Ferienzeiten keine Proben statt. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Zeitraum200620072008
+ Winter + 30.01. - 03.02. + 05.02. - 10.02. + 04.02. - 09.02.
+ Ostern/Fr??hjahr + 10.04. - 21.04. + 02.04. - 13.04. + 17.03. - 28.03.
+ Himmelf./Pfingsten + 30.04. / 18.05. + 30.04. / 18.05. + 02.05.
+ Sommer + 06.07. - 19.08. + 12.07. - 25.08. + 17.07. - 30.08.
+ Herbst + 02.10. - 14.10. + 15.10. - 27.10. +
+ Weihnachten + 27.12. - 05.01.07 + 24.12. - 04.01.08 +
+<% @title = 'Termine' -%> + +
    +
  • <%= link_to 'Auftritte', :controller => '/auftritte' %>
  • +
  • <%= link_to 'Schulferien', :controller => '/content', :action => :schulferien %>
  • +
+ + + + <%= tag 'meta', :'http-equiv' => 'content-language', :content => 'de' %> + <%= tag 'meta', :'http-equiv' => 'content-type', :content => 'text/html; charset=UTF-8' %> + + + + + + + + + + + + + JSO<%-if @title-%> - <%= h @title %><%- end -%> + <%= stylesheet_link_tag '/rcss/main' %> + <%#= stylesheet_link_tag 'main' %> + <%= javascript_include_tag 'nospam' %> + <%#= javascript_include_tag :defaults %> + + + + + + + + + + + + + + + + + +
+ <%= image_tag 'JSO-Logo.gif', :alt => 'JSO-Logo' %> + + +
jugendsinfonieorchester
+
+<% if valid_user -%> +
    + +
+<% end -%> +<% cache :controller => 'menu', :action => 'main_menu' do -%> + <%= render_component :controller => 'menu', :action => 'index' %> +<% end -%> +
+<% unless @flash.keys.empty? -%> +
+ <%- for kind, msg in @flash -%> +
<%= h msg %>
+ <%- end -%> +
+<% end -%> +<%= content_tag 'h3', h(@title) if @title %> +<%= @content_for_layout %> +
+ +
+ powered by Ruby on Rails <%= Rails::Info.properties.value_for 'Rails version' %> [<%= h RAILS_ENV[/^./] %>] + <%= image_tag 'css.png', :alt => 'valid CSS', :title => 'valid Cascading Style Sheet', :style => 'display: inline; vertical-align: middle' %> + <%= image_tag 'xhtml11.png', :alt => 'valid XHTML 1.1', :title => 'valid eXtensible Hypertext Markup Language 1.1', :style => 'display: inline; vertical-align: middle' %> +
+
+ + + + +<% @title = '??bersicht' -%> + +

n??chste Probe

+ + <%= render :partial => 'proben/head' %> + <%= render :partial => 'proben/day', :object => @next_probe %> +
+

<%= link_to 'weitere Proben...', :controller => 'proben' %>

+ +

n??chster Auftritt

+ + <%= render :partial => 'auftritte/head' %> + <%= render :partial => 'auftritte/day', :object => @next_auftritt %> +
+

<%= link_to 'mehr Auftritte...', :controller => 'auftritte' %>

+
    + <%= category '??bersicht', home_url %> + <%= subcat 'Wer sind wir?', :wer %> + <%= subcat 'Dirigent' %> + <%= subcat 'Besetzung', url_for(:controller => '/besetzung') %> + <%= subcat 'Repertoire' %> + + <%= category 'Termine' %> + <%= subcat 'Auftritte', url_for(:controller => '/auftritte', :action => :plan) %> + <%= subcat 'Schulferien' %> + + <%= category 'Probenplan', url_for(:controller => '/proben', :action => :plan) %> + + <%= category 'Organisation' %> + <%= subcat 'Orchesterrat' %> + <%= subcat 'Arbeitsgruppen' %> + + <%= category 'Chronik' %> + <%= subcat 'Konzerte' %> + <%= subcat 'Audio' %> + <%= subcat 'Presse' %> + + <%= category 'Links', '#' %> + <%= subcat 'Bilderseite', 'http://musikschule.iden04.de' %> + <%= subcat 'Musikschule', 'http://www.musikschule-marzahn-hellersdorf.de' %> + +

  • + + <%= category 'Kontakt' %> +
+<% @title = 'Probenplan' %> + + + <%= render :partial => 'head' %> + <%= render :partial => 'day', :collection => @days %> +
+ +

+Ort (wenn nicht anders angegeben): Schule am Pappelhof +

+ +<%= render_partial 'raum' %> +<% day, proben = *day -%> +<% + for probe in proben +-%> + + + + <%= colorize day.to_s(:dots) if day %> + <% if day and day.wday == 6 %>
Samstag<% end %> + + + <%= colorize probe.time %> + + + <%= colorize(probe.place, 'Ort: ') + '
' unless probe.place.blank? %> + <%= colorize probe.program %> + <%= link_to 'E', :controller => 'admin/proben', :action => :edit, :id => probe %> + + + <%= h probe.instrumentation %> + + + +<% + day = nil + end +-%> + + Datum + Zeit + St??cke + Besetzung + +

Probenr??ume

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WerRaumAdresse
StreicherSchule am Pappelhof
(Raum Nr.)
(Anschrifft Pappelhofschule)
Blechbl??serMusikschule Marzahn
(Raum Nr.)
(Anschrifft Musikscule Marzahn)
Holzbl??serSchule am Pappelhof
(Raum Nr.)
(Anschrifft Pappelhofschule)
...(Ort)
(Raum Nr.)
(Anschrifft)
Added: external/Pygments-0.9/tests/examplefiles/example.weechatlog ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/example.weechatlog Tue Oct 23 20:20:22 2007 @@ -0,0 +1,9 @@ +**** Beginning of log 2007 Sep 01 00:23:55 **** +2007 Sep 01 00:23:55 --> weechat_user (weechat at localhost.) ist in den Channel &bitlbee gekommen +2007 Sep 01 00:23:55 -=- Modus &bitlbee [+t] durch localhost. +2007 Sep 01 00:23:55 - at - Nicks &bitlbee: [@root @weechat_user] +2007 Sep 01 00:23:55 -=- Channel &bitlbee: 2 Nicks (2 Operatoren, 0 Halb-Operator, 0 Gevoiceter, 0 normal) +2007 Sep 01 00:23:55 -=- Das Topic von &bitlbee lautet: "Welcome to the control channel. Type help for help information." +2007 Sep 01 00:23:55 Welcome to the BitlBee gateway! +2007 Sep 01 00:23:55 +2007 Sep 01 00:23:55 If you've never used BitlBee before, please do read the help information using the help command. Lots of FAQ's are answered there. \ No newline at end of file Added: external/Pygments-0.9/tests/examplefiles/example.xhtml ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/example.xhtml Tue Oct 23 20:20:22 2007 @@ -0,0 +1,376 @@ + + + + Error + + + +

Error

+ + + +
Path: #{path}
+
#{CGI.escapeHTML(error.to_s)}
+
+ Reload this page. + Go to the referer or the home page. +
+
+ + In file '#{error.hot_file}' #{error.hot_file =~ /\.xhtml$/ ? '(line numbering is aproximate due to template transformation)' : nil}: +

+ +
#{line}
+ +
#{line}
+ +
+

Stack Trace

+ + + +

Request

+ + +

Response

+ + +

Session

+ + +

+ Powered by Nitro version #{Nitro::Version} + + + + + +

Home > System > #{"%plural%".humanize} > Edit #{"%name%".humanize}

+ + Show editable + #{form_for @obj, :action => "#{base}/save", :cancel => "#{base}/list", :all => true} + + Show all + #{form_for @obj, :action => "#{base}/save", :cancel => "#{base}/list"} + +
+#{form_for(@%name%)} + + +

#{"%plural%".humanize}

+

New #{"%name%".humanize}

+
+ Search #{"%plural%".humanize}:   +
+ + + + + + + + + + + +
#{obj.to_s}#{obj.update_time.stamp(:db)}editdel
+
+ + +

Home > System > #{"%plural%".humanize}

+ New #{"%name%".humanize} +

+

+ Search #{"%plural%".humanize}:   +
+

+ + + + + + + + + + + +
#(obj.to_s)#{obj.update_time.stamp(:db)}editdel
+
+ #{@pager.navigation} +
+
+ + +

Home > System > #{"%plural%".humanize} > New #{"%name%".humanize}

+ + Show editable + #{form_for @obj, :action => "#{base}/save", :cancel => "#{base}/list", :all => true, :enctype => "multipart/form-data"} + + Show all + #{form_for @obj, :action => "#{base}/save", :cancel => "#{base}/list", :enctype => "multipart/form-data"} + +
+ + +

Home > System > #{"%plural%".humanize} > Search for '#@query'

+

+

+ Search #{"%plural%".humanize}:   +
+

+ +

Search method is not implemented for this object

+ + + + + + + + + + + + +
#(obj.to_s)#{obj.update_time.stamp(:db)}editdel
+
+ #{@pager.navigation} +
+ +
+ + +

View %name%

+

List of %plural%

+ + #{@obj.to_yaml} + +
+Access denied + + +

Home > System

+ +

Og managed classes

+ + + + + + + + + + + + + + + + + +
ClassCountCleanupProperties
#{c.name}#{c.count}deletedestroy#{c.properties.values.join(', ')}
+ +

System configuration

+ + + + + + + + + + + + + + + + +
NameValueTypeDescription
#{s.owner}.#{s.name}#{s.value.inspect}#{s.type}#{s.options[:doc]}
+
+ + + + + Test + + + + + + + +hello +Hello #{username} + +how do you feel? + +Here is your Token: #{token} + +
+ +

Questions with Tags: #{@tags.join(" ")}

+ + 0 ?> + + Too many results for that Tag, please reduce the number by using one of the following Tags: + #{cloud_of(@qtags)} + +
+ +

#{q.question}

+

+ + #{excerpt} +

+

#{q.answers.size.to_i} answers

+ +
+
+ #{@qpager.navigation} +
+ +
+

no question with this/these tag(s) found

+

Ask a question here.

+
+ + + 0 ?> +

Tips with Tags: #{@tags.join(" ")}

+ + Too many results for that Tag, please reduce the number by using one of the following Tags: + #{cloud_of(@ttags)} + +
+ +

#{t.title}

+

+ + #{excerpt} +

+ +
+
+ #{@tpager.navigation} +
+ + + 0 ?> +

Tutorials with Tags: #{@tags.join(" ")}

+ + Too many results for that Tag, please reduce the number by using one of the following Tags: + #{cloud_of(@tuttags)} + +
+ +

#{t.title}

+

+ + #{excerpt} +

+ +
+
+ #{@tpager.navigation} +
+ + + + +
+ + + #{t.name} + +
+ +
+ + +
+ + Added: external/Pygments-0.9/tests/examplefiles/example.xml ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/example.xml Tue Oct 23 20:20:22 2007 @@ -0,0 +1,1897 @@ + + + + + + abort + abs + abstract + accept + access + aliased + all + and + array + at + begin + body + constant + declare + delay + delta + digits + do + else + elsif + end + entry + exception + exit + for + function + generic + goto + in + is + limited + mod + new + not + null + of + or + others + out + package + pragma + private + procedure + protected + raise + range + rem + record + renames + requeue + return + reverse + separate + subtype + tagged + task + terminate + then + type + until + use + when + while + with + xor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BEGIN + END + if + else + while + do + for + in + continue + break + print + printf + getline + function + return + next + exit + + + ARGC + ARGV + CONVFMT + ENVIRON + FILENAME + FNR + FS + NF + NR + OFMT + OFS + ORS + RS + RSTART + RLENGTH + SUBSEP + + + gsub + index + length + match + split + sprintf + sub + substr + tolower + toupper + atan2 + cos + exp + int + log + rand + sin + sqrt + srand + close + fflush + system + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + break + case + else + esac + exit + export + for + function + in + return + select + then + until + while + . + done + do + elif + fi + if + + + + cp + date + echo + eval + dcop + dcopstart + dcopfind + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + break + case + continue + default + do + else + enum + extern + for + goto + if + inline + return + sizeof + struct + switch + typedef + union + while + + + auto + char + const + double + float + int + long + register + restrict + short + signed + static + unsigned + void + volatile + _Imaginary + _Complex + _Bool + + + FIXME + TODO + ### + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + aaa + access-list + address + alias + arp + async-bootp + banner + boot + bridge + buffers + busy-message + call-history-mib + cdp + chat-script + class-map + clock + cns + config-register + controller + crypto + default + default-value + dialer + dialer-list + dnsix-dmdp + dnsix-nat + downward-compatible-config + enable + end + exception + exit + file + frame-relay + help + hostname + interface + ip + isdn + isdn-mib + kerberos + key + line + logging + login-string + map-class + map-list + memory-size + menu + modemcap + multilink + netbios + no + ntp + partition + policy-map + priority-list + privilege + process-max-time + prompt + queue-list + resume-string + rlogin + rmon + route-map + router + rtr + scheduler + service + snmp-server + sntp + stackmaker + state-machine + subscriber-policy + tacacs-server + template + terminal-queue + tftp-server + time-range + username + virtual-profile + virtual-template + vpdn + vpdn-group + x25 + x29 + + + accounting + accounting-list + accounting-threshold + accounting-transits + address-pool + as-path + audit + auth-proxy + authentication + authorization + bgp-community + bootp + cef + classless + community-list + default-gateway + default-network + dhcp + dhcp-server + domain-list + domain-lookup + domain-name + dvmrp + exec-callback + extcommunity-list + finger + flow-aggregation + flow-cache + flow-export + forward-protocol + ftp + gratuitous-arps + host + host-routing + hp-host + http + icmp + inspect + local + mrm + mroute + msdp + multicast + multicast-routing + name-server + nat + new-model + ospf + password + password-encryption + pgm + pim + port-map + prefix-list + radius + rcmd + reflexive-list + route + routing + rsvp + rtcp + sap + sdr + security + source-route + subnet-zero + tacacs + tcp + tcp-small-servers + telnet + tftp + timestamps + udp-small-servers + vrf + wccp + + + accounting + accounting-list + accounting-threshold + accounting-transits + address-pool + as-path + audit + auth-proxy + authentication + authorization + bgp-community + bootp + cef + classless + community-list + default-gateway + default-network + dhcp + dhcp-server + domain-list + domain-lookup + domain-name + dvmrp + exec-callback + extcommunity-list + finger + flow-aggregation + flow-cache + flow-export + forward-protocol + ftp + gratuitous-arps + host + host-routing + hp-host + http + icmp + inspect + local + mrm + mroute + msdp + multicast + multicast-routing + name-server + nat + new-model + ospf + password + password-encryption + pgm + pim + port-map + prefix-list + radius + rcmd + reflexive-list + route + routing + rsvp + rtcp + sap + sdr + security + source-route + subnet-zero + tacacs + tcp + tcp-small-servers + telnet + tftp + timestamps + udp-small-servers + vrf + wccp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + if + else + for + in + while + do + continue + break + with + try + catch + switch + case + new + var + function + return + this + delete + true + false + void + throw + typeof + const + default + + + + + + Anchor + Applet + Area + Array + Boolean + Button + Checkbox + Date + Document + Event + FileUpload + Form + Frame + Function + Hidden + History + Image + Layer + Linke + Location + Math + Navigator + Number + Object + Option + Password + Radio + RegExp + Reset + Screen + Select + String + Submit + Text + Textarea + Window + + + + + + abs + acos + alert + anchor + apply + asin + atan + atan2 + back + blur + call + captureEvents + ceil + charAt + charCodeAt + clearInterval + clearTimeout + click + close + compile + concat + confirm + cos + disableExternalCapture + enableExternalCapture + eval + exec + exp + find + floor + focus + forward + fromCharCode + getDate + getDay + getFullYear + getHours + getMilliseconds + getMinutes + getMonth + getSeconds + getSelection + getTime + getTimezoneOffset + getUTCDate + getUTCDay + getUTCFullYear + getUTCHours + getUTCMilliseconds + getUTCMinutes + getUTCMonth + getUTCSeconds + go + handleEvent + home + indexOf + javaEnabled + join + lastIndexOf + link + load + log + match + max + min + moveAbove + moveBelow + moveBy + moveTo + moveToAbsolute + open + parse + plugins.refresh + pop + pow + preference + print + prompt + push + random + releaseEvents + reload + replace + reset + resizeBy + resizeTo + reverse + round + routeEvent + scrollBy + scrollTo + search + select + setDate + setFullYear + setHours + setInterval + setMilliseconds + setMinutes + setMonth + setSeconds + setTime + setTimeout + setUTCDate + setUTCFullYear + setUTCHours + setUTCMilliseconds + setUTCMinutes + setUTCMonth + setUTCSeconds + shift + sin + slice + sort + splice + split + sqrt + stop + String formatting + submit + substr + substring + taintEnabled + tan + test + toLocaleString + toLowerCase + toSource + toString + toUpperCase + toUTCString + unshift + unwatch + UTC + valueOf + watch + write + writeln + + + + + + break + case + catch + continue + default + do + else + for + function + if + in + return + switch + try + var + while + + + + + + Abs + ACos + ArrayAppend + ArrayAvg + ArrayClear + ArrayDeleteAt + ArrayInsertAt + ArrayIsEmpty + ArrayLen + ArrayMax + ArrayMin + ArrayNew + ArrayPrepend + ArrayResize + ArraySet + ArraySort + ArraySum + ArraySwap + ArrayToList + Asc + ASin + Atn + BitAnd + BitMaskClear + BitMaskRead + BitMaskSet + BitNot + BitOr + BitSHLN + BitSHRN + BitXor + Ceiling + Chr + CJustify + Compare + CompareNoCase + Cos + CreateDate + CreateDateTime + CreateObject + CreateODBCDate + CreateODBCDateTime + CreateODBCTime + CreateTime + CreateTimeSpan + CreateUUID + DateAdd + DateCompare + DateConvert + DateDiff + DateFormat + DatePart + Day + DayOfWeek + DayOfWeekAsString + DayOfYear + DaysInMonth + DaysInYear + DE + DecimalFormat + DecrementValue + Decrypt + DeleteClientVariable + DirectoryExists + DollarFormat + Duplicate + Encrypt + Evaluate + Exp + ExpandPath + FileExists + Find + FindNoCase + FindOneOf + FirstDayOfMonth + Fix + FormatBaseN + GetAuthUser + GetBaseTagData + GetBaseTagList + GetBaseTemplatePath + GetClientVariablesList + GetCurrentTemplatePath + GetDirectoryFromPath + GetException + GetFileFromPath + GetFunctionList + GetHttpRequestData + GetHttpTimeString + GetK2ServerDocCount + GetK2ServerDocCountLimit + GetLocale + GetMetaData + GetMetricData + GetPageContext + GetProfileSections + GetProfileString + GetServiceSettings + GetTempDirectory + GetTempFile + GetTemplatePath + GetTickCount + GetTimeZoneInfo + GetToken + Hash + Hour + HTMLCodeFormat + HTMLEditFormat + IIf + IncrementValue + InputBaseN + Insert + Int + IsArray + IsBinary + IsBoolean + IsCustomFunction + IsDate + IsDebugMode + IsDefined + IsK2ServerABroker + IsK2ServerDocCountExceeded + IsK2ServerOnline + IsLeapYear + IsNumeric + IsNumericDate + IsObject + IsQuery + IsSimpleValue + IsStruct + IsUserInRole + IsWDDX + IsXmlDoc + IsXmlElement + IsXmlRoot + JavaCast + JSStringFormat + LCase + Left + Len + ListAppend + ListChangeDelims + ListContains + ListContainsNoCase + ListDeleteAt + ListFind + ListFindNoCase + ListFirst + ListGetAt + ListInsertAt + ListLast + ListLen + ListPrepend + ListQualify + ListRest + ListSetAt + ListSort + ListToArray + ListValueCount + ListValueCountNoCase + LJustify + Log + Log10 + LSCurrencyFormat + LSDateFormat + LSEuroCurrencyFormat + LSIsCurrency + LSIsDate + LSIsNumeric + LSNumberFormat + LSParseCurrency + LSParseDateTime + LSParseEuroCurrency + LSParseNumber + LSTimeFormat + LTrim + Max + Mid + Min + Minute + Month + MonthAsString + Now + NumberFormat + ParagraphFormat + ParameterExists + ParseDateTime + Pi + PreserveSingleQuotes + Quarter + QueryAddColumn + QueryAddRow + QueryNew + QuerySetCell + QuotedValueList + Rand + Randomize + RandRange + REFind + REFindNoCase + RemoveChars + RepeatString + Replace + ReplaceList + ReplaceNoCase + REReplace + REReplaceNoCase + Reverse + Right + RJustify + Round + RTrim + Second + SetEncoding + SetLocale + SetProfileString + SetVariable + Sgn + Sin + SpanExcluding + SpanIncluding + Sqr + StripCR + StructAppend + StructClear + StructCopy + StructCount + StructDelete + StructFind + StructFindKey + StructFindValue + StructGet + StructInsert + StructIsEmpty + StructKeyArray + StructKeyExists + StructKeyList + StructNew + StructSort + StructUpdate + Tan + TimeFormat + ToBase64 + ToBinary + ToString + Trim + UCase + URLDecode + URLEncodedFormat + URLSessionFormat + Val + ValueList + Week + WriteOutput + XmlChildPos + XmlElemNew + XmlFormat + XmlNew + XmlParse + XmlSearch + XmlTransform + Year + YesNoFormat + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BEGIN + BY + CASE + CLOSE + CONST + DO + ELSE + ELSIF + END + FOR + IF + IMPORT + LOOP + MODULE + NEW + OF + OUT + PROCEDURE + REPEAT + THEN + TO + TYPE + UNTIL + VAR + WHILE + WITH + + + ASSERT + EXIT + HALT + RETURN + + + ANYPTR + ANYREC + ARRAY + BOOLEAN + SHORTCHAR + CHAR + BYTE + SHORTINT + INTEGER + LONGINT + POINTER + RECORD + SHORTREAL + REAL + SET + + + ABSTRACT + EMPTY + EXTENSIBLE + LIMITED + + + ABS + ASH + BITS + CAP + CHR + DEC + ENTIER + EXCL + INC + INCL + LEN + LONG + MAX + MIN + ODD + ORD + SHORT + SIZE + + + FALSE + INF + NIL + TRUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: external/Pygments-0.9/tests/examplefiles/format.ml ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/format.ml Tue Oct 23 20:20:22 2007 @@ -0,0 +1,1213 @@ +(***********************************************************************) +(* *) +(* Objective Caml *) +(* *) +(* Pierre Weis, projet Cristal, INRIA Rocquencourt *) +(* *) +(* Copyright 1996 Institut National de Recherche en Informatique et *) +(* en Automatique. All rights reserved. This file is distributed *) +(* under the terms of the GNU Library General Public License, with *) +(* the special exception on linking described in file ../LICENSE. *) +(* *) +(***********************************************************************) + +(* $Id: format.ml,v 1.65 2005/09/26 10:13:08 weis Exp $ *) + +(************************************************************** + + Data structures definitions. + + **************************************************************) + +type size;; + +external size_of_int : int -> size = "%identity";; +external int_of_size : size -> int = "%identity";; + +(* Tokens are one of the following : *) + +type pp_token = +| Pp_text of string (* normal text *) +| Pp_break of int * int (* complete break *) +| Pp_tbreak of int * int (* go to next tabulation *) +| Pp_stab (* set a tabulation *) +| Pp_begin of int * block_type (* beginning of a block *) +| Pp_end (* end of a block *) +| Pp_tbegin of tblock (* beginning of a tabulation block *) +| Pp_tend (* end of a tabulation block *) +| Pp_newline (* to force a newline inside a block *) +| Pp_if_newline (* to do something only if this very + line has been broken *) +| Pp_open_tag of string (* opening a tag name *) +| Pp_close_tag (* closing the most recently opened tag *) + +and tag = string + +and block_type = +| Pp_hbox (* Horizontal block no line breaking *) +| Pp_vbox (* Vertical block each break leads to a new line *) +| Pp_hvbox (* Horizontal-vertical block: same as vbox, except if this block + is small enough to fit on a single line *) +| Pp_hovbox (* Horizontal or Vertical block: breaks lead to new line + only when necessary to print the content of the block *) +| Pp_box (* Horizontal or Indent block: breaks lead to new line + only when necessary to print the content of the block, or + when it leads to a new indentation of the current line *) +| Pp_fits (* Internal usage: when a block fits on a single line *) + +and tblock = Pp_tbox of int list ref (* Tabulation box *) +;; + +(* The Queue: + contains all formatting elements. + elements are tuples (size, token, length), where + size is set when the size of the block is known + len is the declared length of the token. *) +type pp_queue_elem = { + mutable elem_size : size; token : pp_token; length : int +};; + +(* Scan stack: + each element is (left_total, queue element) where left_total + is the value of pp_left_total when the element has been enqueued. *) +type pp_scan_elem = Scan_elem of int * pp_queue_elem;; + +(* Formatting stack: + used to break the lines while printing tokens. + The formatting stack contains the description of + the currently active blocks. *) +type pp_format_elem = Format_elem of block_type * int;; + +(* General purpose queues, used in the formatter. *) +type 'a queue_elem = | Nil | Cons of 'a queue_cell +and 'a queue_cell = {mutable head : 'a; mutable tail : 'a queue_elem};; + +type 'a queue = { + mutable insert : 'a queue_elem; + mutable body : 'a queue_elem +};; + +(* The formatter specific tag handling functions. *) +type formatter_tag_functions = { + mark_open_tag : tag -> string; + mark_close_tag : tag -> string; + print_open_tag : tag -> unit; + print_close_tag : tag -> unit; + +};; + +(* A formatter with all its machinery. *) +type formatter = { + mutable pp_scan_stack : pp_scan_elem list; + mutable pp_format_stack : pp_format_elem list; + mutable pp_tbox_stack : tblock list; + mutable pp_tag_stack : tag list; + mutable pp_mark_stack : tag list; + (* Global variables: default initialization is + set_margin 78 + set_min_space_left 0. *) + (* Value of right margin. *) + mutable pp_margin : int; + (* Minimal space left before margin, when opening a block. *) + mutable pp_min_space_left : int; + (* Maximum value of indentation: + no blocks can be opened further. *) + mutable pp_max_indent : int; + (* Space remaining on the current line. *) + mutable pp_space_left : int; + (* Current value of indentation. *) + mutable pp_current_indent : int; + (* True when the line has been broken by the pretty-printer. *) + mutable pp_is_new_line : bool; + (* Total width of tokens already printed. *) + mutable pp_left_total : int; + (* Total width of tokens ever put in queue. *) + mutable pp_right_total : int; + (* Current number of opened blocks. *) + mutable pp_curr_depth : int; + (* Maximum number of blocks which can be simultaneously opened. *) + mutable pp_max_boxes : int; + (* Ellipsis string. *) + mutable pp_ellipsis : string; + (* Output function. *) + mutable pp_output_function : string -> int -> int -> unit; + (* Flushing function. *) + mutable pp_flush_function : unit -> unit; + (* Output of new lines. *) + mutable pp_output_newline : unit -> unit; + (* Output of indentation spaces. *) + mutable pp_output_spaces : int -> unit; + (* Are tags printed ? *) + mutable pp_print_tags : bool; + (* Are tags marked ? *) + mutable pp_mark_tags : bool; + (* Find opening and closing markers of tags. *) + mutable pp_mark_open_tag : tag -> string; + mutable pp_mark_close_tag : tag -> string; + mutable pp_print_open_tag : tag -> unit; + mutable pp_print_close_tag : tag -> unit; + (* The pretty-printer queue. *) + mutable pp_queue : pp_queue_elem queue +};; + +(************************************************************** + + Auxilliaries and basic functions. + + **************************************************************) + + +(* Queues auxilliaries. *) +let make_queue () = {insert = Nil; body = Nil};; + +let clear_queue q = q.insert <- Nil; q.body <- Nil;; + +let add_queue x q = + let c = Cons {head = x; tail = Nil} in + match q with + | {insert = Cons cell} -> q.insert <- c; cell.tail <- c + (* Invariant: when insert is Nil body should be Nil. *) + | _ -> q.insert <- c; q.body <- c;; + +exception Empty_queue;; + +let peek_queue = function + | {body = Cons {head = x}} -> x + | _ -> raise Empty_queue;; + +let take_queue = function + | {body = Cons {head = x; tail = tl}} as q -> + q.body <- tl; + if tl = Nil then q.insert <- Nil; (* Maintain the invariant. *) + x + | _ -> raise Empty_queue;; + +(* Enter a token in the pretty-printer queue. *) +let pp_enqueue state ({length = len} as token) = + state.pp_right_total <- state.pp_right_total + len; + add_queue token state.pp_queue;; + +let pp_clear_queue state = + state.pp_left_total <- 1; state.pp_right_total <- 1; + clear_queue state.pp_queue;; + +(* Pp_infinity: large value for default tokens size. + + Pp_infinity is documented as being greater than 1e10; to avoid + confusion about the word ``greater'', we choose pp_infinity greater + than 1e10 + 1; for correct handling of tests in the algorithm, + pp_infinity must be even one more than 1e10 + 1; let's stand on the + safe side by choosing 1.e10+10. + + Pp_infinity could probably be 1073741823 that is 2^30 - 1, that is + the minimal upper bound for integers; now that max_int is defined, + this limit could also be defined as max_int - 1. + + However, before setting pp_infinity to something around max_int, we + must carefully double-check all the integer arithmetic operations + that involve pp_infinity, since any overflow would wreck havoc the + pretty-printing algorithm's invariants. Given that this arithmetic + correctness check is difficult and error prone and given that 1e10 + + 1 is in practice large enough, there is no need to attempt to set + pp_infinity to the theoretically maximum limit. Is it not worth the + burden ! *) + +let pp_infinity = 1000000010;; + +(* Output functions for the formatter. *) +let pp_output_string state s = state.pp_output_function s 0 (String.length s) +and pp_output_newline state = state.pp_output_newline ();; + +let pp_display_blanks state n = state.pp_output_spaces n;; + +(* To format a break, indenting a new line. *) +let break_new_line state offset width = + pp_output_newline state; + state.pp_is_new_line <- true; + let indent = state.pp_margin - width + offset in + (* Don't indent more than pp_max_indent. *) + let real_indent = min state.pp_max_indent indent in + state.pp_current_indent <- real_indent; + state.pp_space_left <- state.pp_margin - state.pp_current_indent; + pp_display_blanks state state.pp_current_indent;; + +(* To force a line break inside a block: no offset is added. *) +let break_line state width = break_new_line state 0 width;; + +(* To format a break that fits on the current line. *) +let break_same_line state width = + state.pp_space_left <- state.pp_space_left - width; + pp_display_blanks state width;; + +(* To indent no more than pp_max_indent, if one tries to open a block + beyond pp_max_indent, then the block is rejected on the left + by simulating a break. *) +let pp_force_break_line state = + match state.pp_format_stack with + | Format_elem (bl_ty, width) :: _ -> + if width > state.pp_space_left then + (match bl_ty with + | Pp_fits -> () | Pp_hbox -> () | _ -> break_line state width) + | _ -> pp_output_newline state;; + +(* To skip a token, if the previous line has been broken. *) +let pp_skip_token state = + (* When calling pp_skip_token the queue cannot be empty. *) + match take_queue state.pp_queue with + {elem_size = size; length = len} -> + state.pp_left_total <- state.pp_left_total - len; + state.pp_space_left <- state.pp_space_left + int_of_size size;; + +(************************************************************** + + The main pretting printing functions. + + **************************************************************) + +(* To format a token. *) +let format_pp_token state size = function + + | Pp_text s -> + state.pp_space_left <- state.pp_space_left - size; + pp_output_string state s; + state.pp_is_new_line <- false + + | Pp_begin (off, ty) -> + let insertion_point = state.pp_margin - state.pp_space_left in + if insertion_point > state.pp_max_indent then + (* can't open a block right there. *) + begin pp_force_break_line state end; + let offset = state.pp_space_left - off in + let bl_type = + begin match ty with + | Pp_vbox -> Pp_vbox + | _ -> if size > state.pp_space_left then ty else Pp_fits + end in + state.pp_format_stack <- + Format_elem (bl_type, offset) :: state.pp_format_stack + + | Pp_end -> + begin match state.pp_format_stack with + | x :: (y :: l as ls) -> state.pp_format_stack <- ls + | _ -> () (* No more block to close. *) + end + + | Pp_tbegin (Pp_tbox _ as tbox) -> + state.pp_tbox_stack <- tbox :: state.pp_tbox_stack + + | Pp_tend -> + begin match state.pp_tbox_stack with + | x :: ls -> state.pp_tbox_stack <- ls + | _ -> () (* No more tabulation block to close. *) + end + + | Pp_stab -> + begin match state.pp_tbox_stack with + | Pp_tbox tabs :: _ -> + let rec add_tab n = function + | [] -> [n] + | x :: l as ls -> if n < x then n :: ls else x :: add_tab n l in + tabs := add_tab (state.pp_margin - state.pp_space_left) !tabs + | _ -> () (* No opened tabulation block. *) + end + + | Pp_tbreak (n, off) -> + let insertion_point = state.pp_margin - state.pp_space_left in + begin match state.pp_tbox_stack with + | Pp_tbox tabs :: _ -> + let rec find n = function + | x :: l -> if x >= n then x else find n l + | [] -> raise Not_found in + let tab = + match !tabs with + | x :: l -> + begin try find insertion_point !tabs with Not_found -> x end + | _ -> insertion_point in + let offset = tab - insertion_point in + if offset >= 0 then break_same_line state (offset + n) else + break_new_line state (tab + off) state.pp_margin + | _ -> () (* No opened tabulation block. *) + end + + | Pp_newline -> + begin match state.pp_format_stack with + | Format_elem (_, width) :: _ -> break_line state width + | _ -> pp_output_newline state + end + + | Pp_if_newline -> + if state.pp_current_indent != state.pp_margin - state.pp_space_left + then pp_skip_token state + + | Pp_break (n, off) -> + begin match state.pp_format_stack with + | Format_elem (ty, width) :: _ -> + begin match ty with + | Pp_hovbox -> + if size > state.pp_space_left + then break_new_line state off width + else break_same_line state n + | Pp_box -> + (* Have the line just been broken here ? *) + if state.pp_is_new_line then break_same_line state n else + if size > state.pp_space_left + then break_new_line state off width else + (* break the line here leads to new indentation ? *) + if state.pp_current_indent > state.pp_margin - width + off + then break_new_line state off width + else break_same_line state n + | Pp_hvbox -> break_new_line state off width + | Pp_fits -> break_same_line state n + | Pp_vbox -> break_new_line state off width + | Pp_hbox -> break_same_line state n + end + | _ -> () (* No opened block. *) + end + + | Pp_open_tag tag_name -> + let marker = state.pp_mark_open_tag tag_name in + pp_output_string state marker; + state.pp_mark_stack <- tag_name :: state.pp_mark_stack + + | Pp_close_tag -> + begin match state.pp_mark_stack with + | tag_name :: tags -> + let marker = state.pp_mark_close_tag tag_name in + pp_output_string state marker; + state.pp_mark_stack <- tags + | _ -> () (* No more tag to close. *) + end;; + +(* Print if token size is known or printing is delayed. + Size is known when not negative. + Printing is delayed when the text waiting in the queue requires + more room to format than exists on the current line. *) +let rec advance_left state = + try + match peek_queue state.pp_queue with + {elem_size = size; token = tok; length = len} -> + let size = int_of_size size in + if not + (size < 0 && + (state.pp_right_total - state.pp_left_total < state.pp_space_left)) + then begin + ignore(take_queue state.pp_queue); + format_pp_token state (if size < 0 then pp_infinity else size) tok; + state.pp_left_total <- len + state.pp_left_total; + advance_left state + end + with Empty_queue -> ();; + +let enqueue_advance state tok = pp_enqueue state tok; advance_left state;; + +(* To enqueue a string : try to advance. *) +let make_queue_elem size tok len = + {elem_size = size; token = tok; length = len};; + +let enqueue_string_as state size s = + let len = int_of_size size in + enqueue_advance state (make_queue_elem size (Pp_text s) len);; + +let enqueue_string state s = + let len = String.length s in + enqueue_string_as state (size_of_int len) s;; + +(* Routines for scan stack + determine sizes of blocks. *) + +(* The scan_stack is never empty. *) +let scan_stack_bottom = + let q_elem = make_queue_elem (size_of_int (-1)) (Pp_text "") 0 in + [Scan_elem (-1, q_elem)];; + +(* Set size of blocks on scan stack: + if ty = true then size of break is set else size of block is set; + in each case pp_scan_stack is popped. *) +let clear_scan_stack state = state.pp_scan_stack <- scan_stack_bottom;; + +(* Pattern matching on scan stack is exhaustive, + since scan_stack is never empty. + Pattern matching on token in scan stack is also exhaustive, + since scan_push is used on breaks and opening of boxes. *) +let set_size state ty = + match state.pp_scan_stack with + | Scan_elem + (left_tot, + ({elem_size = size; token = tok} as queue_elem)) :: t -> + let size = int_of_size size in + (* test if scan stack contains any data that is not obsolete. *) + if left_tot < state.pp_left_total then clear_scan_stack state else + begin match tok with + | Pp_break (_, _) | Pp_tbreak (_, _) -> + if ty then + begin + queue_elem.elem_size <- size_of_int (state.pp_right_total + size); + state.pp_scan_stack <- t + end + | Pp_begin (_, _) -> + if not ty then + begin + queue_elem.elem_size <- size_of_int (state.pp_right_total + size); + state.pp_scan_stack <- t + end + | _ -> () (* scan_push is only used for breaks and boxes. *) + end + | _ -> () (* scan_stack is never empty. *);; + +(* Push a token on scan stack. If b is true set_size is called. *) +let scan_push state b tok = + pp_enqueue state tok; + if b then set_size state true; + state.pp_scan_stack <- + Scan_elem (state.pp_right_total, tok) :: state.pp_scan_stack;; + +(* To open a new block : + the user may set the depth bound pp_max_boxes + any text nested deeper is printed as the ellipsis string. *) +let pp_open_box_gen state indent br_ty = + state.pp_curr_depth <- state.pp_curr_depth + 1; + if state.pp_curr_depth < state.pp_max_boxes then + let elem = + make_queue_elem + (size_of_int (- state.pp_right_total)) + (Pp_begin (indent, br_ty)) + 0 in + scan_push state false elem else + if state.pp_curr_depth = state.pp_max_boxes + then enqueue_string state state.pp_ellipsis;; + +(* The box which is always opened. *) +let pp_open_sys_box state = pp_open_box_gen state 0 Pp_hovbox;; + +(* Close a block, setting sizes of its subblocks. *) +let pp_close_box state () = + if state.pp_curr_depth > 1 then + begin + if state.pp_curr_depth < state.pp_max_boxes then + begin + pp_enqueue state + {elem_size = size_of_int 0; token = Pp_end; length = 0}; + set_size state true; set_size state false + end; + state.pp_curr_depth <- state.pp_curr_depth - 1; + end;; + +(* Open a tag, pushing it on the tag stack. *) +let pp_open_tag state tag_name = + if state.pp_print_tags then begin + state.pp_tag_stack <- tag_name :: state.pp_tag_stack; + state.pp_print_open_tag tag_name end; + if state.pp_mark_tags then + pp_enqueue state + {elem_size = size_of_int 0; token = Pp_open_tag tag_name; length = 0};; + +(* Close a tag, popping it from the tag stack. *) +let pp_close_tag state () = + if state.pp_mark_tags then + pp_enqueue state + {elem_size = size_of_int 0; token = Pp_close_tag; length = 0}; + if state.pp_print_tags then + begin match state.pp_tag_stack with + | tag_name :: tags -> + state.pp_print_close_tag tag_name; + state.pp_tag_stack <- tags + | _ -> () (* No more tag to close. *) + end;; + +let pp_set_print_tags state b = state.pp_print_tags <- b;; +let pp_set_mark_tags state b = state.pp_mark_tags <- b;; +let pp_get_print_tags state () = state.pp_print_tags;; +let pp_get_mark_tags state () = state.pp_mark_tags;; +let pp_set_tags state b = pp_set_print_tags state b; pp_set_mark_tags state b;; + +let pp_get_formatter_tag_functions state () = { + mark_open_tag = state.pp_mark_open_tag; + mark_close_tag = state.pp_mark_close_tag; + print_open_tag = state.pp_print_open_tag; + print_close_tag = state.pp_print_close_tag; +};; + +let pp_set_formatter_tag_functions state { + mark_open_tag = mot; + mark_close_tag = mct; + print_open_tag = pot; + print_close_tag = pct; + } = + state.pp_mark_open_tag <- mot; + state.pp_mark_close_tag <- mct; + state.pp_print_open_tag <- pot; + state.pp_print_close_tag <- pct;; + +(* Initialize pretty-printer. *) +let pp_rinit state = + pp_clear_queue state; + clear_scan_stack state; + state.pp_format_stack <- []; + state.pp_tbox_stack <- []; + state.pp_tag_stack <- []; + state.pp_mark_stack <- []; + state.pp_current_indent <- 0; + state.pp_curr_depth <- 0; + state.pp_space_left <- state.pp_margin; + pp_open_sys_box state;; + +(* Flushing pretty-printer queue. *) +let pp_flush_queue state b = + while state.pp_curr_depth > 1 do + pp_close_box state () + done; + state.pp_right_total <- pp_infinity; + advance_left state; + if b then pp_output_newline state; + pp_rinit state;; + +(************************************************************** + + Procedures to format objects, and use boxes + + **************************************************************) + +(* To format a string. *) +let pp_print_as_size state size s = + if state.pp_curr_depth < state.pp_max_boxes + then enqueue_string_as state size s;; + +let pp_print_as state isize s = + pp_print_as_size state (size_of_int isize) s;; + +let pp_print_string state s = + pp_print_as state (String.length s) s;; + +(* To format an integer. *) +let pp_print_int state i = pp_print_string state (string_of_int i);; + +(* To format a float. *) +let pp_print_float state f = pp_print_string state (string_of_float f);; + +(* To format a boolean. *) +let pp_print_bool state b = pp_print_string state (string_of_bool b);; + +(* To format a char. *) +let pp_print_char state c = + let s = String.create 1 in + s.[0] <- c; + pp_print_as state 1 s;; + +(* Opening boxes. *) +let pp_open_hbox state () = pp_open_box_gen state 0 Pp_hbox +and pp_open_vbox state indent = pp_open_box_gen state indent Pp_vbox + +and pp_open_hvbox state indent = pp_open_box_gen state indent Pp_hvbox +and pp_open_hovbox state indent = pp_open_box_gen state indent Pp_hovbox +and pp_open_box state indent = pp_open_box_gen state indent Pp_box;; + +(* Print a new line after printing all queued text + (same for print_flush but without a newline). *) +let pp_print_newline state () = + pp_flush_queue state true; state.pp_flush_function () +and pp_print_flush state () = + pp_flush_queue state false; state.pp_flush_function ();; + +(* To get a newline when one does not want to close the current block. *) +let pp_force_newline state () = + if state.pp_curr_depth < state.pp_max_boxes then + enqueue_advance state (make_queue_elem (size_of_int 0) Pp_newline 0);; + +(* To format something if the line has just been broken. *) +let pp_print_if_newline state () = + if state.pp_curr_depth < state.pp_max_boxes then + enqueue_advance state (make_queue_elem (size_of_int 0) Pp_if_newline 0);; + +(* Breaks: indicate where a block may be broken. + If line is broken then offset is added to the indentation of the current + block else (the value of) width blanks are printed. + To do (?) : add a maximum width and offset value. *) +let pp_print_break state width offset = + if state.pp_curr_depth < state.pp_max_boxes then + let elem = + make_queue_elem + (size_of_int (- state.pp_right_total)) + (Pp_break (width, offset)) + width in + scan_push state true elem;; + +let pp_print_space state () = pp_print_break state 1 0 +and pp_print_cut state () = pp_print_break state 0 0;; + +(* Tabulation boxes. *) +let pp_open_tbox state () = + state.pp_curr_depth <- state.pp_curr_depth + 1; + if state.pp_curr_depth < state.pp_max_boxes then + let elem = + make_queue_elem (size_of_int 0) (Pp_tbegin (Pp_tbox (ref []))) 0 in + enqueue_advance state elem;; + +(* Close a tabulation block. *) +let pp_close_tbox state () = + if state.pp_curr_depth > 1 then begin + if state.pp_curr_depth < state.pp_max_boxes then + let elem = make_queue_elem (size_of_int 0) Pp_tend 0 in + enqueue_advance state elem; + state.pp_curr_depth <- state.pp_curr_depth - 1 end;; + +(* Print a tabulation break. *) +let pp_print_tbreak state width offset = + if state.pp_curr_depth < state.pp_max_boxes then + let elem = + make_queue_elem + (size_of_int (- state.pp_right_total)) + (Pp_tbreak (width, offset)) + width in + scan_push state true elem;; + +let pp_print_tab state () = pp_print_tbreak state 0 0;; + +let pp_set_tab state () = + if state.pp_curr_depth < state.pp_max_boxes then + let elem = + make_queue_elem (size_of_int 0) Pp_stab 0 in + enqueue_advance state elem;; + +(************************************************************** + + Procedures to control the pretty-printers + + **************************************************************) + +(* Fit max_boxes. *) +let pp_set_max_boxes state n = if n > 1 then state.pp_max_boxes <- n;; + +(* To know the current maximum number of boxes allowed. *) +let pp_get_max_boxes state () = state.pp_max_boxes;; + +let pp_over_max_boxes state () = state.pp_curr_depth = state.pp_max_boxes;; + +(* Ellipsis. *) +let pp_set_ellipsis_text state s = state.pp_ellipsis <- s +and pp_get_ellipsis_text state () = state.pp_ellipsis;; + +(* To set the margin of pretty-printer. *) +let pp_limit n = + if n < pp_infinity then n else pred pp_infinity;; + +let pp_set_min_space_left state n = + if n >= 1 then + let n = pp_limit n in + state.pp_min_space_left <- n; + state.pp_max_indent <- state.pp_margin - state.pp_min_space_left; + pp_rinit state;; + +(* Initially, we have : + pp_max_indent = pp_margin - pp_min_space_left, and + pp_space_left = pp_margin. *) +let pp_set_max_indent state n = + pp_set_min_space_left state (state.pp_margin - n);; +let pp_get_max_indent state () = state.pp_max_indent;; + +let pp_set_margin state n = + if n >= 1 then + let n = pp_limit n in + state.pp_margin <- n; + let new_max_indent = + (* Try to maintain max_indent to its actual value. *) + if state.pp_max_indent <= state.pp_margin + then state.pp_max_indent else + (* If possible maintain pp_min_space_left to its actual value, + if this leads to a too small max_indent, take half of the + new margin, if it is greater than 1. *) + max (max (state.pp_margin - state.pp_min_space_left) + (state.pp_margin / 2)) 1 in + (* Rebuild invariants. *) + pp_set_max_indent state new_max_indent;; + +let pp_get_margin state () = state.pp_margin;; + +let pp_set_formatter_output_functions state f g = + state.pp_output_function <- f; state.pp_flush_function <- g;; +let pp_get_formatter_output_functions state () = + (state.pp_output_function, state.pp_flush_function);; + +let pp_set_all_formatter_output_functions state + ~out:f ~flush:g ~newline:h ~spaces:i = + pp_set_formatter_output_functions state f g; + state.pp_output_newline <- (function () -> h ()); + state.pp_output_spaces <- (function n -> i n);; +let pp_get_all_formatter_output_functions state () = + (state.pp_output_function, state.pp_flush_function, + state.pp_output_newline, state.pp_output_spaces);; + +let pp_set_formatter_out_channel state os = + state.pp_output_function <- output os; + state.pp_flush_function <- (fun () -> flush os);; + +(************************************************************** + + Creation of specific formatters + + **************************************************************) + +let default_pp_mark_open_tag s = "<" ^ s ^ ">";; +let default_pp_mark_close_tag s = "";; + +let default_pp_print_open_tag s = ();; +let default_pp_print_close_tag = default_pp_print_open_tag;; + +let pp_make_formatter f g h i = + (* The initial state of the formatter contains a dummy box. *) + let pp_q = make_queue () in + let sys_tok = + make_queue_elem (size_of_int (-1)) (Pp_begin (0, Pp_hovbox)) 0 in + add_queue sys_tok pp_q; + let sys_scan_stack = + (Scan_elem (1, sys_tok)) :: scan_stack_bottom in + {pp_scan_stack = sys_scan_stack; + pp_format_stack = []; + pp_tbox_stack = []; + pp_tag_stack = []; + pp_mark_stack = []; + pp_margin = 78; + pp_min_space_left = 10; + pp_max_indent = 78 - 10; + pp_space_left = 78; + pp_current_indent = 0; + pp_is_new_line = true; + pp_left_total = 1; + pp_right_total = 1; + pp_curr_depth = 1; + pp_max_boxes = max_int; + pp_ellipsis = "."; + pp_output_function = f; + pp_flush_function = g; + pp_output_newline = h; + pp_output_spaces = i; + pp_print_tags = false; + pp_mark_tags = false; + pp_mark_open_tag = default_pp_mark_open_tag; + pp_mark_close_tag = default_pp_mark_close_tag; + pp_print_open_tag = default_pp_print_open_tag; + pp_print_close_tag = default_pp_print_close_tag; + pp_queue = pp_q + };; + +(* Default function to output spaces. *) +let blank_line = String.make 80 ' ';; +let rec display_blanks state n = + if n > 0 then + if n <= 80 then state.pp_output_function blank_line 0 n else + begin + state.pp_output_function blank_line 0 80; + display_blanks state (n - 80) + end;; + +(* Default function to output new lines. *) +let display_newline state () = state.pp_output_function "\n" 0 1;; + +let make_formatter f g = + let ff = pp_make_formatter f g ignore ignore in + ff.pp_output_newline <- display_newline ff; + ff.pp_output_spaces <- display_blanks ff; + ff;; + +let formatter_of_out_channel oc = + make_formatter (output oc) (fun () -> flush oc);; + +let formatter_of_buffer b = + make_formatter (Buffer.add_substring b) ignore;; + +let stdbuf = Buffer.create 512;; + +let str_formatter = formatter_of_buffer stdbuf;; +let std_formatter = formatter_of_out_channel stdout;; +let err_formatter = formatter_of_out_channel stderr;; + +let flush_str_formatter () = + pp_flush_queue str_formatter false; + let s = Buffer.contents stdbuf in + Buffer.reset stdbuf; + s;; + +(************************************************************** + + Basic functions on the standard formatter + + **************************************************************) + +let open_hbox = pp_open_hbox std_formatter +and open_vbox = pp_open_vbox std_formatter +and open_hvbox = pp_open_hvbox std_formatter +and open_hovbox = pp_open_hovbox std_formatter +and open_box = pp_open_box std_formatter +and close_box = pp_close_box std_formatter +and open_tag = pp_open_tag std_formatter +and close_tag = pp_close_tag std_formatter +and print_as = pp_print_as std_formatter +and print_string = pp_print_string std_formatter +and print_int = pp_print_int std_formatter +and print_float = pp_print_float std_formatter +and print_char = pp_print_char std_formatter +and print_bool = pp_print_bool std_formatter +and print_break = pp_print_break std_formatter +and print_cut = pp_print_cut std_formatter +and print_space = pp_print_space std_formatter +and force_newline = pp_force_newline std_formatter +and print_flush = pp_print_flush std_formatter +and print_newline = pp_print_newline std_formatter +and print_if_newline = pp_print_if_newline std_formatter + +and open_tbox = pp_open_tbox std_formatter +and close_tbox = pp_close_tbox std_formatter +and print_tbreak = pp_print_tbreak std_formatter + +and set_tab = pp_set_tab std_formatter +and print_tab = pp_print_tab std_formatter + +and set_margin = pp_set_margin std_formatter +and get_margin = pp_get_margin std_formatter + +and set_max_indent = pp_set_max_indent std_formatter +and get_max_indent = pp_get_max_indent std_formatter + +and set_max_boxes = pp_set_max_boxes std_formatter +and get_max_boxes = pp_get_max_boxes std_formatter +and over_max_boxes = pp_over_max_boxes std_formatter + +and set_ellipsis_text = pp_set_ellipsis_text std_formatter +and get_ellipsis_text = pp_get_ellipsis_text std_formatter + +and set_formatter_out_channel = + pp_set_formatter_out_channel std_formatter + +and set_formatter_output_functions = + pp_set_formatter_output_functions std_formatter +and get_formatter_output_functions = + pp_get_formatter_output_functions std_formatter + +and set_all_formatter_output_functions = + pp_set_all_formatter_output_functions std_formatter +and get_all_formatter_output_functions = + pp_get_all_formatter_output_functions std_formatter + +and set_formatter_tag_functions = + pp_set_formatter_tag_functions std_formatter +and get_formatter_tag_functions = + pp_get_formatter_tag_functions std_formatter +and set_print_tags = + pp_set_print_tags std_formatter +and get_print_tags = + pp_get_print_tags std_formatter +and set_mark_tags = + pp_set_mark_tags std_formatter +and get_mark_tags = + pp_get_mark_tags std_formatter +and set_tags = + pp_set_tags std_formatter +;; + + +(************************************************************** + + Printf implementation. + + **************************************************************) + +(* Error messages when processing formats. *) + +(* Trailer: giving up at character number ... *) +let giving_up mess fmt i = + "fprintf: " ^ mess ^ " ``" ^ fmt ^ "'', \ + giving up at character number " ^ string_of_int i ^ + (if i < String.length fmt + then " (" ^ String.make 1 fmt.[i] ^ ")." + else String.make 1 '.');; + +(* When an invalid format deserves a special error explanation. *) +let format_invalid_arg mess fmt i = invalid_arg (giving_up mess fmt i);; + +(* Standard invalid format. *) +let invalid_format fmt i = format_invalid_arg "bad format" fmt i;; + +(* Cannot find a valid integer into that format. *) +let invalid_integer fmt i = + invalid_arg (giving_up "bad integer specification" fmt i);; + +(* Finding an integer out of a sub-string of the format. *) +let format_int_of_string fmt i s = + let sz = + try int_of_string s with + | Failure s -> invalid_integer fmt i in + size_of_int sz;; + +(* Getting strings out of buffers. *) +let get_buffer_out b = + let s = Buffer.contents b in + Buffer.reset b; + s;; + +(* [ppf] is supposed to be a pretty-printer that outputs in buffer [b]: + to extract contents of [ppf] as a string we flush [ppf] and get the string + out of [b]. *) +let string_out b ppf = + pp_flush_queue ppf false; + get_buffer_out b;; + +(* Applies [printer] to a formatter that outputs on a fresh buffer, + then returns the resulting material. *) +let exstring printer arg = + let b = Buffer.create 512 in + let ppf = formatter_of_buffer b in + printer ppf arg; + string_out b ppf;; + +(* To turn out a character accumulator into the proper string result. *) +let implode_rev s0 = function + | [] -> s0 + | l -> String.concat "" (List.rev (s0 :: l));; + +external format_to_string : ('a, 'b, 'c, 'd) format4 -> string = "%identity";; + +(* [fprintf_out] is the printf-like function generator: given the + - [str] flag that tells if we are printing into a string, + - the [out] function that has to be called at the end of formatting, + it generates a [fprintf] function that takes as arguments a [ppf] + formatter and a printing format to print the rest of arguments + according to the format. + Regular [fprintf]-like functions of this module are obtained via partial + applications of [fprintf_out]. *) +let mkprintf str get_out = + let rec kprintf k fmt = + let fmt = format_to_string fmt in + let len = String.length fmt in + + let kpr fmt v = + let ppf = get_out fmt in + let print_as = ref None in + let pp_print_as_char c = + match !print_as with + | None -> pp_print_char ppf c + | Some size -> + pp_print_as_size ppf size (String.make 1 c); + print_as := None + and pp_print_as_string s = + match !print_as with + | None -> pp_print_string ppf s + | Some size -> + pp_print_as_size ppf size s; + print_as := None in + + let rec doprn n i = + if i >= len then Obj.magic (k ppf) else + match fmt.[i] with + | '%' -> + Printf.scan_format fmt v n i cont_s cont_a cont_t cont_f cont_m + | '@' -> + let i = succ i in + if i >= len then invalid_format fmt i else + begin match fmt.[i] with + | '[' -> + do_pp_open_box ppf n (succ i) + | ']' -> + pp_close_box ppf (); + doprn n (succ i) + | '{' -> + do_pp_open_tag ppf n (succ i) + | '}' -> + pp_close_tag ppf (); + doprn n (succ i) + | ' ' -> + pp_print_space ppf (); + doprn n (succ i) + | ',' -> + pp_print_cut ppf (); + doprn n (succ i) + | '?' -> + pp_print_flush ppf (); + doprn n (succ i) + | '.' -> + pp_print_newline ppf (); + doprn n (succ i) + | '\n' -> + pp_force_newline ppf (); + doprn n (succ i) + | ';' -> + do_pp_break ppf n (succ i) + | '<' -> + let got_size size n i = + print_as := Some size; + doprn n (skip_gt i) in + get_int n (succ i) got_size + | '@' as c -> + pp_print_as_char c; + doprn n (succ i) + | c -> invalid_format fmt i + end + | c -> + pp_print_as_char c; + doprn n (succ i) + + and cont_s n s i = + pp_print_as_string s; doprn n i + and cont_a n printer arg i = + if str then + pp_print_as_string ((Obj.magic printer : unit -> _ -> string) () arg) + else + printer ppf arg; + doprn n i + and cont_t n printer i = + if str then + pp_print_as_string ((Obj.magic printer : unit -> string) ()) + else + printer ppf; + doprn n i + and cont_f n i = + pp_print_flush ppf (); doprn n i + + and cont_m n sfmt i = + kprintf (Obj.magic (fun _ -> doprn n i)) sfmt + + and get_int n i c = + if i >= len then invalid_integer fmt i else + match fmt.[i] with + | ' ' -> get_int n (succ i) c + | '%' -> + let cont_s n s i = c (format_int_of_string fmt i s) n i + and cont_a n printer arg i = invalid_integer fmt i + and cont_t n printer i = invalid_integer fmt i + and cont_f n i = invalid_integer fmt i + and cont_m n sfmt i = invalid_integer fmt i in + Printf.scan_format fmt v n i cont_s cont_a cont_t cont_f cont_m + | _ -> + let rec get j = + if j >= len then invalid_integer fmt j else + match fmt.[j] with + | '0' .. '9' | '-' -> get (succ j) + | _ -> + let size = + if j = i then size_of_int 0 else + format_int_of_string fmt j (String.sub fmt i (j - i)) in + c size n j in + get i + + and skip_gt i = + if i >= len then invalid_format fmt i else + match fmt.[i] with + | ' ' -> skip_gt (succ i) + | '>' -> succ i + | _ -> invalid_format fmt i + + and get_box_kind i = + if i >= len then Pp_box, i else + match fmt.[i] with + | 'h' -> + let i = succ i in + if i >= len then Pp_hbox, i else + begin match fmt.[i] with + | 'o' -> + let i = succ i in + if i >= len then format_invalid_arg "bad box format" fmt i else + begin match fmt.[i] with + | 'v' -> Pp_hovbox, succ i + | c -> + format_invalid_arg + ("bad box name ho" ^ String.make 1 c) fmt i end + | 'v' -> Pp_hvbox, succ i + | c -> Pp_hbox, i + end + | 'b' -> Pp_box, succ i + | 'v' -> Pp_vbox, succ i + | _ -> Pp_box, i + + and get_tag_name n i c = + let rec get accu n i j = + if j >= len + then c (implode_rev (String.sub fmt i (j - i)) accu) n j else + match fmt.[j] with + | '>' -> c (implode_rev (String.sub fmt i (j - i)) accu) n j + | '%' -> + let s0 = String.sub fmt i (j - i) in + let cont_s n s i = get (s :: s0 :: accu) n i i + and cont_a n printer arg i = + let s = + if str + then (Obj.magic printer : unit -> _ -> string) () arg + else exstring printer arg in + get (s :: s0 :: accu) n i i + and cont_t n printer i = + let s = + if str + then (Obj.magic printer : unit -> string) () + else exstring (fun ppf () -> printer ppf) () in + get (s :: s0 :: accu) n i i + and cont_f n i = + format_invalid_arg "bad tag name specification" fmt i + and cont_m n sfmt i = + format_invalid_arg "bad tag name specification" fmt i in + Printf.scan_format fmt v n j cont_s cont_a cont_t cont_f cont_m + | c -> get accu n i (succ j) in + get [] n i i + + and do_pp_break ppf n i = + if i >= len then begin pp_print_space ppf (); doprn n i end else + match fmt.[i] with + | '<' -> + let rec got_nspaces nspaces n i = + get_int n i (got_offset nspaces) + and got_offset nspaces offset n i = + pp_print_break ppf (int_of_size nspaces) (int_of_size offset); + doprn n (skip_gt i) in + get_int n (succ i) got_nspaces + | c -> pp_print_space ppf (); doprn n i + + and do_pp_open_box ppf n i = + if i >= len then begin pp_open_box_gen ppf 0 Pp_box; doprn n i end else + match fmt.[i] with + | '<' -> + let kind, i = get_box_kind (succ i) in + let got_size size n i = + pp_open_box_gen ppf (int_of_size size) kind; + doprn n (skip_gt i) in + get_int n i got_size + | c -> pp_open_box_gen ppf 0 Pp_box; doprn n i + + and do_pp_open_tag ppf n i = + if i >= len then begin pp_open_tag ppf ""; doprn n i end else + match fmt.[i] with + | '<' -> + let got_name tag_name n i = + pp_open_tag ppf tag_name; + doprn n (skip_gt i) in + get_tag_name n (succ i) got_name + | c -> pp_open_tag ppf ""; doprn n i in + + doprn (Printf.index_of_int 0) 0 in + + Printf.kapr kpr fmt in + + kprintf;; + +(************************************************************** + + Defining [fprintf] and various flavors of [fprintf]. + + **************************************************************) + +let kfprintf k ppf = mkprintf false (fun _ -> ppf) k;; + +let fprintf ppf = kfprintf ignore ppf;; +let printf fmt = fprintf std_formatter fmt;; +let eprintf fmt = fprintf err_formatter fmt;; + +let kbprintf k b = + mkprintf false (fun _ -> formatter_of_buffer b) k;; + +let bprintf b = kbprintf ignore b;; + +let ksprintf k = + let b = Buffer.create 512 in + let k ppf = k (string_out b ppf) in + mkprintf true (fun _ -> formatter_of_buffer b) k;; + +let kprintf = ksprintf;; + +let sprintf fmt = ksprintf (fun s -> s) fmt;; + +at_exit print_flush;; Added: external/Pygments-0.9/tests/examplefiles/fucked_up.rb ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/fucked_up.rb Tue Oct 23 20:20:22 2007 @@ -0,0 +1,77 @@ +# vim:ft=ruby + +events = Hash.new { |h, k| h[k] = [] } +DATA.read.split(/\n\n\n\s*/).each do |event| + name = event[/^.*/].sub(/http:.*/, '') + event[/\n.*/m].scan(/^([A-Z]{2}\S*)\s*(\S*)\s*(\S*)(\s*\S*)/) do |kind, day, daytime, comment| + events[ [day, daytime] ] << [kind, name + comment] + end +end + +conflicts = 0 +events.to_a.sort_by do |(day, daytime),| + [%w(Mo Di Mi Do Fr).index(day) || 0, daytime] +end.each do |(day, daytime), names| + if names.size > 1 + conflicts += 1 + print '!!! ' + end + print "#{day} #{daytime}: " + names.each { |kind, name| puts " #{kind} #{name}" } + puts +end + +puts '%d conflicts' % conflicts +puts '%d SWS' % (events.inject(0) { |sum, ((day, daytime),)| sum + (daytime[/\d+$/].to_i - daytime[/^\d+/].to_i) }) + +string = % foo # strange. huh? +print "Escape here: \n" +print 'Dont escape here: \n' + +__END__ +Informatik und Informationsgesellschaft I: Digitale Medien (32 214) +Computer lassen ihre eigentliche Bestimmung durch Multimedia und Vernetzung erkennen: Es sind digitale Medien, die alle bisherigen Massen- und Kommunikationsmedien simulieren, kopieren oder ersetzen k??nnen. Die kurze Geschichte elektronischer Medien vom Telegramm bis zum Fernsehen wird so zur Vorgeschichte des Computers als Medium. Der Prozess der Mediatisierung der Rechnernetze soll in Technik, Theorie und Praxis untersucht werden. Das PR soll die Techniken der ortsverteilten und zeitversetzten Lehre an Hand praktischer ??bungen vorf??hren und untersuchen. +VL Di 15-17 w??ch. RUD 25, 3.101 J. Koubek +VL Do 15-17 w??ch. RUD 25, 3.101 +UE/PR Do 17-19 w??ch. RUD 25, 3.101 J.-M. Loebel + + +Methoden und Modelle des Systementwurfs (32 223) +Gute Methoden zum Entwurf und zur Verifikation von Systemen sind ein Schl??ssel f??r gute Software. Dieses Seminar betrachtet moderne Entwurfsmethoden. + VL Di 09-11 w??ch. RUD 26, 0??313 W. Reisig + VL Do 09-11 w??ch. RUD 26, 0??313 + UE Di 11-13 w??ch. RUD 26, 0??313 + PR Di 13-15 w??ch. RUD 26, 0??313 D. Weinberg + + +Komplexit??tstheorie (32 229) +In dieser Vorlesung untersuchen wir eine Reihe von wichtigen algorithmischen Problemstellungen aus verschiedenen Bereichen der Informatik. Unser besonderes Interesse gilt dabei der Absch??tzung der Rechenressourcen, die zu ihrer L??sung aufzubringen sind. Die Vorlesung bildet eine wichtige Grundlage f??r weiterf??hrende Veranstaltungen in den Bereichen Algorithmen, Kryptologie, Algorithmisches Lernen und Algorithmisches Beweisen. + VL Di 09-11 w??ch. RUD 26, 1??303 J. K??bler + VL Do 09-11 w??ch. RUD 26, 1??305 + UE Do 11-13 w??ch. RUD 26, 1??305 + + +Zuverl??ssige Systeme (32 234) +Mit zunehmender Verbreitung der Computertechnologie in immer mehr Bereichen des menschlichen Lebens wird die Zuverl??ssigkeit solcher Systeme zu einer immer zentraleren Frage. +Der Halbkurs "Zuverl??ssige Systeme" konzentriert sich auf folgende Schwerpunkte: Zuverl??ssigkeit, Fehlertoleranz, Responsivit??t, Messungen, Anwendungen, Systemmodelle und Techniken, Ausfallverhalten, Fehlermodelle, Schedulingtechniken, Software/Hardware - responsives Systemdesign, Analyse und Synthese, Bewertung, Fallstudien in Forschung und Industrie. +Der Halbkurs kann mit dem Halbkurs "Eigenschaften mobiler und eingebetteter Systeme" zu einem Projektkurs kombiniert werden. Ein gemeinsames Projekt begleitet beide Halbkurse. +VL Di 09-11 w??ch. RUD 26, 1??308 M. Malek +VL Do 09-11 w??ch. RUD 26, 1??308 +PR n.V. + + +Stochastik f??r InformatikerInnen (32 239) +Grundlagen der Wahrscheinlichkeitsrechnung, Diskrete und stetige Wahrscheinlichkeitsmodelle in der Informatik, Grenzwerts??tze, Simulationsverfahren, Zufallszahlen, Statistische Sch??tz- und Testverfahren, Markoffsche Ketten, Simulated Annealing, Probabilistische Analyse von Algorithmen. +VL Mo 09-11 w??ch. RUD 25, 3.101 W. K??ssler +VL Mi 09-11 w??ch. RUD 25, 3.101 +UE Mo 11-13 w??ch. RUD 25, 3.101 + UE Mi 11-13 w??ch. RUD 25. 3.101 + + +Geschichte der Informatik ?? Ausgew??hlte Kapitel (32 243) +VL Mi 13-15 w??ch. RUD 25, 3.113 W. Coy + + +Aktuelle Themen der Theoretischen Informatik (32 260) +In diesem Seminar sollen wichtige aktuelle Ver??ffentlichungen aus der theoretischen Informatik gemeinsam erarbeitet werden. Genaueres wird erst kurz vor dem Seminar entschieden. Bei Interesse wenden Sie sich bitte m??glichst fr??hzeitig an den Veranstalter. + SE Fr 09-11 w??ch. RUD 26, 1??307 M. Grohe?? Added: external/Pygments-0.9/tests/examplefiles/functional.rst ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/functional.rst Tue Oct 23 20:20:22 2007 @@ -0,0 +1,1472 @@ +Functional Programming HOWTO +================================ + +**Version 0.30** + +(This is a first draft. Please send comments/error +reports/suggestions to amk at amk.ca. This URL is probably not going to +be the final location of the document, so be careful about linking to +it -- you may want to add a disclaimer.) + +In this document, we'll take a tour of Python's features suitable for +implementing programs in a functional style. After an introduction to +the concepts of functional programming, we'll look at language +features such as iterators and generators and relevant library modules +such as ``itertools`` and ``functools``. + + +.. contents:: + +Introduction +---------------------- + +This section explains the basic concept of functional programming; if +you're just interested in learning about Python language features, +skip to the next section. + +Programming languages support decomposing problems in several different +ways: + +* Most programming languages are **procedural**: + programs are lists of instructions that tell the computer what to + do with the program's input. + C, Pascal, and even Unix shells are procedural languages. + +* In **declarative** languages, you write a specification that describes + the problem to be solved, and the language implementation figures out + how to perform the computation efficiently. SQL is the declarative + language you're most likely to be familiar with; a SQL query describes + the data set you want to retrieve, and the SQL engine decides whether to + scan tables or use indexes, which subclauses should be performed first, + etc. + +* **Object-oriented** programs manipulate collections of objects. + Objects have internal state and support methods that query or modify + this internal state in some way. Smalltalk and Java are + object-oriented languages. C++ and Python are languages that + support object-oriented programming, but don't force the use + of object-oriented features. + +* **Functional** programming decomposes a problem into a set of functions. + Ideally, functions only take inputs and produce outputs, and don't have any + internal state that affects the output produced for a given input. + Well-known functional languages include the ML family (Standard ML, + OCaml, and other variants) and Haskell. + +The designers of some computer languages have chosen one approach to +programming that's emphasized. This often makes it difficult to +write programs that use a different approach. Other languages are +multi-paradigm languages that support several different approaches. Lisp, +C++, and Python are multi-paradigm; you can write programs or +libraries that are largely procedural, object-oriented, or functional +in all of these languages. In a large program, different sections +might be written using different approaches; the GUI might be object-oriented +while the processing logic is procedural or functional, for example. + +In a functional program, input flows through a set of functions. Each +function operates on its input and produces some output. Functional +style frowns upon functions with side effects that modify internal +state or make other changes that aren't visible in the function's +return value. Functions that have no side effects at all are +called **purely functional**. +Avoiding side effects means not using data structures +that get updated as a program runs; every function's output +must only depend on its input. + +Some languages are very strict about purity and don't even have +assignment statements such as ``a=3`` or ``c = a + b``, but it's +difficult to avoid all side effects. Printing to the screen or +writing to a disk file are side effects, for example. For example, in +Python a ``print`` statement or a ``time.sleep(1)`` both return no +useful value; they're only called for their side effects of sending +some text to the screen or pausing execution for a second. + +Python programs written in functional style usually won't go to the +extreme of avoiding all I/O or all assignments; instead, they'll +provide a functional-appearing interface but will use non-functional +features internally. For example, the implementation of a function +will still use assignments to local variables, but won't modify global +variables or have other side effects. + +Functional programming can be considered the opposite of +object-oriented programming. Objects are little capsules containing +some internal state along with a collection of method calls that let +you modify this state, and programs consist of making the right set of +state changes. Functional programming wants to avoid state changes as +much as possible and works with data flowing between functions. In +Python you might combine the two approaches by writing functions that +take and return instances representing objects in your application +(e-mail messages, transactions, etc.). + +Functional design may seem like an odd constraint to work under. Why +should you avoid objects and side effects? There are theoretical and +practical advantages to the functional style: + +* Formal provability. +* Modularity. +* Composability. +* Ease of debugging and testing. + +Formal provability +'''''''''''''''''''''' + +A theoretical benefit is that it's easier to construct a mathematical proof +that a functional program is correct. + +For a long time researchers have been interested in finding ways to +mathematically prove programs correct. This is different from testing +a program on numerous inputs and concluding that its output is usually +correct, or reading a program's source code and concluding that the +code looks right; the goal is instead a rigorous proof that a program +produces the right result for all possible inputs. + +The technique used to prove programs correct is to write down +**invariants**, properties of the input data and of the program's +variables that are always true. For each line of code, you then show +that if invariants X and Y are true **before** the line is executed, +the slightly different invariants X' and Y' are true **after** +the line is executed. This continues until you reach the end of the +program, at which point the invariants should match the desired +conditions on the program's output. + +Functional programming's avoidance of assignments arose because +assignments are difficult to handle with this technique; +assignments can break invariants that were true before the assignment +without producing any new invariants that can be propagated onward. + +Unfortunately, proving programs correct is largely impractical and not +relevant to Python software. Even trivial programs require proofs that +are several pages long; the proof of correctness for a moderately +complicated program would be enormous, and few or none of the programs +you use daily (the Python interpreter, your XML parser, your web +browser) could be proven correct. Even if you wrote down or generated +a proof, there would then be the question of verifying the proof; +maybe there's an error in it, and you wrongly believe you've proved +the program correct. + +Modularity +'''''''''''''''''''''' + +A more practical benefit of functional programming is that it forces +you to break apart your problem into small pieces. Programs are more +modular as a result. It's easier to specify and write a small +function that does one thing than a large function that performs a +complicated transformation. Small functions are also easier to read +and to check for errors. + + +Ease of debugging and testing +'''''''''''''''''''''''''''''''''' + +Testing and debugging a functional-style program is easier. + +Debugging is simplified because functions are generally small and +clearly specified. When a program doesn't work, each function is an +interface point where you can check that the data are correct. You +can look at the intermediate inputs and outputs to quickly isolate the +function that's responsible for a bug. + +Testing is easier because each function is a potential subject for a +unit test. Functions don't depend on system state that needs to be +replicated before running a test; instead you only have to synthesize +the right input and then check that the output matches expectations. + + + +Composability +'''''''''''''''''''''' + +As you work on a functional-style program, you'll write a number of +functions with varying inputs and outputs. Some of these functions +will be unavoidably specialized to a particular application, but +others will be useful in a wide variety of programs. For example, a +function that takes a directory path and returns all the XML files in +the directory, or a function that takes a filename and returns its +contents, can be applied to many different situations. + +Over time you'll form a personal library of utilities. Often you'll +assemble new programs by arranging existing functions in a new +configuration and writing a few functions specialized for the current +task. + + + +Iterators +----------------------- + +I'll start by looking at a Python language feature that's an important +foundation for writing functional-style programs: iterators. + +An iterator is an object representing a stream of data; this object +returns the data one element at a time. A Python iterator must +support a method called ``next()`` that takes no arguments and always +returns the next element of the stream. If there are no more elements +in the stream, ``next()`` must raise the ``StopIteration`` exception. +Iterators don't have to be finite, though; it's perfectly reasonable +to write an iterator that produces an infinite stream of data. + +The built-in ``iter()`` function takes an arbitrary object and tries +to return an iterator that will return the object's contents or +elements, raising ``TypeError`` if the object doesn't support +iteration. Several of Python's built-in data types support iteration, +the most common being lists and dictionaries. An object is called +an **iterable** object if you can get an iterator for it. + +You can experiment with the iteration interface manually:: + + >>> L = [1,2,3] + >>> it = iter(L) + >>> print it + + >>> it.next() + 1 + >>> it.next() + 2 + >>> it.next() + 3 + >>> it.next() + Traceback (most recent call last): + File "", line 1, in ? + StopIteration + >>> + +Python expects iterable objects in several different contexts, the +most important being the ``for`` statement. In the statement ``for X in Y``, +Y must be an iterator or some object for which ``iter()`` can create +an iterator. These two statements are equivalent:: + + for i in iter(obj): + print i + + for i in obj: + print i + +Iterators can be materialized as lists or tuples by using the +``list()`` or ``tuple()`` constructor functions:: + + >>> L = [1,2,3] + >>> iterator = iter(L) + >>> t = tuple(iterator) + >>> t + (1, 2, 3) + +Sequence unpacking also supports iterators: if you know an iterator +will return N elements, you can unpack them into an N-tuple:: + + >>> L = [1,2,3] + >>> iterator = iter(L) + >>> a,b,c = iterator + >>> a,b,c + (1, 2, 3) + +Built-in functions such as ``max()`` and ``min()`` can take a single +iterator argument and will return the largest or smallest element. +The ``"in"`` and ``"not in"`` operators also support iterators: ``X in +iterator`` is true if X is found in the stream returned by the +iterator. You'll run into obvious problems if the iterator is +infinite; ``max()``, ``min()``, and ``"not in"`` will never return, and +if the element X never appears in the stream, the ``"in"`` operator +won't return either. + +Note that you can only go forward in an iterator; there's no way to +get the previous element, reset the iterator, or make a copy of it. +Iterator objects can optionally provide these additional capabilities, +but the iterator protocol only specifies the ``next()`` method. +Functions may therefore consume all of the iterator's output, and if +you need to do something different with the same stream, you'll have +to create a new iterator. + + + +Data Types That Support Iterators +''''''''''''''''''''''''''''''''''' + +We've already seen how lists and tuples support iterators. In fact, +any Python sequence type, such as strings, will automatically support +creation of an iterator. + +Calling ``iter()`` on a dictionary returns an iterator that will loop +over the dictionary's keys:: + + >>> m = {'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr': 4, 'May': 5, 'Jun': 6, + ... 'Jul': 7, 'Aug': 8, 'Sep': 9, 'Oct': 10, 'Nov': 11, 'Dec': 12} + >>> for key in m: + ... print key, m[key] + Mar 3 + Feb 2 + Aug 8 + Sep 9 + May 5 + Jun 6 + Jul 7 + Jan 1 + Apr 4 + Nov 11 + Dec 12 + Oct 10 + +Note that the order is essentially random, because it's based on the +hash ordering of the objects in the dictionary. + +Applying ``iter()`` to a dictionary always loops over the keys, but +dictionaries have methods that return other iterators. If you want to +iterate over keys, values, or key/value pairs, you can explicitly call +the ``iterkeys()``, ``itervalues()``, or ``iteritems()`` methods to +get an appropriate iterator. + +The ``dict()`` constructor can accept an iterator that returns a +finite stream of ``(key, value)`` tuples:: + + >>> L = [('Italy', 'Rome'), ('France', 'Paris'), ('US', 'Washington DC')] + >>> dict(iter(L)) + {'Italy': 'Rome', 'US': 'Washington DC', 'France': 'Paris'} + +Files also support iteration by calling the ``readline()`` +method until there are no more lines in the file. This means you can +read each line of a file like this:: + + for line in file: + # do something for each line + ... + +Sets can take their contents from an iterable and let you iterate over +the set's elements:: + + S = set((2, 3, 5, 7, 11, 13)) + for i in S: + print i + + + +Generator expressions and list comprehensions +---------------------------------------------------- + +Two common operations on an iterator's output are 1) performing some +operation for every element, 2) selecting a subset of elements that +meet some condition. For example, given a list of strings, you might +want to strip off trailing whitespace from each line or extract all +the strings containing a given substring. + +List comprehensions and generator expressions (short form: "listcomps" +and "genexps") are a concise notation for such operations, borrowed +from the functional programming language Haskell +(http://www.haskell.org). You can strip all the whitespace from a +stream of strings with the following code:: + + line_list = [' line 1\n', 'line 2 \n', ...] + + # Generator expression -- returns iterator + stripped_iter = (line.strip() for line in line_list) + + # List comprehension -- returns list + stripped_list = [line.strip() for line in line_list] + +You can select only certain elements by adding an ``"if"`` condition:: + + stripped_list = [line.strip() for line in line_list + if line != ""] + +With a list comprehension, you get back a Python list; +``stripped_list`` is a list containing the resulting lines, not an +iterator. Generator expressions return an iterator that computes the +values as necessary, not needing to materialize all the values at +once. This means that list comprehensions aren't useful if you're +working with iterators that return an infinite stream or a very large +amount of data. Generator expressions are preferable in these +situations. + +Generator expressions are surrounded by parentheses ("()") and list +comprehensions are surrounded by square brackets ("[]"). Generator +expressions have the form:: + + ( expression for expr in sequence1 + if condition1 + for expr2 in sequence2 + if condition2 + for expr3 in sequence3 ... + if condition3 + for exprN in sequenceN + if conditionN ) + +Again, for a list comprehension only the outside brackets are +different (square brackets instead of parentheses). + +The elements of the generated output will be the successive values of +``expression``. The ``if`` clauses are all optional; if present, +``expression`` is only evaluated and added to the result when +``condition`` is true. + +Generator expressions always have to be written inside parentheses, +but the parentheses signalling a function call also count. If you +want to create an iterator that will be immediately passed to a +function you can write:: + + obj_total = sum(obj.count for obj in list_all_objects()) + +The ``for...in`` clauses contain the sequences to be iterated over. +The sequences do not have to be the same length, because they are +iterated over from left to right, **not** in parallel. For each +element in ``sequence1``, ``sequence2`` is looped over from the +beginning. ``sequence3`` is then looped over for each +resulting pair of elements from ``sequence1`` and ``sequence2``. + +To put it another way, a list comprehension or generator expression is +equivalent to the following Python code:: + + for expr1 in sequence1: + if not (condition1): + continue # Skip this element + for expr2 in sequence2: + if not (condition2): + continue # Skip this element + ... + for exprN in sequenceN: + if not (conditionN): + continue # Skip this element + + # Output the value of + # the expression. + +This means that when there are multiple ``for...in`` clauses but no +``if`` clauses, the length of the resulting output will be equal to +the product of the lengths of all the sequences. If you have two +lists of length 3, the output list is 9 elements long:: + + seq1 = 'abc' + seq2 = (1,2,3) + >>> [ (x,y) for x in seq1 for y in seq2] + [('a', 1), ('a', 2), ('a', 3), + ('b', 1), ('b', 2), ('b', 3), + ('c', 1), ('c', 2), ('c', 3)] + +To avoid introducing an ambiguity into Python's grammar, if +``expression`` is creating a tuple, it must be surrounded with +parentheses. The first list comprehension below is a syntax error, +while the second one is correct:: + + # Syntax error + [ x,y for x in seq1 for y in seq2] + # Correct + [ (x,y) for x in seq1 for y in seq2] + + +Generators +----------------------- + +Generators are a special class of functions that simplify the task of +writing iterators. Regular functions compute a value and return it, +but generators return an iterator that returns a stream of values. + +You're doubtless familiar with how regular function calls work in +Python or C. When you call a function, it gets a private namespace +where its local variables are created. When the function reaches a +``return`` statement, the local variables are destroyed and the +value is returned to the caller. A later call to the same function +creates a new private namespace and a fresh set of local +variables. But, what if the local variables weren't thrown away on +exiting a function? What if you could later resume the function where +it left off? This is what generators provide; they can be thought of +as resumable functions. + +Here's the simplest example of a generator function:: + + def generate_ints(N): + for i in range(N): + yield i + +Any function containing a ``yield`` keyword is a generator function; +this is detected by Python's bytecode compiler which compiles the +function specially as a result. + +When you call a generator function, it doesn't return a single value; +instead it returns a generator object that supports the iterator +protocol. On executing the ``yield`` expression, the generator +outputs the value of ``i``, similar to a ``return`` +statement. The big difference between ``yield`` and a +``return`` statement is that on reaching a ``yield`` the +generator's state of execution is suspended and local variables are +preserved. On the next call to the generator's ``.next()`` method, +the function will resume executing. + +Here's a sample usage of the ``generate_ints()`` generator:: + + >>> gen = generate_ints(3) + >>> gen + + >>> gen.next() + 0 + >>> gen.next() + 1 + >>> gen.next() + 2 + >>> gen.next() + Traceback (most recent call last): + File "stdin", line 1, in ? + File "stdin", line 2, in generate_ints + StopIteration + +You could equally write ``for i in generate_ints(5)``, or +``a,b,c = generate_ints(3)``. + +Inside a generator function, the ``return`` statement can only be used +without a value, and signals the end of the procession of values; +after executing a ``return`` the generator cannot return any further +values. ``return`` with a value, such as ``return 5``, is a syntax +error inside a generator function. The end of the generator's results +can also be indicated by raising ``StopIteration`` manually, or by +just letting the flow of execution fall off the bottom of the +function. + +You could achieve the effect of generators manually by writing your +own class and storing all the local variables of the generator as +instance variables. For example, returning a list of integers could +be done by setting ``self.count`` to 0, and having the +``next()`` method increment ``self.count`` and return it. +However, for a moderately complicated generator, writing a +corresponding class can be much messier. + +The test suite included with Python's library, ``test_generators.py``, +contains a number of more interesting examples. Here's one generator +that implements an in-order traversal of a tree using generators +recursively. + +:: + + # A recursive generator that generates Tree leaves in in-order. + def inorder(t): + if t: + for x in inorder(t.left): + yield x + + yield t.label + + for x in inorder(t.right): + yield x + +Two other examples in ``test_generators.py`` produce +solutions for the N-Queens problem (placing N queens on an NxN +chess board so that no queen threatens another) and the Knight's Tour +(finding a route that takes a knight to every square of an NxN chessboard +without visiting any square twice). + + + +Passing values into a generator +'''''''''''''''''''''''''''''''''''''''''''''' + +In Python 2.4 and earlier, generators only produced output. Once a +generator's code was invoked to create an iterator, there was no way to +pass any new information into the function when its execution is +resumed. You could hack together this ability by making the +generator look at a global variable or by passing in some mutable object +that callers then modify, but these approaches are messy. + +In Python 2.5 there's a simple way to pass values into a generator. +``yield`` became an expression, returning a value that can be assigned +to a variable or otherwise operated on:: + + val = (yield i) + +I recommend that you **always** put parentheses around a ``yield`` +expression when you're doing something with the returned value, as in +the above example. The parentheses aren't always necessary, but it's +easier to always add them instead of having to remember when they're +needed. + +(PEP 342 explains the exact rules, which are that a +``yield``-expression must always be parenthesized except when it +occurs at the top-level expression on the right-hand side of an +assignment. This means you can write ``val = yield i`` but have to +use parentheses when there's an operation, as in ``val = (yield i) ++ 12``.) + +Values are sent into a generator by calling its +``send(value)`` method. This method resumes the +generator's code and the ``yield`` expression returns the specified +value. If the regular ``next()`` method is called, the +``yield`` returns ``None``. + +Here's a simple counter that increments by 1 and allows changing the +value of the internal counter. + +:: + + def counter (maximum): + i = 0 + while i < maximum: + val = (yield i) + # If value provided, change counter + if val is not None: + i = val + else: + i += 1 + +And here's an example of changing the counter: + + >>> it = counter(10) + >>> print it.next() + 0 + >>> print it.next() + 1 + >>> print it.send(8) + 8 + >>> print it.next() + 9 + >>> print it.next() + Traceback (most recent call last): + File ``t.py'', line 15, in ? + print it.next() + StopIteration + +Because ``yield`` will often be returning ``None``, you +should always check for this case. Don't just use its value in +expressions unless you're sure that the ``send()`` method +will be the only method used resume your generator function. + +In addition to ``send()``, there are two other new methods on +generators: + +* ``throw(type, value=None, traceback=None)`` is used to raise an exception inside the + generator; the exception is raised by the ``yield`` expression + where the generator's execution is paused. + +* ``close()`` raises a ``GeneratorExit`` + exception inside the generator to terminate the iteration. + On receiving this + exception, the generator's code must either raise + ``GeneratorExit`` or ``StopIteration``; catching the + exception and doing anything else is illegal and will trigger + a ``RuntimeError``. ``close()`` will also be called by + Python's garbage collector when the generator is garbage-collected. + + If you need to run cleanup code when a ``GeneratorExit`` occurs, + I suggest using a ``try: ... finally:`` suite instead of + catching ``GeneratorExit``. + +The cumulative effect of these changes is to turn generators from +one-way producers of information into both producers and consumers. + +Generators also become **coroutines**, a more generalized form of +subroutines. Subroutines are entered at one point and exited at +another point (the top of the function, and a ``return`` +statement), but coroutines can be entered, exited, and resumed at +many different points (the ``yield`` statements). + + +Built-in functions +---------------------------------------------- + +Let's look in more detail at built-in functions often used with iterators. + +Two Python's built-in functions, ``map()`` and ``filter()``, are +somewhat obsolete; they duplicate the features of list comprehensions +but return actual lists instead of iterators. + +``map(f, iterA, iterB, ...)`` returns a list containing ``f(iterA[0], +iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``. + +:: + + def upper(s): + return s.upper() + map(upper, ['sentence', 'fragment']) => + ['SENTENCE', 'FRAGMENT'] + + [upper(s) for s in ['sentence', 'fragment']] => + ['SENTENCE', 'FRAGMENT'] + +As shown above, you can achieve the same effect with a list +comprehension. The ``itertools.imap()`` function does the same thing +but can handle infinite iterators; it'll be discussed later, in the section on +the ``itertools`` module. + +``filter(predicate, iter)`` returns a list +that contains all the sequence elements that meet a certain condition, +and is similarly duplicated by list comprehensions. +A **predicate** is a function that returns the truth value of +some condition; for use with ``filter()``, the predicate must take a +single value. + +:: + + def is_even(x): + return (x % 2) == 0 + + filter(is_even, range(10)) => + [0, 2, 4, 6, 8] + +This can also be written as a list comprehension:: + + >>> [x for x in range(10) if is_even(x)] + [0, 2, 4, 6, 8] + +``filter()`` also has a counterpart in the ``itertools`` module, +``itertools.ifilter()``, that returns an iterator and +can therefore handle infinite sequences just as ``itertools.imap()`` can. + +``reduce(func, iter, [initial_value])`` doesn't have a counterpart in +the ``itertools`` module because it cumulatively performs an operation +on all the iterable's elements and therefore can't be applied to +infinite iterables. ``func`` must be a function that takes two elements +and returns a single value. ``reduce()`` takes the first two elements +A and B returned by the iterator and calculates ``func(A, B)``. It +then requests the third element, C, calculates ``func(func(A, B), +C)``, combines this result with the fourth element returned, and +continues until the iterable is exhausted. If the iterable returns no +values at all, a ``TypeError`` exception is raised. If the initial +value is supplied, it's used as a starting point and +``func(initial_value, A)`` is the first calculation. + +:: + + import operator + reduce(operator.concat, ['A', 'BB', 'C']) => + 'ABBC' + reduce(operator.concat, []) => + TypeError: reduce() of empty sequence with no initial value + reduce(operator.mul, [1,2,3], 1) => + 6 + reduce(operator.mul, [], 1) => + 1 + +If you use ``operator.add`` with ``reduce()``, you'll add up all the +elements of the iterable. This case is so common that there's a special +built-in called ``sum()`` to compute it:: + + reduce(operator.add, [1,2,3,4], 0) => + 10 + sum([1,2,3,4]) => + 10 + sum([]) => + 0 + +For many uses of ``reduce()``, though, it can be clearer to just write +the obvious ``for`` loop:: + + # Instead of: + product = reduce(operator.mul, [1,2,3], 1) + + # You can write: + product = 1 + for i in [1,2,3]: + product *= i + + +``enumerate(iter)`` counts off the elements in the iterable, returning +2-tuples containing the count and each element. + +:: + + enumerate(['subject', 'verb', 'object']) => + (0, 'subject'), (1, 'verb'), (2, 'object') + +``enumerate()`` is often used when looping through a list +and recording the indexes at which certain conditions are met:: + + f = open('data.txt', 'r') + for i, line in enumerate(f): + if line.strip() == '': + print 'Blank line at line #%i' % i + +``sorted(iterable, [cmp=None], [key=None], [reverse=False)`` +collects all the elements of the iterable into a list, sorts +the list, and returns the sorted result. The ``cmp``, ``key``, +and ``reverse`` arguments are passed through to the +constructed list's ``.sort()`` method. + +:: + + import random + # Generate 8 random numbers between [0, 10000) + rand_list = random.sample(range(10000), 8) + rand_list => + [769, 7953, 9828, 6431, 8442, 9878, 6213, 2207] + sorted(rand_list) => + [769, 2207, 6213, 6431, 7953, 8442, 9828, 9878] + sorted(rand_list, reverse=True) => + [9878, 9828, 8442, 7953, 6431, 6213, 2207, 769] + +(For a more detailed discussion of sorting, see the Sorting mini-HOWTO +in the Python wiki at http://wiki.python.org/moin/HowTo/Sorting.) + +The ``any(iter)`` and ``all(iter)`` built-ins look at +the truth values of an iterable's contents. ``any()`` returns +True if any element in the iterable is a true value, and ``all()`` +returns True if all of the elements are true values:: + + any([0,1,0]) => + True + any([0,0,0]) => + False + any([1,1,1]) => + True + all([0,1,0]) => + False + all([0,0,0]) => + False + all([1,1,1]) => + True + + +Small functions and the lambda statement +---------------------------------------------- + +When writing functional-style programs, you'll often need little +functions that act as predicates or that combine elements in some way. + +If there's a Python built-in or a module function that's suitable, you +don't need to define a new function at all:: + + stripped_lines = [line.strip() for line in lines] + existing_files = filter(os.path.exists, file_list) + +If the function you need doesn't exist, you need to write it. One way +to write small functions is to use the ``lambda`` statement. ``lambda`` +takes a number of parameters and an expression combining these parameters, +and creates a small function that returns the value of the expression:: + + lowercase = lambda x: x.lower() + + print_assign = lambda name, value: name + '=' + str(value) + + adder = lambda x, y: x+y + +An alternative is to just use the ``def`` statement and define a +function in the usual way:: + + def lowercase(x): + return x.lower() + + def print_assign(name, value): + return name + '=' + str(value) + + def adder(x,y): + return x + y + +Which alternative is preferable? That's a style question; my usual +course is to avoid using ``lambda``. + +One reason for my preference is that ``lambda`` is quite limited in +the functions it can define. The result has to be computable as a +single expression, which means you can't have multiway +``if... elif... else`` comparisons or ``try... except`` statements. +If you try to do too much in a ``lambda`` statement, you'll end up +with an overly complicated expression that's hard to read. Quick, +what's the following code doing? + +:: + + total = reduce(lambda a, b: (0, a[1] + b[1]), items)[1] + +You can figure it out, but it takes time to disentangle the expression +to figure out what's going on. Using a short nested +``def`` statements makes things a little bit better:: + + def combine (a, b): + return 0, a[1] + b[1] + + total = reduce(combine, items)[1] + +But it would be best of all if I had simply used a ``for`` loop:: + + total = 0 + for a, b in items: + total += b + +Or the ``sum()`` built-in and a generator expression:: + + total = sum(b for a,b in items) + +Many uses of ``reduce()`` are clearer when written as ``for`` loops. + +Fredrik Lundh once suggested the following set of rules for refactoring +uses of ``lambda``: + +1) Write a lambda function. +2) Write a comment explaining what the heck that lambda does. +3) Study the comment for a while, and think of a name that captures + the essence of the comment. +4) Convert the lambda to a def statement, using that name. +5) Remove the comment. + +I really like these rules, but you're free to disagree that this +lambda-free style is better. + + +The itertools module +----------------------- + +The ``itertools`` module contains a number of commonly-used iterators +as well as functions for combining several iterators. This section +will introduce the module's contents by showing small examples. + +The module's functions fall into a few broad classes: + +* Functions that create a new iterator based on an existing iterator. +* Functions for treating an iterator's elements as function arguments. +* Functions for selecting portions of an iterator's output. +* A function for grouping an iterator's output. + +Creating new iterators +'''''''''''''''''''''' + +``itertools.count(n)`` returns an infinite stream of +integers, increasing by 1 each time. You can optionally supply the +starting number, which defaults to 0:: + + itertools.count() => + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... + itertools.count(10) => + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ... + +``itertools.cycle(iter)`` saves a copy of the contents of a provided +iterable and returns a new iterator that returns its elements from +first to last. The new iterator will repeat these elements infinitely. + +:: + + itertools.cycle([1,2,3,4,5]) => + 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... + +``itertools.repeat(elem, [n])`` returns the provided element ``n`` +times, or returns the element endlessly if ``n`` is not provided. + +:: + + itertools.repeat('abc') => + abc, abc, abc, abc, abc, abc, abc, abc, abc, abc, ... + itertools.repeat('abc', 5) => + abc, abc, abc, abc, abc + +``itertools.chain(iterA, iterB, ...)`` takes an arbitrary number of +iterables as input, and returns all the elements of the first +iterator, then all the elements of the second, and so on, until all of +the iterables have been exhausted. + +:: + + itertools.chain(['a', 'b', 'c'], (1, 2, 3)) => + a, b, c, 1, 2, 3 + +``itertools.izip(iterA, iterB, ...)`` takes one element from each iterable +and returns them in a tuple:: + + itertools.izip(['a', 'b', 'c'], (1, 2, 3)) => + ('a', 1), ('b', 2), ('c', 3) + +It's similiar to the built-in ``zip()`` function, but doesn't +construct an in-memory list and exhaust all the input iterators before +returning; instead tuples are constructed and returned only if they're +requested. (The technical term for this behaviour is +`lazy evaluation `__.) + +This iterator is intended to be used with iterables that are all of +the same length. If the iterables are of different lengths, the +resulting stream will be the same length as the shortest iterable. + +:: + + itertools.izip(['a', 'b'], (1, 2, 3)) => + ('a', 1), ('b', 2) + +You should avoid doing this, though, because an element may be taken +from the longer iterators and discarded. This means you can't go on +to use the iterators further because you risk skipping a discarded +element. + +``itertools.islice(iter, [start], stop, [step])`` returns a stream +that's a slice of the iterator. With a single ``stop`` argument, +it will return the first ``stop`` +elements. If you supply a starting index, you'll get ``stop-start`` +elements, and if you supply a value for ``step``, elements will be +skipped accordingly. Unlike Python's string and list slicing, you +can't use negative values for ``start``, ``stop``, or ``step``. + +:: + + itertools.islice(range(10), 8) => + 0, 1, 2, 3, 4, 5, 6, 7 + itertools.islice(range(10), 2, 8) => + 2, 3, 4, 5, 6, 7 + itertools.islice(range(10), 2, 8, 2) => + 2, 4, 6 + +``itertools.tee(iter, [n])`` replicates an iterator; it returns ``n`` +independent iterators that will all return the contents of the source +iterator. If you don't supply a value for ``n``, the default is 2. +Replicating iterators requires saving some of the contents of the source +iterator, so this can consume significant memory if the iterator is large +and one of the new iterators is consumed more than the others. + +:: + + itertools.tee( itertools.count() ) => + iterA, iterB + + where iterA -> + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... + + and iterB -> + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... + + +Calling functions on elements +''''''''''''''''''''''''''''' + +Two functions are used for calling other functions on the contents of an +iterable. + +``itertools.imap(f, iterA, iterB, ...)`` returns +a stream containing ``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), +f(iterA[2], iterB[2]), ...``:: + + itertools.imap(operator.add, [5, 6, 5], [1, 2, 3]) => + 6, 8, 8 + +The ``operator`` module contains a set of functions +corresponding to Python's operators. Some examples are +``operator.add(a, b)`` (adds two values), +``operator.ne(a, b)`` (same as ``a!=b``), +and +``operator.attrgetter('id')`` (returns a callable that +fetches the ``"id"`` attribute). + +``itertools.starmap(func, iter)`` assumes that the iterable will +return a stream of tuples, and calls ``f()`` using these tuples as the +arguments:: + + itertools.starmap(os.path.join, + [('/usr', 'bin', 'java'), ('/bin', 'python'), + ('/usr', 'bin', 'perl'),('/usr', 'bin', 'ruby')]) + => + /usr/bin/java, /bin/python, /usr/bin/perl, /usr/bin/ruby + + +Selecting elements +'''''''''''''''''' + +Another group of functions chooses a subset of an iterator's elements +based on a predicate. + +``itertools.ifilter(predicate, iter)`` returns all the elements for +which the predicate returns true:: + + def is_even(x): + return (x % 2) == 0 + + itertools.ifilter(is_even, itertools.count()) => + 0, 2, 4, 6, 8, 10, 12, 14, ... + +``itertools.ifilterfalse(predicate, iter)`` is the opposite, +returning all elements for which the predicate returns false:: + + itertools.ifilterfalse(is_even, itertools.count()) => + 1, 3, 5, 7, 9, 11, 13, 15, ... + +``itertools.takewhile(predicate, iter)`` returns elements for as long +as the predicate returns true. Once the predicate returns false, +the iterator will signal the end of its results. + +:: + + def less_than_10(x): + return (x < 10) + + itertools.takewhile(less_than_10, itertools.count()) => + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 + + itertools.takewhile(is_even, itertools.count()) => + 0 + +``itertools.dropwhile(predicate, iter)`` discards elements while the +predicate returns true, and then returns the rest of the iterable's +results. + +:: + + itertools.dropwhile(less_than_10, itertools.count()) => + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ... + + itertools.dropwhile(is_even, itertools.count()) => + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ... + + +Grouping elements +''''''''''''''''' + +The last function I'll discuss, ``itertools.groupby(iter, +key_func=None)``, is the most complicated. ``key_func(elem)`` is a +function that can compute a key value for each element returned by the +iterable. If you don't supply a key function, the key is simply each +element itself. + +``groupby()`` collects all the consecutive elements from the +underlying iterable that have the same key value, and returns a stream +of 2-tuples containing a key value and an iterator for the elements +with that key. + +:: + + city_list = [('Decatur', 'AL'), ('Huntsville', 'AL'), ('Selma', 'AL'), + ('Anchorage', 'AK'), ('Nome', 'AK'), + ('Flagstaff', 'AZ'), ('Phoenix', 'AZ'), ('Tucson', 'AZ'), + ... + ] + + def get_state ((city, state)): + return state + + itertools.groupby(city_list, get_state) => + ('AL', iterator-1), + ('AK', iterator-2), + ('AZ', iterator-3), ... + + where + iterator-1 => + ('Decatur', 'AL'), ('Huntsville', 'AL'), ('Selma', 'AL') + iterator-2 => + ('Anchorage', 'AK'), ('Nome', 'AK') + iterator-3 => + ('Flagstaff', 'AZ'), ('Phoenix', 'AZ'), ('Tucson', 'AZ') + +``groupby()`` assumes that the underlying iterable's contents will +already be sorted based on the key. Note that the returned iterators +also use the underlying iterable, so you have to consume the results +of iterator-1 before requesting iterator-2 and its corresponding key. + + +The functools module +---------------------------------------------- + +The ``functools`` module in Python 2.5 contains some higher-order +functions. A **higher-order function** takes one or more functions as +input and returns a new function. The most useful tool in this module +is the ``partial()`` function. + +For programs written in a functional style, you'll sometimes want to +construct variants of existing functions that have some of the +parameters filled in. Consider a Python function ``f(a, b, c)``; you +may wish to create a new function ``g(b, c)`` that's equivalent to +``f(1, b, c)``; you're filling in a value for one of ``f()``'s parameters. +This is called "partial function application". + +The constructor for ``partial`` takes the arguments ``(function, arg1, +arg2, ... kwarg1=value1, kwarg2=value2)``. The resulting object is +callable, so you can just call it to invoke ``function`` with the +filled-in arguments. + +Here's a small but realistic example:: + + import functools + + def log (message, subsystem): + "Write the contents of 'message' to the specified subsystem." + print '%s: %s' % (subsystem, message) + ... + + server_log = functools.partial(log, subsystem='server') + server_log('Unable to open socket') + + +The operator module +------------------- + +The ``operator`` module was mentioned earlier. It contains a set of +functions corresponding to Python's operators. These functions +are often useful in functional-style code because they save you +from writing trivial functions that perform a single operation. + +Some of the functions in this module are: + +* Math operations: ``add()``, ``sub()``, ``mul()``, ``div()``, ``floordiv()``, + ``abs()``, ... +* Logical operations: ``not_()``, ``truth()``. +* Bitwise operations: ``and_()``, ``or_()``, ``invert()``. +* Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``. +* Object identity: ``is_()``, ``is_not()``. + +Consult `the operator module's documentation `__ for a complete +list. + + + +The functional module +--------------------- + +Collin Winter's `functional module `__ +provides a number of more +advanced tools for functional programming. It also reimplements +several Python built-ins, trying to make them more intuitive to those +used to functional programming in other languages. + +This section contains an introduction to some of the most important +functions in ``functional``; full documentation can be found at `the +project's website `__. + +``compose(outer, inner, unpack=False)`` + +The ``compose()`` function implements function composition. +In other words, it returns a wrapper around the ``outer`` and ``inner`` callables, such +that the return value from ``inner`` is fed directly to ``outer``. That is, + +:: + + >>> def add(a, b): + ... return a + b + ... + >>> def double(a): + ... return 2 * a + ... + >>> compose(double, add)(5, 6) + 22 + +is equivalent to + +:: + + >>> double(add(5, 6)) + 22 + +The ``unpack`` keyword is provided to work around the fact that Python functions are not always +`fully curried `__. +By default, it is expected that the ``inner`` function will return a single object and that the ``outer`` +function will take a single argument. Setting the ``unpack`` argument causes ``compose`` to expect a +tuple from ``inner`` which will be expanded before being passed to ``outer``. Put simply, + +:: + + compose(f, g)(5, 6) + +is equivalent to:: + + f(g(5, 6)) + +while + +:: + + compose(f, g, unpack=True)(5, 6) + +is equivalent to:: + + f(*g(5, 6)) + +Even though ``compose()`` only accepts two functions, it's trivial to +build up a version that will compose any number of functions. We'll +use ``reduce()``, ``compose()`` and ``partial()`` (the last of which +is provided by both ``functional`` and ``functools``). + +:: + + from functional import compose, partial + + multi_compose = partial(reduce, compose) + + +We can also use ``map()``, ``compose()`` and ``partial()`` to craft a +version of ``"".join(...)`` that converts its arguments to string:: + + from functional import compose, partial + + join = compose("".join, partial(map, str)) + + +``flip(func)`` + +``flip()`` wraps the callable in ``func`` and +causes it to receive its non-keyword arguments in reverse order. + +:: + + >>> def triple(a, b, c): + ... return (a, b, c) + ... + >>> triple(5, 6, 7) + (5, 6, 7) + >>> + >>> flipped_triple = flip(triple) + >>> flipped_triple(5, 6, 7) + (7, 6, 5) + +``foldl(func, start, iterable)`` + +``foldl()`` takes a binary function, a starting value (usually some kind of 'zero'), and an iterable. +The function is applied to the starting value and the first element of the list, then the result of +that and the second element of the list, then the result of that and the third element of the list, +and so on. + +This means that a call such as:: + + foldl(f, 0, [1, 2, 3]) + +is equivalent to:: + + f(f(f(0, 1), 2), 3) + + +``foldl()`` is roughly equivalent to the following recursive function:: + + def foldl(func, start, seq): + if len(seq) == 0: + return start + + return foldl(func, func(start, seq[0]), seq[1:]) + +Speaking of equivalence, the above ``foldl`` call can be expressed in terms of the built-in ``reduce`` like +so:: + + reduce(f, [1, 2, 3], 0) + + +We can use ``foldl()``, ``operator.concat()`` and ``partial()`` to +write a cleaner, more aesthetically-pleasing version of Python's +``"".join(...)`` idiom:: + + from functional import foldl, partial + from operator import concat + + join = partial(foldl, concat, "") + + +Revision History and Acknowledgements +------------------------------------------------ + +The author would like to thank the following people for offering +suggestions, corrections and assistance with various drafts of this +article: Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, +Jim Jewett, Mike Krell, Leandro Lameiro, Jussi Salmela, +Collin Winter, Blake Winton. + +Version 0.1: posted June 30 2006. + +Version 0.11: posted July 1 2006. Typo fixes. + +Version 0.2: posted July 10 2006. Merged genexp and listcomp +sections into one. Typo fixes. + +Version 0.21: Added more references suggested on the tutor mailing list. + +Version 0.30: Adds a section on the ``functional`` module written by +Collin Winter; adds short section on the operator module; a few other +edits. + + +References +-------------------- + +General +''''''''''''''' + +**Structure and Interpretation of Computer Programs**, by +Harold Abelson and Gerald Jay Sussman with Julie Sussman. +Full text at http://mitpress.mit.edu/sicp/. +In this classic textbook of computer science, chapters 2 and 3 discuss the +use of sequences and streams to organize the data flow inside a +program. The book uses Scheme for its examples, but many of the +design approaches described in these chapters are applicable to +functional-style Python code. + +http://www.defmacro.org/ramblings/fp.html: A general +introduction to functional programming that uses Java examples +and has a lengthy historical introduction. + +http://en.wikipedia.org/wiki/Functional_programming: +General Wikipedia entry describing functional programming. + +http://en.wikipedia.org/wiki/Coroutine: +Entry for coroutines. + +http://en.wikipedia.org/wiki/Currying: +Entry for the concept of currying. + +Python-specific +''''''''''''''''''''''''''' + +http://gnosis.cx/TPiP/: +The first chapter of David Mertz's book :title-reference:`Text Processing in Python` +discusses functional programming for text processing, in the section titled +"Utilizing Higher-Order Functions in Text Processing". + +Mertz also wrote a 3-part series of articles on functional programming +for IBM's DeveloperWorks site; see +`part 1 `__, +`part 2 `__, and +`part 3 `__, + + +Python documentation +''''''''''''''''''''''''''' + +http://docs.python.org/lib/module-itertools.html: +Documentation for the ``itertools`` module. + +http://docs.python.org/lib/module-operator.html: +Documentation for the ``operator`` module. + +http://www.python.org/dev/peps/pep-0289/: +PEP 289: "Generator Expressions" + +http://www.python.org/dev/peps/pep-0342/ +PEP 342: "Coroutines via Enhanced Generators" describes the new generator +features in Python 2.5. + +.. comment + + Topics to place + ----------------------------- + + XXX os.walk() + + XXX Need a large example. + + But will an example add much? I'll post a first draft and see + what the comments say. + +.. comment + + Original outline: + Introduction + Idea of FP + Programs built out of functions + Functions are strictly input-output, no internal state + Opposed to OO programming, where objects have state + + Why FP? + Formal provability + Assignment is difficult to reason about + Not very relevant to Python + Modularity + Small functions that do one thing + Debuggability: + Easy to test due to lack of state + Easy to verify output from intermediate steps + Composability + You assemble a toolbox of functions that can be mixed + + Tackling a problem + Need a significant example + + Iterators + Generators + The itertools module + List comprehensions + Small functions and the lambda statement + Built-in functions + map + filter + reduce + +.. comment + + Handy little function for printing part of an iterator -- used + while writing this document. + + import itertools + def print_iter(it): + slice = itertools.islice(it, 10) + for elem in slice[:-1]: + sys.stdout.write(str(elem)) + sys.stdout.write(', ') + print elem[-1] + + Added: external/Pygments-0.9/tests/examplefiles/genshi_example.xml+genshi ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/genshi_example.xml+genshi Tue Oct 23 20:20:22 2007 @@ -0,0 +1,193 @@ + + + + + $title + + + + + + + + (${v or 'No'} match${v != 1 and 'es' or ''}) + + +
+

$title ${num_matches(len(tickets))}

+ +
+
+ Filters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   + + +
+
+ +

+ + + + +

+ +

+ + +

+ +
+ + + +
+
+
+ + + + + +
+ Note: See TracQuery + for help on using queries. +
+ +
+ + Added: external/Pygments-0.9/tests/examplefiles/genshitext_example.genshitext ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/genshitext_example.genshitext Tue Oct 23 20:20:22 2007 @@ -0,0 +1,33 @@ + ## a comment + +\## not a comment + +#if foo + ${bar} +#endif + +The answer is: +#choose + #when 0 == 1 + 0 + #end + #when 1 == 1 + 1 + #end + #otherwise + 2 + #end +#end -- comment about choose + +#for item in items + * ${item} +#end + +#def greeting(name) + Hello, ${name}! +#end +${greeting('world')} + +#with y=7; z=x+10 + $x $y $z +#end Added: external/Pygments-0.9/tests/examplefiles/html+php_faulty.php ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/html+php_faulty.php Tue Oct 23 20:20:22 2007 @@ -0,0 +1 @@ + + + + My Webpage + + + + +

My Webpage

+ {{ variable }} + + + +This covers the default settings. The application developer might have changed +the syntax from ``{% foo %}`` to ``<% foo %>`` or something similar. This +documentation just covers the default values. + +A variable looks like ``{{ foobar }}`` where foobar is the variable name. Inside +of statements (``{% some content here %}``) variables are just normal names +without the braces around it. In fact ``{{ foobar }}`` is just an alias for +the statement ``{% print foobar %}``. + +Variables are coming from the context provided by the application. Normally there +should be a documentation regarding the context contents but if you want to know +the content of the current context, you can add this to your template: + +.. sourcecode:: html+jinja + +
{{ debug()|e }}
+ +A context isn't flat which means that each variable can has subvariables, as long +as it is representable as python data structure. You can access attributes of +a variable using the dot and bracket operators. The following examples show +this: + +.. sourcecode:: jinja + + {{ user.username }} + is the same as + {{ user['username'] }} + you can also use a variable to access an attribute: + {{ users[current_user].username }} + If you have numerical indices you have to use the [] syntax: + {{ users[0].username }} + +Filters +======= + +In the examples above you might have noticed the pipe symbols. Pipe symbols tell +the engine that it has to apply a filter on the variable. Here is a small example: + +.. sourcecode:: jinja + + {{ variable|replace('foo', 'bar')|escape }} + +If you want, you can also put whitespace between the filters. + +This will look for a variable `variable`, pass it to the filter `replace` +with the arguments ``'foo'`` and ``'bar'``, and pass the result to the filter +`escape` that automatically XML-escapes the value. The `e` filter is an alias for +`escape`. Here is the complete list of supported filters: + +[[list_of_filters]] + +.. admonition:: note + + Filters have a pretty low priority. If you want to add fitered values + you have to put them into parentheses. The same applies if you want to access + attributes: + + .. sourcecode:: jinja + + correct: + {{ (foo|filter) + (bar|filter) }} + wrong: + {{ foo|filter + bar|filter }} + + correct: + {{ (foo|filter).attribute }} + wrong: + {{ foo|filter.attribute }} + +Tests +===== + +You can use the `is` operator to perform tests on a value: + +.. sourcecode:: jinja + + {{ 42 is numeric }} -> true + {{ "foobar" is numeric }} -> false + {{ 'FOO' is upper }} -> true + +These tests are especially useful when used in `if` conditions. + +[[list_of_tests]] + +Global Functions +================ + +Test functions and filter functions live in their own namespace. Global +functions not. They behave like normal objects in the context. Beside the +functions added by the application or framewhere there are two functions +available per default: + +`range` + + Works like the python `range function`_ just that it doesn't support + ranges greater than ``1000000``. + +`debug` + + Function that outputs the contents of the context. + +Loops +===== + +To iterate over a sequence, you can use the `for` loop. It basically looks like a +normal Python `for` loop and works pretty much the same: + +.. sourcecode:: html+jinja + +

Members

+
    + {% for user in users %} +
  • {{ loop.index }} / {{ loop.length }} - {{ user.username|escape }}
  • + {% else %} +
  • no users found
  • + {% endfor %} +
+ +*Important* Contrary to Python is the optional ``else`` block only +executed if there was no iteration because the sequence was empty. + +Inside of a `for` loop block you can access some special variables: + ++----------------------+----------------------------------------+ +| Variable | Description | ++======================+========================================+ +| `loop.index` | The current iteration of the loop. | ++----------------------+----------------------------------------+ +| `loop.index0` | The current iteration of the loop, | +| | starting counting by 0. | ++----------------------+----------------------------------------+ +| `loop.revindex` | The number of iterations from the end | +| | of the loop. | ++----------------------+----------------------------------------+ +| `loop.revindex0` | The number of iterations from the end | +| | of the loop, starting counting by 0. | ++----------------------+----------------------------------------+ +| `loop.first` | True if first iteration. | ++----------------------+----------------------------------------+ +| `loop.last` | True if last iteration. | ++----------------------+----------------------------------------+ +| `loop.even` | True if current iteration is even. | ++----------------------+----------------------------------------+ +| `loop.odd` | True if current iteration is odd. | ++----------------------+----------------------------------------+ +| `loop.length` | Total number of items in the sequence. | ++----------------------+----------------------------------------+ +| `loop.parent` | The context of the parent loop. | ++----------------------+----------------------------------------+ + +Loops also support recursion. Let's assume you have a sitemap where each item +might have a number of child items. A template for that could look like this: + +.. sourcecode:: html+jinja + +

Sitemap +
    + {% for item in sitemap recursive %} +
  • {{ item.title|e }} + {% if item.children %}
      {{ loop(item.children) }}
    {% endif %}
  • + {% endfor %} +
+ +What happens here? Basically the first thing that is different to a normal +loop is the additional ``recursive`` modifier in the `for`-loop declaration. +It tells the template engine that we want recursion. If recursion is enabled +the special `loop` variable is callable. If you call it with a sequence it will +automatically render the loop at that position with the new sequence as argument. + +Cycling +======= + +Sometimes you might want to have different text snippets for each row in a list, +for example to have alternating row colors. You can easily do this by using the +``{% cycle %}`` tag: + +.. sourcecode:: html+jinja + +
    + {% for message in messages %} +
  • {{ message|e }}
  • + {% endfor %} +
+ +Each time Jinja encounters a `cycle` tag it will cycle through the list +of given items and return the next one. If you pass it one item jinja assumes +that this item is a sequence from the context and uses this: + +.. sourcecode:: html+jinja + +
  • ...
  • + +Conditions +========== + +Jinja supports Python-like `if` / `elif` / `else` constructs: + +.. sourcecode:: jinja + + {% if user.active %} + user {{ user.name|e }} is active. + {% elif user.deleted %} + user {{ user.name|e }} was deleted some time ago. + {% else %} + i don't know what's wrong with {{ user.username|e }} + {% endif %} + +If the user is active the first block is rendered. If not and the user was +deleted the second one, in all other cases the third one. + +You can also use comparison operators: + +.. sourcecode:: html+jinja + + {% if amount < 0 %} + {{ amount }} + {% else %} + {{ amount }} + {% endif %} + +.. admonition:: Note + + Of course you can use `or` / `and` and parentheses to create more complex + conditions, but usually the logic is already handled in the application and + you don't have to create such complex constructs in the template code. However + in some situations it might be a good thing to have the abilities to create + them. + +Operators +========= + +Inside ``{{ variable }}`` blocks, `if` conditions and many other parts you can +can use expressions. In expressions you can use any of the following operators: + + ======= =================================================================== + ``+`` add the right operand to the left one. + ``{{ 1 + 2 }}`` would return ``3``. + ``-`` subtract the right operand from the left one. + ``{{ 1 - 1 }}`` would return ``0``. + ``/`` divide the left operand by the right one. + ``{{ 1 / 2 }}`` would return ``0.5``. + ``*`` multiply the left operand with the right one. + ``{{ 2 * 2 }}`` would return ``4``. + ``**`` raise the left operand to the power of the right + operand. ``{{ 2**3 }}`` would return ``8``. + ``in`` perform sequence membership test. ``{{ 1 in [1,2,3] }}`` would + return true. + ``is`` perform a test on the value. See the section about + tests for more information. + ``|`` apply a filter on the value. See the section about + filters for more information. + ``and`` return true if the left and the right operand is true. + ``or`` return true if the left or the right operand is true. + ``not`` negate a statement (see below) + ``()`` call a callable: ``{{ user.get_username() }}``. Inside of the + parentheses you can use variables: ``{{ user.get(username) }}``. + ======= =================================================================== + +Note that there is no support for any bit operations or something similar. + +* special note regarding `not`: The `is` and `in` operators support negation + using an infix notation too: ``foo is not bar`` and ``foo not in bar`` + instead of ``not foo is bar`` and ``not foo in bar``. All other expressions + require a prefix notation: ``not (foo and bar)``. + +Boolean Values +============== + +In If-Conditions Jinja performs a boolean check. All empty values (eg: empty +lists ``[]``, empty dicts ``{}`` etc) evaluate to `false`. Numbers that are +equal to `0`/`0.00` are considered `false` too. The boolean value of other +objects depends on the behavior the application developer gave it. Usually +items are `true`. + +Here some examples that should explain it: + +.. sourcecode:: jinja + + {% if [] %} + will always be false because it's an empty list + + {% if {} %} + false too. + + {% if ['foo'] %} + this is true. Because the list is not empty. + + {% if "foobar" %} + this is also true because the string is not empty. + +Slicing +======= + +Some objects support slicing operations. For example lists: + +.. sourcecode:: jinja + + {% for item in items[:5] %} + This will only iterate over the first 5 items of the list + + {% for item in items[5:10] %} + This will only iterate from item 5 to 10. + + {% for item in items[:10:2] %} + This will only yield items from start to ten and only returing + even items. + +For more informations about slicing have a look at the `slicing chapter`_ +in the "Dive into Python" e-book. + +Macros +====== + +If you want to use a partial template in more than one place, you might want to +create a macro from it: + +.. sourcecode:: html+jinja + + {% macro show_user user %} +

    {{ user.name|e }}

    +
    + {{ user.description }} +
    + {% endmacro %} + +Now you can use it from everywhere in the code by passing it an item: + +.. sourcecode:: jinja + + {% for user in users %} + {{ show_user(user) }} + {% endfor %} + +You can also specify more than one value: + +.. sourcecode:: html+jinja + + {% macro show_dialog title, text %} +
    +

    {{ title|e }}

    +
    {{ text|e }}
    +
    + {% endmacro %} + + {{ show_dialog('Warning', 'something went wrong i guess') }} + +Inheritance +=========== + +The most powerful part of Jinja is template inheritance. Template inheritance +allows you to build a base "skeleton" template that contains all the common +elements of your site and defines **blocks** that child templates can override. + +Sounds complicated but is very basic. It's easiest to understand it by starting +with an example. + +Base Template +------------- + +This template, which we'll call ``base.html``, defines a simple HTML skeleton +document that you might use for a simple two-column page. It's the job of +"child" templates to fill the empty blocks with content: + +.. sourcecode:: html+jinja + + + + + + {% block title %}{% endblock %} - My Webpage + {% block html_head %}{% endblock %} + + +
    + {% block content %}{% endblock %} +
    + + + + +In this example, the ``{% block %}`` tags define four blocks that child templates +can fill in. All the `block` tag does is to tell the template engine that a +child template may override those portions of the template. + +Child Template +-------------- + +A child template might look like this: + +.. sourcecode:: html+jinja + + {% extends "base.html" %} + {% block title %}Index{% endblock %} + + {% block html_head %} + + {% endblock %} + + {% block content %} +

    Index

    +

    + Welcome on my awsome homepage. +

    + {% endblock %} + +The ``{% extends %}`` tag is the key here. It tells the template engine that +this template "extends" another template. When the template system evaluates +this template, first it locates the parent. + +The filename of the template depends on the template loader. For example the +``FileSystemLoader`` allows you to access other templates by giving the +filename. You can access templates in subdirectories with an slash: + +.. sourcecode:: jinja + + {% extends "layout/default.html" %} + +But this behavior can depend on the application using Jinja. + +Note that since the child template didn't define the ``footer`` block, the +value from the parent template is used instead. + +.. admonition:: Note + + You can't define multiple ``{% block %}`` tags with the same name in the + same template. This limitation exists because a block tag works in "both" + directions. That is, a block tag doesn't just provide a hole to fill - it + also defines the content that fills the hole in the *parent*. If there were + two similarly-named ``{% block %}`` tags in a template, that template's + parent wouldn't know which one of the blocks' content to use. + +Template Inclusion +================== + +You can load another template at a given position using ``{% include %}``. +Usually it's a better idea to use inheritance but if you for example want to +load macros, `include` works better than `extends`: + +.. sourcecode:: jinja + + {% include "myhelpers.html" %} + {{ my_helper("foo") }} + +If you define a macro called ``my_helper`` in ``myhelpers.html``, you can now +use it from the template as shown above. + +Filtering Blocks +================ + +Sometimes it could be a good idea to filter a complete block of text. For +example, if you want to escape some html code: + +.. sourcecode:: jinja + + {% filter escape %} + + goes here + + {% endfilter %} + +Of course you can chain filters too: + +.. sourcecode:: jinja + + {% filter lower|escape %} + SOME TEXT + {% endfilter %} + +returns ``"<b>some text</b>"``. + +Defining Variables +================== + +You can also define variables in the namespace using the ``{% set %}`` tag: + +.. sourcecode:: jinja + + {% set foo = 'foobar' %} + {{ foo }} + +This should ouput ``foobar``. + +Scopes +====== + +Jinja has multiple scopes. A scope is something like a new transparent foil on +a stack of foils. You can only write to the outermost foil but read all of them +since you can look through them. If you remove the top foil all data on that +foil disappears. Some tags in Jinja add a new layer to the stack. Currently +these are `block`, `for`, `macro` and `filter`. This means that variables and +other elements defined inside a macro, loop or some of the other tags listed +above will be only available in that block. Here an example: + +.. sourcecode:: jinja + + {% macro angryhello name %} + {% set angryname = name|upper %} + Hello {{ name }}. Hello {{ name }}! + HELLO {{ angryname }}!!!!!!111 + {% endmacro %} + +The variable ``angryname`` just exists inside the macro, not outside it. + +Defined macros appear on the context as variables. Because of this, they are +affected by the scoping too. A macro defined inside of a macro is just available +in those two macros (the macro itself and the macro it's defined in). For `set` +and `macro` two additional rules exist: If a macro is defined in an extended +template but outside of a visible block (thus outside of any block) will be +available in all blocks below. This allows you to use `include` statements to +load often used macros at once. + +Undefined Variables +=================== + +If you have already worked with python you probably know about the fact that +undefined variables raise an exception. This is different in Jinja. There is a +special value called `undefined` that represents values that do not exist. + +This special variable works complete different from any variables you maybe +know. If you print it using ``{{ variable }}`` it will not appear because it's +literally empty. If you try to iterate over it, it will work. But no items +are returned. Comparing this value to any other value results in `false`. +Even if you compare it to itself: + +.. sourcecode:: jinja + + {{ undefined == undefined }} + will return false. Not even undefined is undefined :) + Use `is defined` / `is not defined`: + + {{ undefined is not defined }} + will return true. + +There are also some additional rules regarding this special value. Any +mathematical operators (``+``, ``-``, ``*``, ``/``) return the operand +as result: + +.. sourcecode:: jinja + + {{ undefined + "foo" }} + returns "foo" + + {{ undefined - 42 }} + returns 42. Note: not -42! + +In any expression `undefined` evaluates to `false`. It has no length, all +attribute calls return undefined, calling too: + +.. sourcecode:: jinja + + {{ undefined.attribute().attribute_too[42] }} + still returns `undefined`. + +Escaping +======== + +Sometimes you might want to add Jinja syntax elements into the template +without executing them. In that case you have quite a few possibilities. + +For small parts this might be a good way: + +.. sourcecode:: jinja + + {{ "{{ foo }} is variable syntax and {% foo %} is block syntax" }} + +When you have multiple elements you can use the ``raw`` block: + +.. sourcecode:: jinja + + {% raw %} + Filtering blocks works like this in Jinja: + {% filter escape %} + + goes here + + {% endfilter %} + {% endraw %} + +Reserved Keywords +================= + +Jinja has some keywords you cannot use a variable names. This limitation +exists to make look coherent. Syntax highlighters won't mess things up and +you will don't have unexpected output. + +The following keywords exist and cannot be used as identifiers: + + `and`, `block`, `cycle`, `elif`, `else`, `endblock`, `endfilter`, + `endfor`, `endif`, `endmacro`, `endraw`, `endtrans`, `extends`, `filter`, + `for`, `if`, `in`, `include`, `is`, `macro`, `not`, `or`, `pluralize`, + `raw`, `recursive`, `set`, `trans` + +If you want to use such a name you have to prefix or suffix it or use +alternative names: + +.. sourcecode:: jinja + + {% for macro_ in macros %} + {{ macro_('foo') }} + {% endfor %} + +If future Jinja releases add new keywords those will be "light" keywords which +means that they won't raise an error for several releases but yield warnings +on the application side. But it's very unlikely that new keywords will be +added. + +Internationalization +==================== + +If the application is configured for i18n, you can define translatable blocks +for translators using the `trans` tag or the special underscore function: + +.. sourcecode:: jinja + + {% trans %} + this is a translatable block + {% endtrans %} + + {% trans "This is a translatable string" %} + + {{ _("This is a translatable string") }} + +The latter one is useful if you want translatable arguments for filters etc. + +If you want to have plural forms too, use the `pluralize` block: + +.. sourcecode:: jinja + + {% trans users=users %} + One user found. + {% pluralize %} + {{ users }} users found. + {% endtrans %} + + {% trans first=(users|first).username|escape, user=users|length %} + one user {{ first }} found. + {% pluralize users %} + {{ users }} users found, the first one is called {{ first }}. + {% endtrans %} + +If you have multiple arguments, the first one is assumed to be the indicator (the +number that is used to determine the correct singular or plural form. If you +don't have the indicator variable on position 1 you have to tell the `pluralize` +tag the correct variable name. + +Inside translatable blocks you cannot use blocks or expressions (however you can +still use the ``raw`` block which will work as expected). The variable +print syntax (``{{ variablename }}``) is the only way to insert the variables +defined in the ``trans`` header. Filters must be applied in the header. + +.. admonition:: note + + Please make sure that you always use pluralize blocks where required. + Many languages have more complex plural forms than the English language. + + Never try to workaround that issue by using something like this: + + .. sourcecode:: jinja + + {% if count != 1 %} + {{ count }} users found. + {% else %} + one user found. + {% endif %} + +.. _slicing chapter: http://diveintopython.org/native_data_types/lists.html#odbchelper.list.slice +.. _range function: http://docs.python.org/tut/node6.html#SECTION006300000000000000000 Added: external/Pygments-0.9/tests/examplefiles/ltmain.sh ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/ltmain.sh Tue Oct 23 20:20:22 2007 @@ -0,0 +1,2849 @@ +# ltmain.sh - Provide generalized library-building support services. +# NOTE: Changing this file will not affect anything until you rerun configure. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +basename="s,^.*/,,g" + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# define SED for historic ltconfig's generated by Libtool 1.3 +test -z "$SED" && SED=sed + +# The name of this program: +progname=`echo "$progpath" | $SED $basename` +modename="$progname" + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION=1.5.22 +TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes. +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +# Same for EGREP, and just to be sure, do LTCC as well +if test "X$EGREP" = X ; then + EGREP=egrep +fi +if test "X$LTCC" = X ; then + LTCC=${CC-gcc} +fi + +# Check that we have a working $echo. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell, and then maybe $echo will work. + exec $SHELL "$progpath" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE +fi + +# Global variables. +mode=$default_mode +nonopt= +prev= +prevopt= +run= +show="$echo" +show_help= +execute_dlfiles= +duplicate_deps=no +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" + +if test -z "$max_cmd_len"; then + i=0 + testring="ABCD" + new_result= + + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while (test "X"`$SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \ + = "XX$testring") >/dev/null 2>&1 && + new_result=`expr "X$testring" : ".*" 2>&1` && + max_cmd_len="$new_result" && + test "$i" != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + testring="$testring$testring" + done + testring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + max_cmd_len=`expr $max_cmd_len \/ 2` +fi + +##################################### +# Shell function definitions: +# This seems to be the best place for them + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $mkdir "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || { + $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 + exit $EXIT_FAILURE + } + fi + + $echo "X$my_tmpdir" | $Xsed +} + + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +func_win32_libid () +{ + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | \ + $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $echo $win32_libid_type +} + + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + # user sometimes does CC=-gcc so we need to match that to 'gcc' + trimedcc=`echo ${CC} | $SED -e "s/${host}-//g"` + # and sometimes libtool has CC=-gcc but user does CC=gcc + extendcc=${host}-${CC} + # and sometimes libtool has CC=-gcc but user has CC=-gcc + # (Gentoo-specific hack because we always export $CHOST) + mungedcc=${CHOST-${host}}-${trimedcc} + case "$@ " in + "cc "* | " cc "* | "${host}-cc "* | " ${host}-cc "*|\ + "gcc "* | " gcc "* | "${host}-gcc "* | " ${host}-gcc "*) + tagname=CC + break ;; + "$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$echo $trimedcc` "*|\ + "$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$echo $extendcc` "*|\ + "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\ + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit $EXIT_FAILURE +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + + $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" + $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 + exit $EXIT_FAILURE + fi +} + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + my_status="" + + $show "${rm}r $my_gentop" + $run ${rm}r "$my_gentop" + $show "$mkdir $my_gentop" + $run $mkdir "$my_gentop" + my_status=$? + if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then + exit $my_status + fi + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` + my_xdir="$my_gentop/$my_xlib" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" + $show "$mkdir $my_xdir" + $run $mkdir "$my_xdir" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then + exit $exit_status + fi + case $host in + *-darwin*) + $show "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + if test -z "$run"; then + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` + if test -n "$darwin_arches"; then + darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + $show "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we have a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + ${rm}r unfat-$$ + cd "$darwin_orig_dir" + else + cd "$darwin_orig_dir" + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + fi # $run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + func_extract_archives_result="$my_oldobjs" +} +# End of Shell function definitions +##################################### + +# Darwin sucks +eval std_shrext=\"$shrext_cmds\" + +disable_libs=no + +# Parse our command line options once, thoroughly. +while test "$#" -gt 0 +do + arg="$1" + shift + + case $arg in + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + execute_dlfiles) + execute_dlfiles="$execute_dlfiles $arg" + ;; + tag) + tagname="$arg" + preserve_args="${preserve_args}=$arg" + + # Check whether tagname contains only valid characters + case $tagname in + *[!-_A-Za-z0-9,/]*) + $echo "$progname: invalid tag name: $tagname" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $tagname in + CC) + # Don't test for the "default" C tag, as we know, it's there, but + # not specially marked. + ;; + *) + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then + taglist="$taglist $tagname" + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" + else + $echo "$progname: ignoring unknown tag $tagname" 1>&2 + fi + ;; + esac + ;; + *) + eval "$prev=\$arg" + ;; + esac + + prev= + prevopt= + continue + fi + + # Have we seen a non-optional argument yet? + case $arg in + --help) + show_help=yes + ;; + + --version) + $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" + $echo + $echo "Copyright (C) 2005 Free Software Foundation, Inc." + $echo "This is free software; see the source for copying conditions. There is NO" + $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + exit $? + ;; + + --config) + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath + # Now print the configurations for the tags. + for tagname in $taglist; do + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" + done + exit $? + ;; + + --debug) + $echo "$progname: enabling shell trace mode" + set -x + preserve_args="$preserve_args $arg" + ;; + + --dry-run | -n) + run=: + ;; + + --features) + $echo "host: $host" + if test "$build_libtool_libs" = yes; then + $echo "enable shared libraries" + else + $echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + $echo "enable static libraries" + else + $echo "disable static libraries" + fi + exit $? + ;; + + --finish) mode="finish" ;; + + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + + --preserve-dup-deps) duplicate_deps="yes" ;; + + --quiet | --silent) + show=: + preserve_args="$preserve_args $arg" + ;; + + --tag) + prevopt="--tag" + prev=tag + preserve_args="$preserve_args --tag" + ;; + --tag=*) + set tag "$optarg" ${1+"$@"} + shift + prev=tag + preserve_args="$preserve_args --tag" + ;; + + -dlopen) + prevopt="-dlopen" + prev=execute_dlfiles + ;; + + -*) + $echo "$modename: unrecognized option \`$arg'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + + *) + nonopt="$arg" + break + ;; + esac +done + +if test -n "$prevopt"; then + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE +fi + +case $disable_libs in +no) + ;; +shared) + build_libtool_libs=no + build_old_libs=yes + ;; +static) + build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` + ;; +esac + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then + $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 + $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 + case $nonopt in + *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) + mode=link + for arg + do + case $arg in + -c) + mode=compile + break + ;; + esac + done + ;; + *db | *dbx | *strace | *truss) + mode=execute + ;; + *install*|cp|mv) + mode=install + ;; + *rm) + mode=uninstall + ;; + *) + # If we have no mode, but dlfiles were specified, then do execute mode. + test -n "$execute_dlfiles" && mode=execute + + # Just use the default operation mode. + if test -z "$mode"; then + if test -n "$nonopt"; then + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + else + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + fi + fi + ;; + esac + fi + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. + case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + if test -n "$libobj" ; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 + exit $EXIT_FAILURE + fi + arg_mode=target + continue + ;; + + -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + lastarg="$lastarg $arg" + done + IFS="$save_ifs" + lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` + + # Add the arguments to base_compile. + base_compile="$base_compile $lastarg" + continue + ;; + + * ) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + case $lastarg in + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, and some SunOS ksh mistreat backslash-escaping + # in scan sets (worked around with variable expansion), + # and furthermore cannot handle '|' '&' '(' ')' in scan sets + # at all, so we specify them separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac + + base_compile="$base_compile $lastarg" + done # for arg + + case $arg_mode in + arg) + $echo "$modename: you must specify an argument for -Xcompile" + exit $EXIT_FAILURE + ;; + target) + $echo "$modename: you must specify a target with \`-o'" 1>&2 + exit $EXIT_FAILURE + ;; + *) + # Get the name of the library object. + [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSifmso]' + case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; + *.c++) xform=c++ ;; + *.cc) xform=cc ;; + *.ii) xform=ii ;; + *.class) xform=class ;; + *.cpp) xform=cpp ;; + *.cxx) xform=cxx ;; + *.f90) xform=f90 ;; + *.for) xform=for ;; + *.java) xform=java ;; + esac + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + + case $libobj in + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *) + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` + case $qlibobj in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qlibobj="\"$qlibobj\"" ;; + esac + test "X$libobj" != "X$qlibobj" \ + && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." + objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir= + else + xdir=$xdir/ + fi + lobj=${xdir}$objdir/$objname + + if test -z "$base_compile"; then + $echo "$modename: you must specify a compilation command" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + $run $rm $removelist + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + removelist="$removelist $output_obj $lockfile" + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $run ln "$srcfile" "$lockfile" 2>/dev/null; do + $show "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $echo "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + $echo "$srcfile" > "$lockfile" + fi + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` + case $qsrcfile in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qsrcfile="\"$qsrcfile\"" ;; + esac + + $run $rm "$libobj" "${libobj}T" + + # Create a libtool object file (analogous to a ".la" file), + # but don't create it if we're doing a dry run. + test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + $show "$mv $output_obj $lobj" + if $run $mv $output_obj $lobj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the PIC object to the libtool object file. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + $show "$mv $output_obj $obj" + if $run $mv $output_obj $obj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the non-PIC object the libtool object file. + # Only append if the libtool object file exists. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + else + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + fi + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test + ;; + *) qarg=$arg ;; + esac + libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + if test ! -f "$arg"; then + $echo "$modename: symbol file \`$arg' does not exist" + exit $EXIT_FAILURE + fi + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat $save_arg` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + done + else + $echo "$modename: link input file \`$save_arg' does not exist" + exit $EXIT_FAILURE + fi + arg=$save_arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + compile_command="$compile_command $wl$qarg" + finalize_command="$finalize_command $wl$qarg" + continue + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + darwin_framework|darwin_framework_skip) + test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + prev= + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 + continue + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: more than one -exported-symbols argument is not allowed" + exit $EXIT_FAILURE + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework|-arch|-isysroot) + case " $CC " in + *" ${arg} ${1} "* | *" ${arg} ${1} "*) + prev=darwin_framework_skip ;; + *) compiler_flags="$compiler_flags $arg" + prev=darwin_framework ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + ;; + esac + continue + ;; + + -L*) + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + notinst_path="$notinst_path $dir" + fi + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs -framework System" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + -model) + compile_command="$compile_command $arg" + compiler_flags="$compiler_flags $arg" + finalize_command="$finalize_command $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m* pass through architecture-specific compiler args for GCC + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -pg pass through profiling flag for GCC + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ + -t[45]*|-txscale*|@*) + + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + # The PATH hackery in wrapper scripts is required on Windows + # in order for the loader to find any dlls it needs. + $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 + $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -static) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Wl,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $wl$flag" + linker_flags="$linker_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # Some other compiler flag. + -* | +*) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + done # argument parsing loop + + if test -n "$prev"; then + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` + if test "X$output_objdir" = "X$output"; then + output_objdir="$objdir" + else + output_objdir="$output_objdir/$objdir" + fi + # Create the object directory. + if test ! -d "$output_objdir"; then + $show "$mkdir $output_objdir" + $run $mkdir $output_objdir + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then + exit $exit_status + fi + fi + + # Determine the type of output + case $output in + "") + $echo "$modename: you must specify an output file" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + case $host in + *cygwin* | *mingw* | *pw32*) + # don't eliminate duplications in $postdeps and $predeps + duplicate_compiler_generated_deps=yes + ;; + *) + duplicate_compiler_generated_deps=$duplicate_deps + ;; + esac + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if test "X$duplicate_deps" = "Xyes" ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + case $linkmode in + lib) + passes="conv link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 + exit $EXIT_FAILURE + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + for pass in $passes; do + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 + continue + fi + name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` + for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if (${SED} -e '2q' $lib | + grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + library_names= + old_library= + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + *) + $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + if eval $echo \"$deplib\" 2>/dev/null \ + | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + $echo + $echo "*** Warning: Trying to link with static lib archive $deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because the file extensions .$libext of this argument makes me believe" + $echo "*** that it is just a static archive that I should not used here." + else + $echo + $echo "*** Warning: Linking the shared library $output against the" + $echo "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + if test "$found" = yes || test -f "$lib"; then : + else + $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 + exit $EXIT_FAILURE + fi + + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + $echo "$modename: \`$lib' is not a convenience library" 1>&2 + exit $EXIT_FAILURE + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 + $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 + abs_ladir="$ladir" + fi + ;; + esac + laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + $echo "$modename: warning: library \`$lib' was moved." 1>&2 + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi + fi # $installed = yes + name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { test "$prefer_static_libs" = no || test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath " in + *" $dir "*) ;; + *" $absdir "*) ;; + *) temp_rpath="$temp_rpath $absdir" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes ; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + # This is a shared library + + # Warn about portability, can't link against -module's on + # some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then + $echo + if test "$linkmode" = prog; then + $echo "*** Warning: Linking the executable $output against the loadable module" + else + $echo "*** Warning: Linking the shared library $output against the loadable module" + fi + $echo "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + realname="$2" + shift; shift + libname=`eval \\$echo \"$libname_spec\"` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw*) + major=`expr $current - $age` + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + soname=`$echo $soroot | ${SED} -e 's/^.*\///'` + newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + $show "extracting exported symbol list from \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$extract_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + $show "generating import library for \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$old_archive_from_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a module then we can not link against + # it, someone is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | + $EGREP ": [^:]* bundle" >/dev/null ; then + $echo "** Warning, lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $echo + $echo "** And there doesn't seem to be a static archive available" + $echo "** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + $echo "$modename: configuration error: unsupported hardcode properties" + exit $EXIT_FAILURE + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && \ + test "$hardcode_minus_L" != yes && \ + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + Added: external/Pygments-0.9/tests/examplefiles/moin_SyntaxReference.txt ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/moin_SyntaxReference.txt Tue Oct 23 20:20:22 2007 @@ -0,0 +1,340 @@ +## Please edit system and help pages ONLY in the moinmaster wiki! For more +## information, please see MoinMaster:MoinPagesEditorGroup. +##master-page:Unknown-Page +##master-date:Unknown-Date +#acl MoinPagesEditorGroup:read,write,delete,revert All:read +#format wiki +#language en + +This page aims to introduce the most important elements of MoinMoin``'s syntax at a glance, showing first the markup verbatim and then how it is rendered by the wiki engine. Additionally, you'll find links to the relative help pages. Please note that some of the features depend on your configuration. + += Table of Contents = +{{{ +'''Contents''' (up to the 2nd level) +[[TableOfContents(2)]] +}}} +'''Contents''' (up to the 2nd level) +[[TableOfContents(2)]] + += Headings = +'''''see:''' HelpOnHeadlines'' +{{{ += heading 1st level = +== heading 2nd level == +=== heading 3rd level === +==== heading 4th level ==== +===== heading 5th level ===== +}}} += heading 1st level = +== heading 2nd level == +=== heading 3rd level === +==== heading 4th level ==== +===== heading 5th level ===== + += Text Formatting = +'''''see:''' HelpOnFormatting'' +{{{ + * ''emphasized (italics)'' + * '''boldface''' + * '''''bold italics''''' + * `monospace` + * {{{source code}}} + * __underline__ + * ,,sub,,script + * ^super^script + * ~-smaller-~ + * ~+larger+~ + * --(strike through)-- +}}} + * ''emphasized (italics)'' + * '''boldface''' + * '''''bold italics''''' + * `monospace` + * {{{source code}}} + * __underline__ + * ,,sub,,script + * ^super^script + * ~-smaller-~ + * ~+larger+~ + * --(strike through)-- + += Hyperlinks = +'''''see:''' HelpOnLinking'' +== Internal Links == +{{{ + * FrontPage + * ["FrontPage"] + * HelpOnEditing/SubPages + * /SubPage + * ../SiblingPage + * [:FrontPage:named link] + * [#anchorname] + * [#anchorname description] + * [wiki:Self:PageName#anchorname] + * [wiki:Self:PageName#anchorname description] + * attachment:filename.txt +}}} + * FrontPage + * ["FrontPage"] + * HelpOnEditing/SubPages + * /SubPage + * ../SiblingPage + * [:FrontPage:named link] + * [#anchorname] + * [#anchorname description] + * [wiki:Self:PageName#anchorname] + * [wiki:Self:PageName#anchorname description] + * attachment:filename.txt + +== External Links == +{{{ + * http://moinmoin.wikiwikiweb.de/ + * [http://moinmoin.wikiwikiweb.de/] + * [http://moinmoin.wikiwikiweb.de/ MoinMoin Wiki] + * [http://moinmoin.wikiwikiweb.de/wiki/moinmoin.png] + * http://moinmoin.wikiwikiweb.de/wiki/moinmoin.png + * [http://moinmoin.wikiwikiweb.de/wiki/moinmoin.png moinmoin.png] + * MeatBall:InterWiki + * wiki:MeatBall/InterWiki + * [wiki:MeatBall/InterWiki] + * [wiki:MeatBall/InterWiki InterWiki page on MeatBall] + * [file://///servername/share/full/path/to/file/filename%20with%20spaces.txt link to file filename with spaces.txt] + * user at example.com +}}} + * http://moinmoin.wikiwikiweb.de/ + * [http://moinmoin.wikiwikiweb.de/] + * [http://moinmoin.wikiwikiweb.de/ MoinMoin Wiki] + * [http://moinmoin.wikiwikiweb.de/wiki/moinmoin.png] + * http://moinmoin.wikiwikiweb.de/wiki/moinmoin.png + * [http://moinmoin.wikiwikiweb.de/wiki/moinmoin.png moinmoin.png] + * MeatBall:InterWiki + * wiki:MeatBall/InterWiki + * [wiki:MeatBall/InterWiki] + * [wiki:MeatBall/InterWiki InterWiki page on MeatBall] + * [file://///servername/share/full/path/to/file/filename%20with%20spaces.txt link to file filename with spaces.txt] + * user at example.com + +== Avoid or Limit Automatical Linking == +{{{ + * Wiki''''''Name + * Wiki``Name + * !WikiName + * WikiName''''''s + * WikiName``s + * `http://www.example.com` +}}} + * Wiki''''''Name + * Wiki``Name + * !WikiName + * WikiName''''''s + * WikiName``s + * `http://www.example.com` + += Blockquotes and Indentions = +{{{ + indented text + text indented to the 2nd level +}}} + indented text + text indented to the 2nd level + += Lists = +'''''see:''' HelpOnLists'' +== Unordered Lists == +{{{ + * item 1 + + * item 2 (preceding white space) + * item 2.1 + * item 2.1.1 + * item 3 + . item 3.1 (bulletless) + . item 4 (bulletless) + * item 4.1 + . item 4.1.1 (bulletless) +}}} + * item 1 + + * item 2 (preceding white space) + * item 2.1 + * item 2.1.1 + * item 3 + . item 3.1 (bulletless) + . item 4 (bulletless) + * item 4.1 + . item 4.1.1 (bulletless) + +== Ordered Lists == +=== with Numbers === +{{{ + 1. item 1 + 1. item 1.1 + 1. item 1.2 + 1. item 2 +}}} + 1. item 1 + 1. item 1.1 + 1. item 1.2 + 1. item 2 + +=== with Roman Numbers === +{{{ + I. item 1 + i. item 1.1 + i. item 1.2 + I. item 2 +}}} + I. item 1 + i. item 1.1 + i. item 1.2 + I. item 2 + +=== with Letters === +{{{ + A. item A + a. item A. a) + a. item A. b) + A. item B +}}} + A. item A + a. item A. a) + a. item A. b) + A. item B + +== Definition Lists == +{{{ + term:: definition + object:: description 1 + :: description 2 + Action Items:: + :: First Item + :: Second Item +}}} + term:: definition + object:: description 1 + :: description 2 + Action Items:: + :: First Item + :: Second Item + += Horizontal Rules = +'''''see:''' HelpOnRules'' +{{{ +---- +----- +------ +------- +-------- +--------- +---------- +}}} +---- +----- +------ +------- +-------- +--------- +---------- + += Tables = +'''''see:''' HelpOnTables'' +== Tables == +{{{ +||'''A'''||'''B'''||'''C'''|| +||1 ||2 ||3 || +}}} +||'''A'''||'''B'''||'''C'''|| +||1 ||2 ||3 || + +== Cell Width == +{{{ +||minimal width ||<99%>maximal width || +}}} +||minimal width ||<99%>maximal width || + +== Spanning Rows and Columns == +{{{ +||<|2> cell spanning 2 rows ||cell in the 2nd column || +||cell in the 2nd column of the 2nd row || +||<-2> cell spanning 2 columns || +||||use empty cells as a shorthand || +}}} +||<|2> cell spanning 2 rows ||cell in the 2nd column || +||cell in the 2nd column of the 2nd row || +||<-2> cell spanning 2 columns || +||||use empty cells as a shorthand || + +== Alignment of Cell Contents == +{{{ +||<^|3> top (combined) ||<:99%> center (combined) || bottom (combined) || +||<)> right || +||<(> left || +}}} +||<^|3> top (combined) ||<:99%> center (combined) || bottom (combined) || +||<)> right || +||<(> left || + +== Coulored Table Cells == +{{{ +||<#0000FF> blue ||<#00FF00> green ||<#FF0000> red || +||<#00FFFF> cyan ||<#FF00FF> magenta ||<#FFFF00> yellow || +}}} +||<#0000FF> blue ||<#00FF00> green ||<#FF0000> red || +||<#00FFFF> cyan ||<#FF00FF> magenta ||<#FFFF00> yellow || + +== HTML-like Options for Tables == +{{{ +||A || like <|2> || +|| like <#00FF00> || +|| like <-2>|| +}}} +||A || like <|2> || +|| like <#00FF00> || +|| like <-2>|| + += Macros and Variables = +== Macros == +'''''see:''' HelpOnMacros'' + * `[[Anchor(anchorname)]]` inserts a link anchor `anchorname` + * `[[BR]]` inserts a hard line break + * `[[FootNote(Note)]]` inserts a footnote saying `Note` + * `[[Include(HelpOnMacros/Include)]]` inserts the contents of the page `HelpOnMacros/Include` inline + * `[[MailTo(user AT example DOT com)]]` obfuscates the email address `user at example.com` to users not logged in + +== Variables == +'''''see:''' HelpOnVariables'' + * `@``SIG``@` inserts your login name and timestamp of modification + * `@``TIME``@` inserts date and time of modification + += Smileys and Icons = +'''''see:''' HelpOnSmileys'' +[[ShowSmileys]] + += Source code = +'''''see:''' HelpOnParsers'' +== Verbatim Display == +{{{ +{ { { +def hello(): + print "Hello World!" +} } } +}}} +/!\ Remove spaces between "`{ { {`" and "`} } }`". +{{{ +def hello(): + print "Hello World!" +}}} + +== Syntax Highlighting == +{{{ +{ { {#!python +def hello(): + print "Hello World!" +} } } +}}} +/!\ Remove spaces between "`{ { {`" and "`} } }`". +{{{#!python +def hello(): + print "Hello World!" +}}} + Added: external/Pygments-0.9/tests/examplefiles/multiline_regexes.rb ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/multiline_regexes.rb Tue Oct 23 20:20:22 2007 @@ -0,0 +1,38 @@ +/ +this is a +multiline +regex +/ + +this /is a +multiline regex too/ + +foo = /is also +one/ + +also /4 +is one/ + +this(/ +too +/) + +# this not +2 /4 +asfsadf/ + +# this is also not one +0x4d /25 +foo/ + +42 and /this +is also a multiline +regex/ + + +# And here some special string cases +foo = % blah # comment here to ensure whitespace +foo(% blah ) +foo << % blah # stupid but has to work +foo = % blah + % blub # wicked +foo = %q wicked # works too Added: external/Pygments-0.9/tests/examplefiles/numbers.c ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/numbers.c Tue Oct 23 20:20:22 2007 @@ -0,0 +1,12 @@ +/* + * Some Number Test + */ + +int i = 24241424; +float f1 = 342423423.24234; +float f2 = 25235235.; +float f3 = .234234; +float f4 = 234243e+34343; +float f5 = 24234e-234; +int o = 0234; +int h = 0x2342; Added: external/Pygments-0.9/tests/examplefiles/perl5db.pl ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/perl5db.pl Tue Oct 23 20:20:22 2007 @@ -0,0 +1,998 @@ + +=head1 NAME + +perl5db.pl - the perl debugger + +=head1 SYNOPSIS + + perl -d your_Perl_script + +=head1 DESCRIPTION + +After this routine is over, we don't have user code executing in the debugger's +context, so we can use C freely. + +=cut + +############################################## Begin lexical danger zone + +# 'my' variables used here could leak into (that is, be visible in) +# the context that the code being evaluated is executing in. This means that +# the code could modify the debugger's variables. +# +# Fiddling with the debugger's context could be Bad. We insulate things as +# much as we can. + +sub eval { + + # 'my' would make it visible from user code + # but so does local! --tchrist + # Remember: this localizes @DB::res, not @main::res. + local @res; + { + + # Try to keep the user code from messing with us. Save these so that + # even if the eval'ed code changes them, we can put them back again. + # Needed because the user could refer directly to the debugger's + # package globals (and any 'my' variables in this containing scope) + # inside the eval(), and we want to try to stay safe. + local $otrace = $trace; + local $osingle = $single; + local $od = $^D; + + # Untaint the incoming eval() argument. + { ($evalarg) = $evalarg =~ /(.*)/s; } + + # $usercontext built in DB::DB near the comment + # "set up the context for DB::eval ..." + # Evaluate and save any results. + @res = eval "$usercontext $evalarg;\n"; # '\n' for nice recursive debug + + # Restore those old values. + $trace = $otrace; + $single = $osingle; + $^D = $od; + } + + # Save the current value of $@, and preserve it in the debugger's copy + # of the saved precious globals. + my $at = $@; + + # Since we're only saving $@, we only have to localize the array element + # that it will be stored in. + local $saved[0]; # Preserve the old value of $@ + eval { &DB::save }; + + # Now see whether we need to report an error back to the user. + if ($at) { + local $\ = ''; + print $OUT $at; + } + + # Display as required by the caller. $onetimeDump and $onetimedumpDepth + # are package globals. + elsif ($onetimeDump) { + if ( $onetimeDump eq 'dump' ) { + local $option{dumpDepth} = $onetimedumpDepth + if defined $onetimedumpDepth; + dumpit( $OUT, \@res ); + } + elsif ( $onetimeDump eq 'methods' ) { + methods( $res[0] ); + } + } ## end elsif ($onetimeDump) + @res; +} ## end sub eval + +############################################## End lexical danger zone + +# After this point it is safe to introduce lexicals. +# The code being debugged will be executing in its own context, and +# can't see the inside of the debugger. +# +# However, one should not overdo it: leave as much control from outside as +# possible. If you make something a lexical, it's not going to be addressable +# from outside the debugger even if you know its name. + +# This file is automatically included if you do perl -d. +# It's probably not useful to include this yourself. +# +# Before venturing further into these twisty passages, it is +# wise to read the perldebguts man page or risk the ire of dragons. +# +# (It should be noted that perldebguts will tell you a lot about +# the underlying mechanics of how the debugger interfaces into the +# Perl interpreter, but not a lot about the debugger itself. The new +# comments in this code try to address this problem.) + +# Note that no subroutine call is possible until &DB::sub is defined +# (for subroutines defined outside of the package DB). In fact the same is +# true if $deep is not defined. + +# Enhanced by ilya at math.ohio-state.edu (Ilya Zakharevich) + +# modified Perl debugger, to be run from Emacs in perldb-mode +# Ray Lischner (uunet!mntgfx!lisch) as of 5 Nov 1990 +# Johan Vromans -- upgrade to 4.0 pl 10 +# Ilya Zakharevich -- patches after 5.001 (and some before ;-) + +# (We have made efforts to clarify the comments in the change log +# in other places; some of them may seem somewhat obscure as they +# were originally written, and explaining them away from the code +# in question seems conterproductive.. -JM) + +=head1 DEBUGGER INITIALIZATION + +The debugger starts up in phases. + +=head2 BASIC SETUP + +First, it initializes the environment it wants to run in: turning off +warnings during its own compilation, defining variables which it will need +to avoid warnings later, setting itself up to not exit when the program +terminates, and defaulting to printing return values for the C command. + +=cut + +# Needed for the statement after exec(): +# +# This BEGIN block is simply used to switch off warnings during debugger +# compiliation. Probably it would be better practice to fix the warnings, +# but this is how it's done at the moment. + +BEGIN { + $ini_warn = $^W; + $^W = 0; +} # Switch compilation warnings off until another BEGIN. + +# test if assertions are supported and actived: +BEGIN { + $ini_assertion = eval "sub asserting_test : assertion {1}; 1"; + + # $ini_assertion = undef => assertions unsupported, + # " = 1 => assertions supported + # print "\$ini_assertion=$ini_assertion\n"; +} + +local ($^W) = 0; # Switch run-time warnings off during init. + +=head2 THREADS SUPPORT + +If we are running under a threaded Perl, we require threads and threads::shared +if the environment variable C is set, to enable proper +threaded debugger control. C<-dt> can also be used to set this. + +Each new thread will be announced and the debugger prompt will always inform +you of each new thread created. It will also indicate the thread id in which +we are currently running within the prompt like this: + + [tid] DB<$i> + +Where C<[tid]> is an integer thread id and C<$i> is the familiar debugger +command prompt. The prompt will show: C<[0]> when running under threads, but +not actually in a thread. C<[tid]> is consistent with C usage. + +While running under threads, when you set or delete a breakpoint (etc.), this +will apply to all threads, not just the currently running one. When you are +in a currently executing thread, you will stay there until it completes. With +the current implementation it is not currently possible to hop from one thread +to another. + +The C and C commands are currently fairly minimal - see C and C. + +Note that threading support was built into the debugger as of Perl version +C<5.8.6> and debugger version C<1.2.8>. + +=cut + +BEGIN { + # ensure we can share our non-threaded variables or no-op + if ($ENV{PERL5DB_THREADED}) { + require threads; + require threads::shared; + import threads::shared qw(share); + $DBGR; + share(\$DBGR); + lock($DBGR); + print "Threads support enabled\n"; + } else { + *lock = sub(*) {}; + *share = sub(*) {}; + } +} + +# This would probably be better done with "use vars", but that wasn't around +# when this code was originally written. (Neither was "use strict".) And on +# the principle of not fiddling with something that was working, this was +# left alone. +warn( # Do not ;-) + # These variables control the execution of 'dumpvar.pl'. + $dumpvar::hashDepth, + $dumpvar::arrayDepth, + $dumpvar::dumpDBFiles, + $dumpvar::dumpPackages, + $dumpvar::quoteHighBit, + $dumpvar::printUndef, + $dumpvar::globPrint, + $dumpvar::usageOnly, + + # used to save @ARGV and extract any debugger-related flags. + @ARGS, + + # used to control die() reporting in diesignal() + $Carp::CarpLevel, + + # used to prevent multiple entries to diesignal() + # (if for instance diesignal() itself dies) + $panic, + + # used to prevent the debugger from running nonstop + # after a restart + $second_time, + ) + if 0; + +foreach my $k (keys (%INC)) { + &share(\$main::{'_<'.$filename}); +}; + +# Command-line + PERLLIB: +# Save the contents of @INC before they are modified elsewhere. + at ini_INC = @INC; + +# This was an attempt to clear out the previous values of various +# trapped errors. Apparently it didn't help. XXX More info needed! +# $prevwarn = $prevdie = $prevbus = $prevsegv = ''; # Does not help?! + +# We set these variables to safe values. We don't want to blindly turn +# off warnings, because other packages may still want them. +$trace = $signal = $single = 0; # Uninitialized warning suppression + # (local $^W cannot help - other packages!). + +# Default to not exiting when program finishes; print the return +# value when the 'r' command is used to return from a subroutine. +$inhibit_exit = $option{PrintRet} = 1; + +=head1 OPTION PROCESSING + +The debugger's options are actually spread out over the debugger itself and +C; some of these are variables to be set, while others are +subs to be called with a value. To try to make this a little easier to +manage, the debugger uses a few data structures to define what options +are legal and how they are to be processed. + +First, the C<@options> array defines the I of all the options that +are to be accepted. + +=cut + + at options = qw( + CommandSet + hashDepth arrayDepth dumpDepth + DumpDBFiles DumpPackages DumpReused + compactDump veryCompact quote + HighBit undefPrint globPrint + PrintRet UsageOnly frame + AutoTrace TTY noTTY + ReadLine NonStop LineInfo + maxTraceLen recallCommand ShellBang + pager tkRunning ornaments + signalLevel warnLevel dieLevel + inhibit_exit ImmediateStop bareStringify + CreateTTY RemotePort windowSize + DollarCaretP OnlyAssertions WarnAssertions +); + + at RememberOnROptions = qw(DollarCaretP OnlyAssertions); + +=pod + +Second, C lists the variables that each option uses to save its +state. + +=cut + +%optionVars = ( + hashDepth => \$dumpvar::hashDepth, + arrayDepth => \$dumpvar::arrayDepth, + CommandSet => \$CommandSet, + DumpDBFiles => \$dumpvar::dumpDBFiles, + DumpPackages => \$dumpvar::dumpPackages, + DumpReused => \$dumpvar::dumpReused, + HighBit => \$dumpvar::quoteHighBit, + undefPrint => \$dumpvar::printUndef, + globPrint => \$dumpvar::globPrint, + UsageOnly => \$dumpvar::usageOnly, + CreateTTY => \$CreateTTY, + bareStringify => \$dumpvar::bareStringify, + frame => \$frame, + AutoTrace => \$trace, + inhibit_exit => \$inhibit_exit, + maxTraceLen => \$maxtrace, + ImmediateStop => \$ImmediateStop, + RemotePort => \$remoteport, + windowSize => \$window, + WarnAssertions => \$warnassertions, +); + +=pod + +Third, C<%optionAction> defines the subroutine to be called to process each +option. + +=cut + +%optionAction = ( + compactDump => \&dumpvar::compactDump, + veryCompact => \&dumpvar::veryCompact, + quote => \&dumpvar::quote, + TTY => \&TTY, + noTTY => \&noTTY, + ReadLine => \&ReadLine, + NonStop => \&NonStop, + LineInfo => \&LineInfo, + recallCommand => \&recallCommand, + ShellBang => \&shellBang, + pager => \&pager, + signalLevel => \&signalLevel, + warnLevel => \&warnLevel, + dieLevel => \&dieLevel, + tkRunning => \&tkRunning, + ornaments => \&ornaments, + RemotePort => \&RemotePort, + DollarCaretP => \&DollarCaretP, + OnlyAssertions=> \&OnlyAssertions, +); + +=pod + +Last, the C<%optionRequire> notes modules that must be Cd if an +option is used. + +=cut + +# Note that this list is not complete: several options not listed here +# actually require that dumpvar.pl be loaded for them to work, but are +# not in the table. A subsequent patch will correct this problem; for +# the moment, we're just recommenting, and we are NOT going to change +# function. +%optionRequire = ( + compactDump => 'dumpvar.pl', + veryCompact => 'dumpvar.pl', + quote => 'dumpvar.pl', +); + +=pod + +There are a number of initialization-related variables which can be set +by putting code to set them in a BEGIN block in the C environment +variable. These are: + +=over 4 + +=item C<$rl> - readline control XXX needs more explanation + +=item C<$warnLevel> - whether or not debugger takes over warning handling + +=item C<$dieLevel> - whether or not debugger takes over die handling + +=item C<$signalLevel> - whether or not debugger takes over signal handling + +=item C<$pre> - preprompt actions (array reference) + +=item C<$post> - postprompt actions (array reference) + +=item C<$pretype> + +=item C<$CreateTTY> - whether or not to create a new TTY for this debugger + +=item C<$CommandSet> - which command set to use (defaults to new, documented set) + +=back + +=cut + +# These guys may be defined in $ENV{PERL5DB} : +$rl = 1 unless defined $rl; +$warnLevel = 1 unless defined $warnLevel; +$dieLevel = 1 unless defined $dieLevel; +$signalLevel = 1 unless defined $signalLevel; +$pre = [] unless defined $pre; +$post = [] unless defined $post; +$pretype = [] unless defined $pretype; +$CreateTTY = 3 unless defined $CreateTTY; +$CommandSet = '580' unless defined $CommandSet; + +share($rl); +share($warnLevel); +share($dieLevel); +share($signalLevel); +share($pre); +share($post); +share($pretype); +share($rl); +share($CreateTTY); +share($CommandSet); + +=pod + +The default C, C, and C handlers are set up. + +=cut + +warnLevel($warnLevel); +dieLevel($dieLevel); +signalLevel($signalLevel); + +=pod + +The pager to be used is needed next. We try to get it from the +environment first. if it's not defined there, we try to find it in +the Perl C. If it's not there, we default to C. We +then call the C function to save the pager name. + +=cut + +# This routine makes sure $pager is set up so that '|' can use it. +pager( + + # If PAGER is defined in the environment, use it. + defined $ENV{PAGER} + ? $ENV{PAGER} + + # If not, see if Config.pm defines it. + : eval { require Config } + && defined $Config::Config{pager} + ? $Config::Config{pager} + + # If not, fall back to 'more'. + : 'more' + ) + unless defined $pager; + +=pod + +We set up the command to be used to access the man pages, the command +recall character (C unless otherwise defined) and the shell escape +character (C unless otherwise defined). Yes, these do conflict, and +neither works in the debugger at the moment. + +=cut + +setman(); + +# Set up defaults for command recall and shell escape (note: +# these currently don't work in linemode debugging). +&recallCommand("!") unless defined $prc; +&shellBang("!") unless defined $psh; + +=pod + +We then set up the gigantic string containing the debugger help. +We also set the limit on the number of arguments we'll display during a +trace. + +=cut + +sethelp(); + +# If we didn't get a default for the length of eval/stack trace args, +# set it here. +$maxtrace = 400 unless defined $maxtrace; + +=head2 SETTING UP THE DEBUGGER GREETING + +The debugger I helps to inform the user how many debuggers are +running, and whether the current debugger is the primary or a child. + +If we are the primary, we just hang onto our pid so we'll have it when +or if we start a child debugger. If we are a child, we'll set things up +so we'll have a unique greeting and so the parent will give us our own +TTY later. + +We save the current contents of the C environment variable +because we mess around with it. We'll also need to hang onto it because +we'll need it if we restart. + +Child debuggers make a label out of the current PID structure recorded in +PERLDB_PIDS plus the new PID. They also mark themselves as not having a TTY +yet so the parent will give them one later via C. + +=cut + +# Save the current contents of the environment; we're about to +# much with it. We'll need this if we have to restart. +$ini_pids = $ENV{PERLDB_PIDS}; + +if ( defined $ENV{PERLDB_PIDS} ) { + + # We're a child. Make us a label out of the current PID structure + # recorded in PERLDB_PIDS plus our (new) PID. Mark us as not having + # a term yet so the parent will give us one later via resetterm(). + $pids = "[$ENV{PERLDB_PIDS}]"; + $ENV{PERLDB_PIDS} .= "->$$"; + $term_pid = -1; +} ## end if (defined $ENV{PERLDB_PIDS... +else { + + # We're the parent PID. Initialize PERLDB_PID in case we end up with a + # child debugger, and mark us as the parent, so we'll know to set up + # more TTY's is we have to. + $ENV{PERLDB_PIDS} = "$$"; + $pids = "{pid=$$}"; + $term_pid = $$; +} + +$pidprompt = ''; + +# Sets up $emacs as a synonym for $slave_editor. +*emacs = $slave_editor if $slave_editor; # May be used in afterinit()... + +=head2 READING THE RC FILE + +The debugger will read a file of initialization options if supplied. If +running interactively, this is C<.perldb>; if not, it's C. + +=cut + +# As noted, this test really doesn't check accurately that the debugger +# is running at a terminal or not. + +if ( -e "/dev/tty" ) { # this is the wrong metric! + $rcfile = ".perldb"; +} +else { + $rcfile = "perldb.ini"; +} + +=pod + +The debugger does a safety test of the file to be read. It must be owned +either by the current user or root, and must only be writable by the owner. + +=cut + +# This wraps a safety test around "do" to read and evaluate the init file. +# +# This isn't really safe, because there's a race +# between checking and opening. The solution is to +# open and fstat the handle, but then you have to read and +# eval the contents. But then the silly thing gets +# your lexical scope, which is unfortunate at best. +sub safe_do { + my $file = shift; + + # Just exactly what part of the word "CORE::" don't you understand? + local $SIG{__WARN__}; + local $SIG{__DIE__}; + + unless ( is_safe_file($file) ) { + CORE::warn < command is invoked, it +tries to capture all of the state it can into environment variables, and +then sets C. When we start executing again, we check to see +if C is there; if so, we reload all the information that +the R command stuffed into the environment variables. + + PERLDB_RESTART - flag only, contains no restart data itself. + PERLDB_HIST - command history, if it's available + PERLDB_ON_LOAD - breakpoints set by the rc file + PERLDB_POSTPONE - subs that have been loaded/not executed, and have actions + PERLDB_VISITED - files that had breakpoints + PERLDB_FILE_... - breakpoints for a file + PERLDB_OPT - active options + PERLDB_INC - the original @INC + PERLDB_PRETYPE - preprompt debugger actions + PERLDB_PRE - preprompt Perl code + PERLDB_POST - post-prompt Perl code + PERLDB_TYPEAHEAD - typeahead captured by readline() + +We chug through all these variables and plug the values saved in them +back into the appropriate spots in the debugger. + +=cut + +if ( exists $ENV{PERLDB_RESTART} ) { + + # We're restarting, so we don't need the flag that says to restart anymore. + delete $ENV{PERLDB_RESTART}; + + # $restart = 1; + @hist = get_list('PERLDB_HIST'); + %break_on_load = get_list("PERLDB_ON_LOAD"); + %postponed = get_list("PERLDB_POSTPONE"); + + share(@hist); + share(@truehist); + share(%break_on_load); + share(%postponed); + + # restore breakpoints/actions + my @had_breakpoints = get_list("PERLDB_VISITED"); + for ( 0 .. $#had_breakpoints ) { + my %pf = get_list("PERLDB_FILE_$_"); + $postponed_file{ $had_breakpoints[$_] } = \%pf if %pf; + } + + # restore options + my %opt = get_list("PERLDB_OPT"); + my ( $opt, $val ); + while ( ( $opt, $val ) = each %opt ) { + $val =~ s/[\\\']/\\$1/g; + parse_options("$opt'$val'"); + } + + # restore original @INC + @INC = get_list("PERLDB_INC"); + @ini_INC = @INC; + + # return pre/postprompt actions and typeahead buffer + $pretype = [ get_list("PERLDB_PRETYPE") ]; + $pre = [ get_list("PERLDB_PRE") ]; + $post = [ get_list("PERLDB_POST") ]; + @typeahead = get_list( "PERLDB_TYPEAHEAD", @typeahead ); +} ## end if (exists $ENV{PERLDB_RESTART... + +=head2 SETTING UP THE TERMINAL + +Now, we'll decide how the debugger is going to interact with the user. +If there's no TTY, we set the debugger to run non-stop; there's not going +to be anyone there to enter commands. + +=cut + +if ($notty) { + $runnonstop = 1; + share($runnonstop); +} + +=pod + +If there is a TTY, we have to determine who it belongs to before we can +proceed. If this is a slave editor or graphical debugger (denoted by +the first command-line switch being '-emacs'), we shift this off and +set C<$rl> to 0 (XXX ostensibly to do straight reads). + +=cut + +else { + + # Is Perl being run from a slave editor or graphical debugger? + # If so, don't use readline, and set $slave_editor = 1. + $slave_editor = + ( ( defined $main::ARGV[0] ) and ( $main::ARGV[0] eq '-emacs' ) ); + $rl = 0, shift(@main::ARGV) if $slave_editor; + + #require Term::ReadLine; + +=pod + +We then determine what the console should be on various systems: + +=over 4 + +=item * Cygwin - We use C instead of a separate device. + +=cut + + if ( $^O eq 'cygwin' ) { + + # /dev/tty is binary. use stdin for textmode + undef $console; + } + +=item * Unix - use C. + +=cut + + elsif ( -e "/dev/tty" ) { + $console = "/dev/tty"; + } + +=item * Windows or MSDOS - use C. + +=cut + + elsif ( $^O eq 'dos' or -e "con" or $^O eq 'MSWin32' ) { + $console = "con"; + } + +=item * MacOS - use C if this is the MPW version; C if not. + +Note that Mac OS X returns C, not C. Also note that the debugger doesn't do anything special for C. Maybe it should. + +=cut + + elsif ( $^O eq 'MacOS' ) { + if ( $MacPerl::Version !~ /MPW/ ) { + $console = + "Dev:Console:Perl Debug"; # Separate window for application + } + else { + $console = "Dev:Console"; + } + } ## end elsif ($^O eq 'MacOS') + +=item * VMS - use C. + +=cut + + else { + + # everything else is ... + $console = "sys\$command"; + } + +=pod + +=back + +Several other systems don't use a specific console. We C +for those (Windows using a slave editor/graphical debugger, NetWare, OS/2 +with a slave editor, Epoc). + +=cut + + if ( ( $^O eq 'MSWin32' ) and ( $slave_editor or defined $ENV{EMACS} ) ) { + + # /dev/tty is binary. use stdin for textmode + $console = undef; + } + + if ( $^O eq 'NetWare' ) { + + # /dev/tty is binary. use stdin for textmode + $console = undef; + } + + # In OS/2, we need to use STDIN to get textmode too, even though + # it pretty much looks like Unix otherwise. + if ( defined $ENV{OS2_SHELL} and ( $slave_editor or $ENV{WINDOWID} ) ) + { # In OS/2 + $console = undef; + } + + # EPOC also falls into the 'got to use STDIN' camp. + if ( $^O eq 'epoc' ) { + $console = undef; + } + +=pod + +If there is a TTY hanging around from a parent, we use that as the console. + +=cut + + $console = $tty if defined $tty; + +=head2 SOCKET HANDLING + +The debugger is capable of opening a socket and carrying out a debugging +session over the socket. + +If C was defined in the options, the debugger assumes that it +should try to start a debugging session on that port. It builds the socket +and then tries to connect the input and output filehandles to it. + +=cut + + # Handle socket stuff. + + if ( defined $remoteport ) { + + # If RemotePort was defined in the options, connect input and output + # to the socket. + require IO::Socket; + $OUT = new IO::Socket::INET( + Timeout => '10', + PeerAddr => $remoteport, + Proto => 'tcp', + ); + if ( !$OUT ) { die "Unable to connect to remote host: $remoteport\n"; } + $IN = $OUT; + } ## end if (defined $remoteport) + +=pod + +If no C was defined, and we want to create a TTY on startup, +this is probably a situation where multiple debuggers are running (for example, +a backticked command that starts up another debugger). We create a new IN and +OUT filehandle, and do the necessary mojo to create a new TTY if we know how +and if we can. + +=cut + + # Non-socket. + else { + + # Two debuggers running (probably a system or a backtick that invokes + # the debugger itself under the running one). create a new IN and OUT + # filehandle, and do the necessary mojo to create a new tty if we + # know how, and we can. + create_IN_OUT(4) if $CreateTTY & 4; + if ($console) { + + # If we have a console, check to see if there are separate ins and + # outs to open. (They are assumed identiical if not.) + + my ( $i, $o ) = split /,/, $console; + $o = $i unless defined $o; + + # read/write on in, or just read, or read on STDIN. + open( IN, "+<$i" ) + || open( IN, "<$i" ) + || open( IN, "<&STDIN" ); + + # read/write/create/clobber out, or write/create/clobber out, + # or merge with STDERR, or merge with STDOUT. + open( OUT, "+>$o" ) + || open( OUT, ">$o" ) + || open( OUT, ">&STDERR" ) + || open( OUT, ">&STDOUT" ); # so we don't dongle stdout + + } ## end if ($console) + elsif ( not defined $console ) { + + # No console. Open STDIN. + open( IN, "<&STDIN" ); + + # merge with STDERR, or with STDOUT. + open( OUT, ">&STDERR" ) + || open( OUT, ">&STDOUT" ); # so we don't dongle stdout + $console = 'STDIN/OUT'; + } ## end elsif (not defined $console) + + # Keep copies of the filehandles so that when the pager runs, it + # can close standard input without clobbering ours. + $IN = \*IN, $OUT = \*OUT if $console or not defined $console; + } ## end elsif (from if(defined $remoteport)) + + # Unbuffer DB::OUT. We need to see responses right away. + my $previous = select($OUT); + $| = 1; # for DB::OUT + select($previous); + + # Line info goes to debugger output unless pointed elsewhere. + # Pointing elsewhere makes it possible for slave editors to + # keep track of file and position. We have both a filehandle + # and a I/O description to keep track of. + $LINEINFO = $OUT unless defined $LINEINFO; + $lineinfo = $console unless defined $lineinfo; + # share($LINEINFO); # <- unable to share globs + share($lineinfo); # + +=pod + +To finish initialization, we show the debugger greeting, +and then call the C subroutine if there is one. + +=cut + + # Show the debugger greeting. + $header =~ s/.Header: ([^,]+),v(\s+\S+\s+\S+).*$/$1$2/; + unless ($runnonstop) { + local $\ = ''; + local $, = ''; + if ( $term_pid eq '-1' ) { + print $OUT "\nDaughter DB session started...\n"; + } + else { + print $OUT "\nLoading DB routines from $header\n"; + print $OUT ( + "Editor support ", + $slave_editor ? "enabled" : "available", ".\n" + ); + print $OUT +"\nEnter h or `h h' for help, or `$doccmd perldebug' for more help.\n\n"; + } ## end else [ if ($term_pid eq '-1') + } ## end unless ($runnonstop) +} ## end else [ if ($notty) + +# XXX This looks like a bug to me. +# Why copy to @ARGS and then futz with @args? + at ARGS = @ARGV; +for (@args) { + # Make sure backslashes before single quotes are stripped out, and + # keep args unless they are numeric (XXX why?) + # s/\'/\\\'/g; # removed while not justified understandably + # s/(.*)/'$1'/ unless /^-?[\d.]+$/; # ditto +} + +# If there was an afterinit() sub defined, call it. It will get +# executed in our scope, so it can fiddle with debugger globals. +if ( defined &afterinit ) { # May be defined in $rcfile + &afterinit(); +} + +# Inform us about "Stack dump during die enabled ..." in dieLevel(). +$I_m_init = 1; + + Added: external/Pygments-0.9/tests/examplefiles/perlfunc.1 ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/perlfunc.1 Tue Oct 23 20:20:22 2007 @@ -0,0 +1,856 @@ +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "PERLFUNC 1" +.TH PERLFUNC 1 "2006-01-07" "perl v5.8.8" "Perl Programmers Reference Guide" +.SH "NAME" +.IX Xref "function" +perlfunc \- Perl builtin functions +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +The functions in this section can serve as terms in an expression. +They fall into two major categories: list operators and named unary +operators. These differ in their precedence relationship with a +following comma. (See the precedence table in perlop.) List +operators take more than one argument, while unary operators can never +take more than one argument. Thus, a comma terminates the argument of +a unary operator, but merely separates the arguments of a list +operator. A unary operator generally provides a scalar context to its +argument, while a list operator may provide either scalar or list +contexts for its arguments. If it does both, the scalar arguments will +be first, and the list argument will follow. (Note that there can ever +be only one such list argument.) For instance, \fIsplice()\fR has three scalar +arguments followed by a list, whereas \fIgethostbyname()\fR has four scalar +arguments. +.PP +In the syntax descriptions that follow, list operators that expect a +list (and provide list context for the elements of the list) are shown +with \s-1LIST\s0 as an argument. Such a list may consist of any combination +of scalar arguments or list values; the list values will be included +in the list as if each individual element were interpolated at that +point in the list, forming a longer single-dimensional list value. +Commas should separate elements of the \s-1LIST\s0. +.PP +Any function in the list below may be used either with or without +parentheses around its arguments. (The syntax descriptions omit the +parentheses.) If you use the parentheses, the simple (but occasionally +surprising) rule is this: It \fIlooks\fR like a function, therefore it \fIis\fR a +function, and precedence doesn't matter. Otherwise it's a list +operator or unary operator, and precedence does matter. And whitespace +between the function and left parenthesis doesn't count\*(--so you need to +be careful sometimes: +.PP +.Vb 5 +\& print 1+2+4; # Prints 7. +\& print(1+2) + 4; # Prints 3. +\& print (1+2)+4; # Also prints 3! +\& print +(1+2)+4; # Prints 7. +\& print ((1+2)+4); # Prints 7. +.Ve +.PP +If you run Perl with the \fB\-w\fR switch it can warn you about this. For +example, the third line above produces: +.PP +.Vb 2 +\& print (...) interpreted as function at - line 1. +\& Useless use of integer addition in void context at - line 1. +.Ve +.PP +A few functions take no arguments at all, and therefore work as neither +unary nor list operators. These include such functions as \f(CW\*(C`time\*(C'\fR +and \f(CW\*(C`endpwent\*(C'\fR. For example, \f(CW\*(C`time+86_400\*(C'\fR always means +\&\f(CW\*(C`time() + 86_400\*(C'\fR. +.PP +For functions that can be used in either a scalar or list context, +nonabortive failure is generally indicated in a scalar context by +returning the undefined value, and in a list context by returning the +null list. +.PP +Remember the following important rule: There is \fBno rule\fR that relates +the behavior of an expression in list context to its behavior in scalar +context, or vice versa. It might do two totally different things. +Each operator and function decides which sort of value it would be most +appropriate to return in scalar context. Some operators return the +length of the list that would have been returned in list context. Some +operators return the first value in the list. Some operators return the +last value in the list. Some operators return a count of successful +operations. In general, they do what you want, unless you want +consistency. +.IX Xref "context" +.PP +A named array in scalar context is quite different from what would at +first glance appear to be a list in scalar context. You can't get a list +like \f(CW\*(C`(1,2,3)\*(C'\fR into being in scalar context, because the compiler knows +the context at compile time. It would generate the scalar comma operator +there, not the list construction version of the comma. That means it +was never a list to start with. +.PP +In general, functions in Perl that serve as wrappers for system calls +of the same name (like \fIchown\fR\|(2), \fIfork\fR\|(2), \fIclosedir\fR\|(2), etc.) all return +true when they succeed and \f(CW\*(C`undef\*(C'\fR otherwise, as is usually mentioned +in the descriptions below. This is different from the C interfaces, +which return \f(CW\*(C`\-1\*(C'\fR on failure. Exceptions to this rule are \f(CW\*(C`wait\*(C'\fR, +\&\f(CW\*(C`waitpid\*(C'\fR, and \f(CW\*(C`syscall\*(C'\fR. System calls also set the special \f(CW$!\fR +variable on failure. Other functions do not, except accidentally. +.Sh "Perl Functions by Category" +.IX Xref "function" +.IX Subsection "Perl Functions by Category" +Here are Perl's functions (including things that look like +functions, like some keywords and named operators) +arranged by category. Some functions appear in more +than one place. +.IP "Functions for SCALARs or strings" 4 +.IX Xref "scalar string character" +.IX Item "Functions for SCALARs or strings" +\&\f(CW\*(C`chomp\*(C'\fR, \f(CW\*(C`chop\*(C'\fR, \f(CW\*(C`chr\*(C'\fR, \f(CW\*(C`crypt\*(C'\fR, \f(CW\*(C`hex\*(C'\fR, \f(CW\*(C`index\*(C'\fR, \f(CW\*(C`lc\*(C'\fR, \f(CW\*(C`lcfirst\*(C'\fR, +\&\f(CW\*(C`length\*(C'\fR, \f(CW\*(C`oct\*(C'\fR, \f(CW\*(C`ord\*(C'\fR, \f(CW\*(C`pack\*(C'\fR, \f(CW\*(C`q/STRING/\*(C'\fR, \f(CW\*(C`qq/STRING/\*(C'\fR, \f(CW\*(C`reverse\*(C'\fR, +\&\f(CW\*(C`rindex\*(C'\fR, \f(CW\*(C`sprintf\*(C'\fR, \f(CW\*(C`substr\*(C'\fR, \f(CW\*(C`tr///\*(C'\fR, \f(CW\*(C`uc\*(C'\fR, \f(CW\*(C`ucfirst\*(C'\fR, \f(CW\*(C`y///\*(C'\fR +.IP "Regular expressions and pattern matching" 4 +.IX Xref "regular expression regex regexp" +.IX Item "Regular expressions and pattern matching" +\&\f(CW\*(C`m//\*(C'\fR, \f(CW\*(C`pos\*(C'\fR, \f(CW\*(C`quotemeta\*(C'\fR, \f(CW\*(C`s///\*(C'\fR, \f(CW\*(C`split\*(C'\fR, \f(CW\*(C`study\*(C'\fR, \f(CW\*(C`qr//\*(C'\fR +.IP "Numeric functions" 4 +.IX Xref "numeric number trigonometric trigonometry" +.IX Item "Numeric functions" +\&\f(CW\*(C`abs\*(C'\fR, \f(CW\*(C`atan2\*(C'\fR, \f(CW\*(C`cos\*(C'\fR, \f(CW\*(C`exp\*(C'\fR, \f(CW\*(C`hex\*(C'\fR, \f(CW\*(C`int\*(C'\fR, \f(CW\*(C`log\*(C'\fR, \f(CW\*(C`oct\*(C'\fR, \f(CW\*(C`rand\*(C'\fR, +\&\f(CW\*(C`sin\*(C'\fR, \f(CW\*(C`sqrt\*(C'\fR, \f(CW\*(C`srand\*(C'\fR +.ie n .IP "Functions for real @ARRAYs" 4 +.el .IP "Functions for real \f(CW at ARRAYs\fR" 4 +.IX Xref "array" +.IX Item "Functions for real @ARRAYs" +\&\f(CW\*(C`pop\*(C'\fR, \f(CW\*(C`push\*(C'\fR, \f(CW\*(C`shift\*(C'\fR, \f(CW\*(C`splice\*(C'\fR, \f(CW\*(C`unshift\*(C'\fR +.IP "Functions for list data" 4 +.IX Xref "list" +.IX Item "Functions for list data" +\&\f(CW\*(C`grep\*(C'\fR, \f(CW\*(C`join\*(C'\fR, \f(CW\*(C`map\*(C'\fR, \f(CW\*(C`qw/STRING/\*(C'\fR, \f(CW\*(C`reverse\*(C'\fR, \f(CW\*(C`sort\*(C'\fR, \f(CW\*(C`unpack\*(C'\fR +.ie n .IP "Functions for real %HASHes" 4 +.el .IP "Functions for real \f(CW%HASHes\fR" 4 +.IX Xref "hash" +.IX Item "Functions for real %HASHes" +\&\f(CW\*(C`delete\*(C'\fR, \f(CW\*(C`each\*(C'\fR, \f(CW\*(C`exists\*(C'\fR, \f(CW\*(C`keys\*(C'\fR, \f(CW\*(C`values\*(C'\fR +.IP "Input and output functions" 4 +.IX Xref "I O input output dbm" +.IX Item "Input and output functions" +\&\f(CW\*(C`binmode\*(C'\fR, \f(CW\*(C`close\*(C'\fR, \f(CW\*(C`closedir\*(C'\fR, \f(CW\*(C`dbmclose\*(C'\fR, \f(CW\*(C`dbmopen\*(C'\fR, \f(CW\*(C`die\*(C'\fR, \f(CW\*(C`eof\*(C'\fR, +\&\f(CW\*(C`fileno\*(C'\fR, \f(CW\*(C`flock\*(C'\fR, \f(CW\*(C`format\*(C'\fR, \f(CW\*(C`getc\*(C'\fR, \f(CW\*(C`print\*(C'\fR, \f(CW\*(C`printf\*(C'\fR, \f(CW\*(C`read\*(C'\fR, +\&\f(CW\*(C`readdir\*(C'\fR, \f(CW\*(C`rewinddir\*(C'\fR, \f(CW\*(C`seek\*(C'\fR, \f(CW\*(C`seekdir\*(C'\fR, \f(CW\*(C`select\*(C'\fR, \f(CW\*(C`syscall\*(C'\fR, +\&\f(CW\*(C`sysread\*(C'\fR, \f(CW\*(C`sysseek\*(C'\fR, \f(CW\*(C`syswrite\*(C'\fR, \f(CW\*(C`tell\*(C'\fR, \f(CW\*(C`telldir\*(C'\fR, \f(CW\*(C`truncate\*(C'\fR, +\&\f(CW\*(C`warn\*(C'\fR, \f(CW\*(C`write\*(C'\fR +.IP "Functions for fixed length data or records" 4 +.IX Item "Functions for fixed length data or records" +\&\f(CW\*(C`pack\*(C'\fR, \f(CW\*(C`read\*(C'\fR, \f(CW\*(C`syscall\*(C'\fR, \f(CW\*(C`sysread\*(C'\fR, \f(CW\*(C`syswrite\*(C'\fR, \f(CW\*(C`unpack\*(C'\fR, \f(CW\*(C`vec\*(C'\fR +.IP "Functions for filehandles, files, or directories" 4 +.IX Xref "file filehandle directory pipe link symlink" +.IX Item "Functions for filehandles, files, or directories" +\&\f(CW\*(C`\-\f(CIX\f(CW\*(C'\fR, \f(CW\*(C`chdir\*(C'\fR, \f(CW\*(C`chmod\*(C'\fR, \f(CW\*(C`chown\*(C'\fR, \f(CW\*(C`chroot\*(C'\fR, \f(CW\*(C`fcntl\*(C'\fR, \f(CW\*(C`glob\*(C'\fR, +\&\f(CW\*(C`ioctl\*(C'\fR, \f(CW\*(C`link\*(C'\fR, \f(CW\*(C`lstat\*(C'\fR, \f(CW\*(C`mkdir\*(C'\fR, \f(CW\*(C`open\*(C'\fR, \f(CW\*(C`opendir\*(C'\fR, +\&\f(CW\*(C`readlink\*(C'\fR, \f(CW\*(C`rename\*(C'\fR, \f(CW\*(C`rmdir\*(C'\fR, \f(CW\*(C`stat\*(C'\fR, \f(CW\*(C`symlink\*(C'\fR, \f(CW\*(C`sysopen\*(C'\fR, +\&\f(CW\*(C`umask\*(C'\fR, \f(CW\*(C`unlink\*(C'\fR, \f(CW\*(C`utime\*(C'\fR +.IP "Keywords related to the control flow of your Perl program" 4 +.IX Xref "control flow" +.IX Item "Keywords related to the control flow of your Perl program" +\&\f(CW\*(C`caller\*(C'\fR, \f(CW\*(C`continue\*(C'\fR, \f(CW\*(C`die\*(C'\fR, \f(CW\*(C`do\*(C'\fR, \f(CW\*(C`dump\*(C'\fR, \f(CW\*(C`eval\*(C'\fR, \f(CW\*(C`exit\*(C'\fR, +\&\f(CW\*(C`goto\*(C'\fR, \f(CW\*(C`last\*(C'\fR, \f(CW\*(C`next\*(C'\fR, \f(CW\*(C`redo\*(C'\fR, \f(CW\*(C`return\*(C'\fR, \f(CW\*(C`sub\*(C'\fR, \f(CW\*(C`wantarray\*(C'\fR +.IP "Keywords related to scoping" 4 +.IX Item "Keywords related to scoping" +\&\f(CW\*(C`caller\*(C'\fR, \f(CW\*(C`import\*(C'\fR, \f(CW\*(C`local\*(C'\fR, \f(CW\*(C`my\*(C'\fR, \f(CW\*(C`our\*(C'\fR, \f(CW\*(C`package\*(C'\fR, \f(CW\*(C`use\*(C'\fR +.IP "Miscellaneous functions" 4 +.IX Item "Miscellaneous functions" +\&\f(CW\*(C`defined\*(C'\fR, \f(CW\*(C`dump\*(C'\fR, \f(CW\*(C`eval\*(C'\fR, \f(CW\*(C`formline\*(C'\fR, \f(CW\*(C`local\*(C'\fR, \f(CW\*(C`my\*(C'\fR, \f(CW\*(C`our\*(C'\fR, \f(CW\*(C`reset\*(C'\fR, +\&\f(CW\*(C`scalar\*(C'\fR, \f(CW\*(C`undef\*(C'\fR, \f(CW\*(C`wantarray\*(C'\fR +.IP "Functions for processes and process groups" 4 +.IX Xref "process pid process id" +.IX Item "Functions for processes and process groups" +\&\f(CW\*(C`alarm\*(C'\fR, \f(CW\*(C`exec\*(C'\fR, \f(CW\*(C`fork\*(C'\fR, \f(CW\*(C`getpgrp\*(C'\fR, \f(CW\*(C`getppid\*(C'\fR, \f(CW\*(C`getpriority\*(C'\fR, \f(CW\*(C`kill\*(C'\fR, +\&\f(CW\*(C`pipe\*(C'\fR, \f(CW\*(C`qx/STRING/\*(C'\fR, \f(CW\*(C`setpgrp\*(C'\fR, \f(CW\*(C`setpriority\*(C'\fR, \f(CW\*(C`sleep\*(C'\fR, \f(CW\*(C`system\*(C'\fR, +\&\f(CW\*(C`times\*(C'\fR, \f(CW\*(C`wait\*(C'\fR, \f(CW\*(C`waitpid\*(C'\fR +.IP "Keywords related to perl modules" 4 +.IX Xref "module" +.IX Item "Keywords related to perl modules" +\&\f(CW\*(C`do\*(C'\fR, \f(CW\*(C`import\*(C'\fR, \f(CW\*(C`no\*(C'\fR, \f(CW\*(C`package\*(C'\fR, \f(CW\*(C`require\*(C'\fR, \f(CW\*(C`use\*(C'\fR +.IP "Keywords related to classes and object-orientedness" 4 +.IX Xref "object class package" +.IX Item "Keywords related to classes and object-orientedness" +\&\f(CW\*(C`bless\*(C'\fR, \f(CW\*(C`dbmclose\*(C'\fR, \f(CW\*(C`dbmopen\*(C'\fR, \f(CW\*(C`package\*(C'\fR, \f(CW\*(C`ref\*(C'\fR, \f(CW\*(C`tie\*(C'\fR, \f(CW\*(C`tied\*(C'\fR, +\&\f(CW\*(C`untie\*(C'\fR, \f(CW\*(C`use\*(C'\fR +.IP "Low-level socket functions" 4 +.IX Xref "socket sock" +.IX Item "Low-level socket functions" +\&\f(CW\*(C`accept\*(C'\fR, \f(CW\*(C`bind\*(C'\fR, \f(CW\*(C`connect\*(C'\fR, \f(CW\*(C`getpeername\*(C'\fR, \f(CW\*(C`getsockname\*(C'\fR, +\&\f(CW\*(C`getsockopt\*(C'\fR, \f(CW\*(C`listen\*(C'\fR, \f(CW\*(C`recv\*(C'\fR, \f(CW\*(C`send\*(C'\fR, \f(CW\*(C`setsockopt\*(C'\fR, \f(CW\*(C`shutdown\*(C'\fR, +\&\f(CW\*(C`socket\*(C'\fR, \f(CW\*(C`socketpair\*(C'\fR +.IP "System V interprocess communication functions" 4 +.IX Xref "IPC System V semaphore shared memory memory message" +.IX Item "System V interprocess communication functions" +\&\f(CW\*(C`msgctl\*(C'\fR, \f(CW\*(C`msgget\*(C'\fR, \f(CW\*(C`msgrcv\*(C'\fR, \f(CW\*(C`msgsnd\*(C'\fR, \f(CW\*(C`semctl\*(C'\fR, \f(CW\*(C`semget\*(C'\fR, \f(CW\*(C`semop\*(C'\fR, +\&\f(CW\*(C`shmctl\*(C'\fR, \f(CW\*(C`shmget\*(C'\fR, \f(CW\*(C`shmread\*(C'\fR, \f(CW\*(C`shmwrite\*(C'\fR +.IP "Fetching user and group info" 4 +.IX Xref "user group password uid gid passwd etc passwd" +.IX Item "Fetching user and group info" +\&\f(CW\*(C`endgrent\*(C'\fR, \f(CW\*(C`endhostent\*(C'\fR, \f(CW\*(C`endnetent\*(C'\fR, \f(CW\*(C`endpwent\*(C'\fR, \f(CW\*(C`getgrent\*(C'\fR, +\&\f(CW\*(C`getgrgid\*(C'\fR, \f(CW\*(C`getgrnam\*(C'\fR, \f(CW\*(C`getlogin\*(C'\fR, \f(CW\*(C`getpwent\*(C'\fR, \f(CW\*(C`getpwnam\*(C'\fR, +\&\f(CW\*(C`getpwuid\*(C'\fR, \f(CW\*(C`setgrent\*(C'\fR, \f(CW\*(C`setpwent\*(C'\fR +.IP "Fetching network info" 4 +.IX Xref "network protocol host hostname IP address service" +.IX Item "Fetching network info" +\&\f(CW\*(C`endprotoent\*(C'\fR, \f(CW\*(C`endservent\*(C'\fR, \f(CW\*(C`gethostbyaddr\*(C'\fR, \f(CW\*(C`gethostbyname\*(C'\fR, +\&\f(CW\*(C`gethostent\*(C'\fR, \f(CW\*(C`getnetbyaddr\*(C'\fR, \f(CW\*(C`getnetbyname\*(C'\fR, \f(CW\*(C`getnetent\*(C'\fR, +\&\f(CW\*(C`getprotobyname\*(C'\fR, \f(CW\*(C`getprotobynumber\*(C'\fR, \f(CW\*(C`getprotoent\*(C'\fR, +\&\f(CW\*(C`getservbyname\*(C'\fR, \f(CW\*(C`getservbyport\*(C'\fR, \f(CW\*(C`getservent\*(C'\fR, \f(CW\*(C`sethostent\*(C'\fR, +\&\f(CW\*(C`setnetent\*(C'\fR, \f(CW\*(C`setprotoent\*(C'\fR, \f(CW\*(C`setservent\*(C'\fR +.IP "Time-related functions" 4 +.IX Xref "time date" +.IX Item "Time-related functions" +\&\f(CW\*(C`gmtime\*(C'\fR, \f(CW\*(C`localtime\*(C'\fR, \f(CW\*(C`time\*(C'\fR, \f(CW\*(C`times\*(C'\fR +.IP "Functions new in perl5" 4 +.IX Xref "perl5" +.IX Item "Functions new in perl5" +\&\f(CW\*(C`abs\*(C'\fR, \f(CW\*(C`bless\*(C'\fR, \f(CW\*(C`chomp\*(C'\fR, \f(CW\*(C`chr\*(C'\fR, \f(CW\*(C`exists\*(C'\fR, \f(CW\*(C`formline\*(C'\fR, \f(CW\*(C`glob\*(C'\fR, +\&\f(CW\*(C`import\*(C'\fR, \f(CW\*(C`lc\*(C'\fR, \f(CW\*(C`lcfirst\*(C'\fR, \f(CW\*(C`map\*(C'\fR, \f(CW\*(C`my\*(C'\fR, \f(CW\*(C`no\*(C'\fR, \f(CW\*(C`our\*(C'\fR, \f(CW\*(C`prototype\*(C'\fR, +\&\f(CW\*(C`qx\*(C'\fR, \f(CW\*(C`qw\*(C'\fR, \f(CW\*(C`readline\*(C'\fR, \f(CW\*(C`readpipe\*(C'\fR, \f(CW\*(C`ref\*(C'\fR, \f(CW\*(C`sub*\*(C'\fR, \f(CW\*(C`sysopen\*(C'\fR, \f(CW\*(C`tie\*(C'\fR, +\&\f(CW\*(C`tied\*(C'\fR, \f(CW\*(C`uc\*(C'\fR, \f(CW\*(C`ucfirst\*(C'\fR, \f(CW\*(C`untie\*(C'\fR, \f(CW\*(C`use\*(C'\fR +.Sp +* \- \f(CW\*(C`sub\*(C'\fR was a keyword in perl4, but in perl5 it is an +operator, which can be used in expressions. +.IP "Functions obsoleted in perl5" 4 +.IX Item "Functions obsoleted in perl5" +\&\f(CW\*(C`dbmclose\*(C'\fR, \f(CW\*(C`dbmopen\*(C'\fR +.Sh "Portability" +.IX Xref "portability Unix portable" +.IX Subsection "Portability" +Perl was born in Unix and can therefore access all common Unix +system calls. In non-Unix environments, the functionality of some +Unix system calls may not be available, or details of the available +functionality may differ slightly. The Perl functions affected +by this are: +.PP +\&\f(CW\*(C`\-X\*(C'\fR, \f(CW\*(C`binmode\*(C'\fR, \f(CW\*(C`chmod\*(C'\fR, \f(CW\*(C`chown\*(C'\fR, \f(CW\*(C`chroot\*(C'\fR, \f(CW\*(C`crypt\*(C'\fR, +\&\f(CW\*(C`dbmclose\*(C'\fR, \f(CW\*(C`dbmopen\*(C'\fR, \f(CW\*(C`dump\*(C'\fR, \f(CW\*(C`endgrent\*(C'\fR, \f(CW\*(C`endhostent\*(C'\fR, +\&\f(CW\*(C`endnetent\*(C'\fR, \f(CW\*(C`endprotoent\*(C'\fR, \f(CW\*(C`endpwent\*(C'\fR, \f(CW\*(C`endservent\*(C'\fR, \f(CW\*(C`exec\*(C'\fR, +\&\f(CW\*(C`fcntl\*(C'\fR, \f(CW\*(C`flock\*(C'\fR, \f(CW\*(C`fork\*(C'\fR, \f(CW\*(C`getgrent\*(C'\fR, \f(CW\*(C`getgrgid\*(C'\fR, \f(CW\*(C`gethostbyname\*(C'\fR, +\&\f(CW\*(C`gethostent\*(C'\fR, \f(CW\*(C`getlogin\*(C'\fR, \f(CW\*(C`getnetbyaddr\*(C'\fR, \f(CW\*(C`getnetbyname\*(C'\fR, \f(CW\*(C`getnetent\*(C'\fR, +\&\f(CW\*(C`getppid\*(C'\fR, \f(CW\*(C`getpgrp\*(C'\fR, \f(CW\*(C`getpriority\*(C'\fR, \f(CW\*(C`getprotobynumber\*(C'\fR, +\&\f(CW\*(C`getprotoent\*(C'\fR, \f(CW\*(C`getpwent\*(C'\fR, \f(CW\*(C`getpwnam\*(C'\fR, \f(CW\*(C`getpwuid\*(C'\fR, +\&\f(CW\*(C`getservbyport\*(C'\fR, \f(CW\*(C`getservent\*(C'\fR, \f(CW\*(C`getsockopt\*(C'\fR, \f(CW\*(C`glob\*(C'\fR, \f(CW\*(C`ioctl\*(C'\fR, +\&\f(CW\*(C`kill\*(C'\fR, \f(CW\*(C`link\*(C'\fR, \f(CW\*(C`lstat\*(C'\fR, \f(CW\*(C`msgctl\*(C'\fR, \f(CW\*(C`msgget\*(C'\fR, \f(CW\*(C`msgrcv\*(C'\fR, +\&\f(CW\*(C`msgsnd\*(C'\fR, \f(CW\*(C`open\*(C'\fR, \f(CW\*(C`pipe\*(C'\fR, \f(CW\*(C`readlink\*(C'\fR, \f(CW\*(C`rename\*(C'\fR, \f(CW\*(C`select\*(C'\fR, \f(CW\*(C`semctl\*(C'\fR, +\&\f(CW\*(C`semget\*(C'\fR, \f(CW\*(C`semop\*(C'\fR, \f(CW\*(C`setgrent\*(C'\fR, \f(CW\*(C`sethostent\*(C'\fR, \f(CW\*(C`setnetent\*(C'\fR, +\&\f(CW\*(C`setpgrp\*(C'\fR, \f(CW\*(C`setpriority\*(C'\fR, \f(CW\*(C`setprotoent\*(C'\fR, \f(CW\*(C`setpwent\*(C'\fR, +\&\f(CW\*(C`setservent\*(C'\fR, \f(CW\*(C`setsockopt\*(C'\fR, \f(CW\*(C`shmctl\*(C'\fR, \f(CW\*(C`shmget\*(C'\fR, \f(CW\*(C`shmread\*(C'\fR, +\&\f(CW\*(C`shmwrite\*(C'\fR, \f(CW\*(C`socket\*(C'\fR, \f(CW\*(C`socketpair\*(C'\fR, +\&\f(CW\*(C`stat\*(C'\fR, \f(CW\*(C`symlink\*(C'\fR, \f(CW\*(C`syscall\*(C'\fR, \f(CW\*(C`sysopen\*(C'\fR, \f(CW\*(C`system\*(C'\fR, +\&\f(CW\*(C`times\*(C'\fR, \f(CW\*(C`truncate\*(C'\fR, \f(CW\*(C`umask\*(C'\fR, \f(CW\*(C`unlink\*(C'\fR, +\&\f(CW\*(C`utime\*(C'\fR, \f(CW\*(C`wait\*(C'\fR, \f(CW\*(C`waitpid\*(C'\fR +.PP +For more information about the portability of these functions, see +perlport and other available platform-specific documentation. +.Sh "Alphabetical Listing of Perl Functions" +.IX Subsection "Alphabetical Listing of Perl Functions" +.IP "\-X \s-1FILEHANDLE\s0" 8 +.IX Xref "-r -w -x -o -R -W -X -O -e -z -s -f -d -l -p -S -b -c -t -u -g -k -T -B -M -A -C" +.IX Item "-X FILEHANDLE" +.PD 0 +.IP "\-X \s-1EXPR\s0" 8 +.IX Item "-X EXPR" +.IP "\-X" 8 +.IX Item "-X" +.PD +A file test, where X is one of the letters listed below. This unary +operator takes one argument, either a filename or a filehandle, and +tests the associated file to see if something is true about it. If the +argument is omitted, tests \f(CW$_\fR, except for \f(CW\*(C`\-t\*(C'\fR, which tests \s-1STDIN\s0. +Unless otherwise documented, it returns \f(CW1\fR for true and \f(CW''\fR for false, or +the undefined value if the file doesn't exist. Despite the funny +names, precedence is the same as any other named unary operator, and +the argument may be parenthesized like any other unary operator. The +operator may be any of: +.Sp +.Vb 4 +\& -r File is readable by effective uid/gid. +\& -w File is writable by effective uid/gid. +\& -x File is executable by effective uid/gid. +\& -o File is owned by effective uid. +.Ve +.Sp +.Vb 4 +\& -R File is readable by real uid/gid. +\& -W File is writable by real uid/gid. +\& -X File is executable by real uid/gid. +\& -O File is owned by real uid. +.Ve +.Sp +.Vb 3 +\& -e File exists. +\& -z File has zero size (is empty). +\& -s File has nonzero size (returns size in bytes). +.Ve +.Sp +.Vb 8 +\& -f File is a plain file. +\& -d File is a directory. +\& -l File is a symbolic link. +\& -p File is a named pipe (FIFO), or Filehandle is a pipe. +\& -S File is a socket. +\& -b File is a block special file. +\& -c File is a character special file. +\& -t Filehandle is opened to a tty. +.Ve +.Sp +.Vb 3 +\& -u File has setuid bit set. +\& -g File has setgid bit set. +\& -k File has sticky bit set. +.Ve +.Sp +.Vb 2 +\& -T File is an ASCII text file (heuristic guess). +\& -B File is a "binary" file (opposite of -T). +.Ve +.Sp +.Vb 3 +\& -M Script start time minus file modification time, in days. +\& -A Same for access time. +\& -C Same for inode change time (Unix, may differ for other platforms) +.Ve +.Sp +Example: +.Sp +.Vb 5 +\& while (<>) { +\& chomp; +\& next unless -f $_; # ignore specials +\& #... +\& } +.Ve +.Sp +The interpretation of the file permission operators \f(CW\*(C`\-r\*(C'\fR, \f(CW\*(C`\-R\*(C'\fR, +\&\f(CW\*(C`\-w\*(C'\fR, \f(CW\*(C`\-W\*(C'\fR, \f(CW\*(C`\-x\*(C'\fR, and \f(CW\*(C`\-X\*(C'\fR is by default based solely on the mode +of the file and the uids and gids of the user. There may be other +reasons you can't actually read, write, or execute the file. Such +reasons may be for example network filesystem access controls, ACLs +(access control lists), read-only filesystems, and unrecognized +executable formats. +.Sp +Also note that, for the superuser on the local filesystems, the \f(CW\*(C`\-r\*(C'\fR, +\&\f(CW\*(C`\-R\*(C'\fR, \f(CW\*(C`\-w\*(C'\fR, and \f(CW\*(C`\-W\*(C'\fR tests always return 1, and \f(CW\*(C`\-x\*(C'\fR and \f(CW\*(C`\-X\*(C'\fR return 1 +if any execute bit is set in the mode. Scripts run by the superuser +may thus need to do a \fIstat()\fR to determine the actual mode of the file, +or temporarily set their effective uid to something else. +.Sp +If you are using ACLs, there is a pragma called \f(CW\*(C`filetest\*(C'\fR that may +produce more accurate results than the bare \fIstat()\fR mode bits. +When under the \f(CW\*(C`use filetest 'access'\*(C'\fR the above-mentioned filetests +will test whether the permission can (not) be granted using the +\&\fIaccess()\fR family of system calls. Also note that the \f(CW\*(C`\-x\*(C'\fR and \f(CW\*(C`\-X\*(C'\fR may +under this pragma return true even if there are no execute permission +bits set (nor any extra execute permission ACLs). This strangeness is +due to the underlying system calls' definitions. Read the +documentation for the \f(CW\*(C`filetest\*(C'\fR pragma for more information. +.Sp +Note that \f(CW\*(C`\-s/a/b/\*(C'\fR does not do a negated substitution. Saying +\&\f(CW\*(C`\-exp($foo)\*(C'\fR still works as expected, however\*(--only single letters +following a minus are interpreted as file tests. +.Sp +The \f(CW\*(C`\-T\*(C'\fR and \f(CW\*(C`\-B\*(C'\fR switches work as follows. The first block or so of the +file is examined for odd characters such as strange control codes or +characters with the high bit set. If too many strange characters (>30%) +are found, it's a \f(CW\*(C`\-B\*(C'\fR file; otherwise it's a \f(CW\*(C`\-T\*(C'\fR file. Also, any file +containing null in the first block is considered a binary file. If \f(CW\*(C`\-T\*(C'\fR +or \f(CW\*(C`\-B\*(C'\fR is used on a filehandle, the current \s-1IO\s0 buffer is examined +rather than the first block. Both \f(CW\*(C`\-T\*(C'\fR and \f(CW\*(C`\-B\*(C'\fR return true on a null +file, or a file at \s-1EOF\s0 when testing a filehandle. Because you have to +read a file to do the \f(CW\*(C`\-T\*(C'\fR test, on most occasions you want to use a \f(CW\*(C`\-f\*(C'\fR +against the file first, as in \f(CW\*(C`next unless \-f $file && \-T $file\*(C'\fR. +.Sp +If any of the file tests (or either the \f(CW\*(C`stat\*(C'\fR or \f(CW\*(C`lstat\*(C'\fR operators) are given +the special filehandle consisting of a solitary underline, then the stat +structure of the previous file test (or stat operator) is used, saving +a system call. (This doesn't work with \f(CW\*(C`\-t\*(C'\fR, and you need to remember +that \fIlstat()\fR and \f(CW\*(C`\-l\*(C'\fR will leave values in the stat structure for the +symbolic link, not the real file.) (Also, if the stat buffer was filled by +an \f(CW\*(C`lstat\*(C'\fR call, \f(CW\*(C`\-T\*(C'\fR and \f(CW\*(C`\-B\*(C'\fR will reset it with the results of \f(CW\*(C`stat _\*(C'\fR). +Example: +.Sp +.Vb 1 +\& print "Can do.\en" if -r $a || -w _ || -x _; +.Ve +.Sp +.Vb 9 +\& stat($filename); +\& print "Readable\en" if -r _; +\& print "Writable\en" if -w _; +\& print "Executable\en" if -x _; +\& print "Setuid\en" if -u _; +\& print "Setgid\en" if -g _; +\& print "Sticky\en" if -k _; +\& print "Text\en" if -T _; +\& print "Binary\en" if -B _; +.Ve +.IP "abs \s-1VALUE\s0" 8 +.IX Xref "abs absolute" +.IX Item "abs VALUE" +.PD 0 +.IP "abs" 8 +.IX Item "abs" +.PD +Returns the absolute value of its argument. +If \s-1VALUE\s0 is omitted, uses \f(CW$_\fR. +.IP "accept \s-1NEWSOCKET\s0,GENERICSOCKET" 8 +.IX Xref "accept" +.IX Item "accept NEWSOCKET,GENERICSOCKET" +Accepts an incoming socket connect, just as the \fIaccept\fR\|(2) system call +does. Returns the packed address if it succeeded, false otherwise. +See the example in \*(L"Sockets: Client/Server Communication\*(R" in perlipc. +.Sp +On systems that support a close-on-exec flag on files, the flag will +be set for the newly opened file descriptor, as determined by the +value of $^F. See \*(L"$^F\*(R" in perlvar. +.IP "alarm \s-1SECONDS\s0" 8 +.IX Xref "alarm SIGALRM timer" +.IX Item "alarm SECONDS" +.PD 0 +.IP "alarm" 8 +.IX Item "alarm" +.PD +Arranges to have a \s-1SIGALRM\s0 delivered to this process after the +specified number of wallclock seconds has elapsed. If \s-1SECONDS\s0 is not +specified, the value stored in \f(CW$_\fR is used. (On some machines, +unfortunately, the elapsed time may be up to one second less or more +than you specified because of how seconds are counted, and process +scheduling may delay the delivery of the signal even further.) +.Sp +Only one timer may be counting at once. Each call disables the +previous timer, and an argument of \f(CW0\fR may be supplied to cancel the +previous timer without starting a new one. The returned value is the +amount of time remaining on the previous timer. +.Sp +For delays of finer granularity than one second, you may use Perl's +four-argument version of \fIselect()\fR leaving the first three arguments +undefined, or you might be able to use the \f(CW\*(C`syscall\*(C'\fR interface to +access \fIsetitimer\fR\|(2) if your system supports it. The Time::HiRes +module (from \s-1CPAN\s0, and starting from Perl 5.8 part of the standard +distribution) may also prove useful. +.Sp +It is usually a mistake to intermix \f(CW\*(C`alarm\*(C'\fR and \f(CW\*(C`sleep\*(C'\fR calls. +(\f(CW\*(C`sleep\*(C'\fR may be internally implemented in your system with \f(CW\*(C`alarm\*(C'\fR) +.Sp +If you want to use \f(CW\*(C`alarm\*(C'\fR to time out a system call you need to use an +\&\f(CW\*(C`eval\*(C'\fR/\f(CW\*(C`die\*(C'\fR pair. You can't rely on the alarm causing the system call to +fail with \f(CW$!\fR set to \f(CW\*(C`EINTR\*(C'\fR because Perl sets up signal handlers to +restart system calls on some systems. Using \f(CW\*(C`eval\*(C'\fR/\f(CW\*(C`die\*(C'\fR always works, +modulo the caveats given in \*(L"Signals\*(R" in perlipc. +.Sp +.Vb 13 +\& eval { +\& local $SIG{ALRM} = sub { die "alarm\en" }; # NB: \en required +\& alarm $timeout; +\& $nread = sysread SOCKET, $buffer, $size; +\& alarm 0; +\& }; +\& if ($@) { +\& die unless $@ eq "alarm\en"; # propagate unexpected errors +\& # timed out +\& } +\& else { +\& # didn't +\& } +.Ve +.Sp +For more information see perlipc. +.IP "atan2 Y,X" 8 +.IX Xref "atan2 arctangent tan tangent" +.IX Item "atan2 Y,X" +Returns the arctangent of Y/X in the range \-PI to \s-1PI\s0. +.Sp +For the tangent operation, you may use the \f(CW\*(C`Math::Trig::tan\*(C'\fR +function, or use the familiar relation: +.Sp +.Vb 1 +\& sub tan { sin($_[0]) / cos($_[0]) } +.Ve +.Sp +Note that atan2(0, 0) is not well\-defined. +.IP "bind \s-1SOCKET\s0,NAME" 8 +.IX Xref "bind" +.IX Item "bind SOCKET,NAME" +Binds a network address to a socket, just as the bind system call +does. Returns true if it succeeded, false otherwise. \s-1NAME\s0 should be a +packed address of the appropriate type for the socket. See the examples in +\&\*(L"Sockets: Client/Server Communication\*(R" in perlipc. +.IP "binmode \s-1FILEHANDLE\s0, \s-1LAYER\s0" 8 +.IX Xref "binmode binary text DOS Windows" +.IX Item "binmode FILEHANDLE, LAYER" +.PD 0 +.IP "binmode \s-1FILEHANDLE\s0" 8 +.IX Item "binmode FILEHANDLE" +.PD +Arranges for \s-1FILEHANDLE\s0 to be read or written in \*(L"binary\*(R" or \*(L"text\*(R" +mode on systems where the run-time libraries distinguish between +binary and text files. If \s-1FILEHANDLE\s0 is an expression, the value is +taken as the name of the filehandle. Returns true on success, +otherwise it returns \f(CW\*(C`undef\*(C'\fR and sets \f(CW$!\fR (errno). +.Sp +On some systems (in general, \s-1DOS\s0 and Windows-based systems) \fIbinmode()\fR +is necessary when you're not working with a text file. For the sake +of portability it is a good idea to always use it when appropriate, +and to never use it when it isn't appropriate. Also, people can +set their I/O to be by default \s-1UTF\-8\s0 encoded Unicode, not bytes. +.Sp +In other words: regardless of platform, use \fIbinmode()\fR on binary data, +like for example images. +.Sp +If \s-1LAYER\s0 is present it is a single string, but may contain multiple +directives. The directives alter the behaviour of the file handle. +When \s-1LAYER\s0 is present using binmode on text file makes sense. +.Sp +If \s-1LAYER\s0 is omitted or specified as \f(CW\*(C`:raw\*(C'\fR the filehandle is made +suitable for passing binary data. This includes turning off possible \s-1CRLF\s0 +translation and marking it as bytes (as opposed to Unicode characters). +Note that, despite what may be implied in \fI\*(L"Programming Perl\*(R"\fR (the +Camel) or elsewhere, \f(CW\*(C`:raw\*(C'\fR is \fInot\fR the simply inverse of \f(CW\*(C`:crlf\*(C'\fR +\&\*(-- other layers which would affect binary nature of the stream are +\&\fIalso\fR disabled. See PerlIO, perlrun and the discussion about the +\&\s-1PERLIO\s0 environment variable. +.Sp +The \f(CW\*(C`:bytes\*(C'\fR, \f(CW\*(C`:crlf\*(C'\fR, and \f(CW\*(C`:utf8\*(C'\fR, and any other directives of the +form \f(CW\*(C`:...\*(C'\fR, are called I/O \fIlayers\fR. The \f(CW\*(C`open\*(C'\fR pragma can be used to +establish default I/O layers. See open. +.Sp +\&\fIThe \s-1LAYER\s0 parameter of the \fIbinmode()\fI function is described as \*(L"\s-1DISCIPLINE\s0\*(R" +in \*(L"Programming Perl, 3rd Edition\*(R". However, since the publishing of this +book, by many known as \*(L"Camel \s-1III\s0\*(R", the consensus of the naming of this +functionality has moved from \*(L"discipline\*(R" to \*(L"layer\*(R". All documentation +of this version of Perl therefore refers to \*(L"layers\*(R" rather than to +\&\*(L"disciplines\*(R". Now back to the regularly scheduled documentation...\fR +.Sp +To mark \s-1FILEHANDLE\s0 as \s-1UTF\-8\s0, use \f(CW\*(C`:utf8\*(C'\fR. +.Sp +In general, \fIbinmode()\fR should be called after \fIopen()\fR but before any I/O +is done on the filehandle. Calling \fIbinmode()\fR will normally flush any +pending buffered output data (and perhaps pending input data) on the +handle. An exception to this is the \f(CW\*(C`:encoding\*(C'\fR layer that +changes the default character encoding of the handle, see open. +The \f(CW\*(C`:encoding\*(C'\fR layer sometimes needs to be called in +mid\-stream, and it doesn't flush the stream. The \f(CW\*(C`:encoding\*(C'\fR +also implicitly pushes on top of itself the \f(CW\*(C`:utf8\*(C'\fR layer because +internally Perl will operate on \s-1UTF\-8\s0 encoded Unicode characters. +.Sp +The operating system, device drivers, C libraries, and Perl run-time +system all work together to let the programmer treat a single +character (\f(CW\*(C`\en\*(C'\fR) as the line terminator, irrespective of the external +representation. On many operating systems, the native text file +representation matches the internal representation, but on some +platforms the external representation of \f(CW\*(C`\en\*(C'\fR is made up of more than +one character. +.Sp +Mac \s-1OS\s0, all variants of Unix, and Stream_LF files on \s-1VMS\s0 use a single +character to end each line in the external representation of text (even +though that single character is \s-1CARRIAGE\s0 \s-1RETURN\s0 on Mac \s-1OS\s0 and \s-1LINE\s0 \s-1FEED\s0 +on Unix and most \s-1VMS\s0 files). In other systems like \s-1OS/2\s0, \s-1DOS\s0 and the +various flavors of MS-Windows your program sees a \f(CW\*(C`\en\*(C'\fR as a simple \f(CW\*(C`\ecJ\*(C'\fR, +but what's stored in text files are the two characters \f(CW\*(C`\ecM\ecJ\*(C'\fR. That +means that, if you don't use \fIbinmode()\fR on these systems, \f(CW\*(C`\ecM\ecJ\*(C'\fR +sequences on disk will be converted to \f(CW\*(C`\en\*(C'\fR on input, and any \f(CW\*(C`\en\*(C'\fR in +your program will be converted back to \f(CW\*(C`\ecM\ecJ\*(C'\fR on output. This is what +you want for text files, but it can be disastrous for binary files. +.Sp +Another consequence of using \fIbinmode()\fR (on some systems) is that +special end-of-file markers will be seen as part of the data stream. +For systems from the Microsoft family this means that if your binary +data contains \f(CW\*(C`\ecZ\*(C'\fR, the I/O subsystem will regard it as the end of +the file, unless you use \fIbinmode()\fR. +.Sp +\&\fIbinmode()\fR is not only important for \fIreadline()\fR and \fIprint()\fR operations, +but also when using \fIread()\fR, \fIseek()\fR, \fIsysread()\fR, \fIsyswrite()\fR and \fItell()\fR +(see perlport for more details). See the \f(CW$/\fR and \f(CW\*(C`$\e\*(C'\fR variables +in perlvar for how to manually set your input and output +line-termination sequences. +.IP "bless \s-1REF\s0,CLASSNAME" 8 +.IX Xref "bless" +.IX Item "bless REF,CLASSNAME" +.PD 0 +.IP "bless \s-1REF\s0" 8 +.IX Item "bless REF" +.PD +This function tells the thingy referenced by \s-1REF\s0 that it is now an object +in the \s-1CLASSNAME\s0 package. If \s-1CLASSNAME\s0 is omitted, the current package +is used. Because a \f(CW\*(C`bless\*(C'\fR is often the last thing in a constructor, +it returns the reference for convenience. Always use the two-argument +version if a derived class might inherit the function doing the blessing. +See perltoot and perlobj for more about the blessing (and blessings) +of objects. +.Sp +Consider always blessing objects in CLASSNAMEs that are mixed case. +Namespaces with all lowercase names are considered reserved for +Perl pragmata. Builtin types have all uppercase names. To prevent +confusion, you may wish to avoid such package names as well. Make sure +that \s-1CLASSNAME\s0 is a true value. +.Sp +See \*(L"Perl Modules\*(R" in perlmod. +.IP "caller \s-1EXPR\s0" 8 +.IX Xref "caller call stack stack stack trace" +.IX Item "caller EXPR" +.PD 0 +.IP "caller" 8 +.IX Item "caller" +.PD +Returns the context of the current subroutine call. In scalar context, +returns the caller's package name if there is a caller, that is, if +we're in a subroutine or \f(CW\*(C`eval\*(C'\fR or \f(CW\*(C`require\*(C'\fR, and the undefined value +otherwise. In list context, returns +.Sp +.Vb 1 +\& ($package, $filename, $line) = caller; +.Ve +.Sp +With \s-1EXPR\s0, it returns some extra information that the debugger uses to +print a stack trace. The value of \s-1EXPR\s0 indicates how many call frames +to go back before the current one. +.Sp +.Vb 2 +\& ($package, $filename, $line, $subroutine, $hasargs, +\& $wantarray, $evaltext, $is_require, $hints, $bitmask) = caller($i); +.Ve +.Sp +Here \f(CW$subroutine\fR may be \f(CW\*(C`(eval)\*(C'\fR if the frame is not a subroutine +call, but an \f(CW\*(C`eval\*(C'\fR. In such a case additional elements \f(CW$evaltext\fR and +\&\f(CW$is_require\fR are set: \f(CW$is_require\fR is true if the frame is created by a +\&\f(CW\*(C`require\*(C'\fR or \f(CW\*(C`use\*(C'\fR statement, \f(CW$evaltext\fR contains the text of the +\&\f(CW\*(C`eval EXPR\*(C'\fR statement. In particular, for an \f(CW\*(C`eval BLOCK\*(C'\fR statement, +\&\f(CW$filename\fR is \f(CW\*(C`(eval)\*(C'\fR, but \f(CW$evaltext\fR is undefined. (Note also that +each \f(CW\*(C`use\*(C'\fR statement creates a \f(CW\*(C`require\*(C'\fR frame inside an \f(CW\*(C`eval EXPR\*(C'\fR +frame.) \f(CW$subroutine\fR may also be \f(CW\*(C`(unknown)\*(C'\fR if this particular +subroutine happens to have been deleted from the symbol table. +\&\f(CW$hasargs\fR is true if a new instance of \f(CW at _\fR was set up for the frame. +\&\f(CW$hints\fR and \f(CW$bitmask\fR contain pragmatic hints that the caller was +compiled with. The \f(CW$hints\fR and \f(CW$bitmask\fR values are subject to change +between versions of Perl, and are not meant for external use. +.Sp +Furthermore, when called from within the \s-1DB\s0 package, caller returns more +detailed information: it sets the list variable \f(CW at DB::args\fR to be the +arguments with which the subroutine was invoked. +.Sp +Be aware that the optimizer might have optimized call frames away before +\&\f(CW\*(C`caller\*(C'\fR had a chance to get the information. That means that \f(CWcaller(N)\fR +might not return information about the call frame you expect it do, for +\&\f(CW\*(C`N > 1\*(C'\fR. In particular, \f(CW at DB::args\fR might have information from the +previous time \f(CW\*(C`caller\*(C'\fR was called. +.IP "chdir \s-1EXPR\s0" 8 +.IX Xref "chdir cd" +.IX Item "chdir EXPR" +.PD 0 +.IP "chdir \s-1FILEHANDLE\s0" 8 +.IX Item "chdir FILEHANDLE" +.IP "chdir \s-1DIRHANDLE\s0" 8 +.IX Item "chdir DIRHANDLE" +.IP "chdir" 8 +.IX Item "chdir" +.PD +Changes the working directory to \s-1EXPR\s0, if possible. If \s-1EXPR\s0 is omitted, +changes to the directory specified by \f(CW$ENV{HOME}\fR, if set; if not, +changes to the directory specified by \f(CW$ENV{LOGDIR}\fR. (Under \s-1VMS\s0, the +variable \f(CW$ENV{SYS$LOGIN}\fR is also checked, and used if it is set.) If +neither is set, \f(CW\*(C`chdir\*(C'\fR does nothing. It returns true upon success, +false otherwise. See the example under \f(CW\*(C`die\*(C'\fR. +.Sp +On systems that support fchdir, you might pass a file handle or +directory handle as argument. On systems that don't support fchdir, +passing handles produces a fatal error at run time. +.IP "chmod \s-1LIST\s0" 8 +.IX Xref "chmod permission mode" +.IX Item "chmod LIST" +Changes the permissions of a list of files. The first element of the +list must be the numerical mode, which should probably be an octal +number, and which definitely should \fInot\fR be a string of octal digits: +\&\f(CW0644\fR is okay, \f(CW'0644'\fR is not. Returns the number of files +successfully changed. See also \*(L"oct\*(R", if all you have is a string. +.Sp +.Vb 6 +\& $cnt = chmod 0755, 'foo', 'bar'; +\& chmod 0755, @executables; +\& $mode = '0644'; chmod $mode, 'foo'; # !!! sets mode to +\& # --w----r-T +\& $mode = '0644'; chmod oct($mode), 'foo'; # this is better +\& $mode = 0644; chmod $mode, 'foo'; # this is best +.Ve +.Sp +On systems that support fchmod, you might pass file handles among the +files. On systems that don't support fchmod, passing file handles +produces a fatal error at run time. +.Sp +.Vb 3 +\& open(my $fh, "<", "foo"); +\& my $perm = (stat $fh)[2] & 07777; +\& chmod($perm | 0600, $fh); +.Ve +.Sp +You can also import the symbolic \f(CW\*(C`S_I*\*(C'\fR constants from the Fcntl +module: +.Sp +.Vb 1 +\& use Fcntl ':mode'; +.Ve +.Sp +.Vb 2 +\& chmod S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH, @executables; +\& # This is identical to the chmod 0755 of the above example. +.Ve +.IP "chomp \s-1VARIABLE\s0" 8 +.IX Xref "chomp INPUT_RECORD_SEPARATOR $ newline eol" +.IX Item "chomp VARIABLE" +.PD 0 +.IP "chomp( \s-1LIST\s0 )" 8 +.IX Item "chomp( LIST )" +.IP "chomp" 8 +.IX Item "chomp" +.PD +This safer version of \*(L"chop\*(R" removes any trailing string +that corresponds to the current value of \f(CW$/\fR (also known as +\&\f(CW$INPUT_RECORD_SEPARATOR\fR in the \f(CW\*(C`English\*(C'\fR module). It returns the total +number of characters removed from all its arguments. It's often used to +remove the newline from the end of an input record when you're worried +that the final record may be missing its newline. When in paragraph +mode (\f(CW\*(C`$/ = ""\*(C'\fR), it removes all trailing newlines from the string. +When in slurp mode (\f(CW\*(C`$/ = undef\*(C'\fR) or fixed-length record mode (\f(CW$/\fR is +a reference to an integer or the like, see perlvar) \fIchomp()\fR won't +remove anything. +If \s-1VARIABLE\s0 is omitted, it chomps \f(CW$_\fR. Example: +.Sp +.Vb 5 +\& while (<>) { +\& chomp; # avoid \en on last field +\& @array = split(/:/); +\& # ... +\& } +.Ve +.Sp +If \s-1VARIABLE\s0 is a hash, it chomps the hash's values, but not its keys. +.Sp + Added: external/Pygments-0.9/tests/examplefiles/phpcomplete.vim ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/phpcomplete.vim Tue Oct 23 20:20:22 2007 @@ -0,0 +1,567 @@ +" Vim completion script +" Language: PHP +" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) +" Last Change: 2006 May 9 +" +" TODO: +" - Class aware completion: +" a) caching? +" - Switching to HTML (XML?) completion (SQL) inside of phpStrings +" - allow also for XML completion <- better do html_flavor for HTML +" completion +" - outside of getting parent tag may cause problems. Heh, even in +" perfect conditions GetLastOpenTag doesn't cooperate... Inside of +" phpStrings this can be even a bonus but outside of it is not the +" best situation + +function! phpcomplete#CompletePHP(findstart, base) + if a:findstart + unlet! b:php_menu + " Check if we are inside of PHP markup + let pos = getpos('.') + let phpbegin = searchpairpos('', 'bWn', + \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\|comment"') + let phpend = searchpairpos('', 'Wn', + \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\|comment"') + + if phpbegin == [0,0] && phpend == [0,0] + " We are outside of any PHP markup. Complete HTML + let htmlbegin = htmlcomplete#CompleteTags(1, '') + let cursor_col = pos[2] + let base = getline('.')[htmlbegin : cursor_col] + let b:php_menu = htmlcomplete#CompleteTags(0, base) + return htmlbegin + else + " locate the start of the word + let line = getline('.') + let start = col('.') - 1 + let curline = line('.') + let compl_begin = col('.') - 2 + while start >= 0 && line[start - 1] =~ '[a-zA-Z_0-9\x7f-\xff$]' + let start -= 1 + endwhile + let b:compl_context = getline('.')[0:compl_begin] + return start + + " We can be also inside of phpString with HTML tags. Deal with + " it later (time, not lines). + endif + + endif + " If exists b:php_menu it means completion was already constructed we + " don't need to do anything more + if exists("b:php_menu") + return b:php_menu + endif + " Initialize base return lists + let res = [] + let res2 = [] + " a:base is very short - we need context + if exists("b:compl_context") + let context = b:compl_context + unlet! b:compl_context + endif + + if !exists('g:php_builtin_functions') + call phpcomplete#LoadData() + endif + + let scontext = substitute(context, '\$\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*$', '', '') + + if scontext =~ '\(=\s*new\|extends\)\s\+$' + " Complete class name + " Internal solution for finding classes in current file. + let file = getline(1, '$') + call filter(file, + \ 'v:val =~ "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("') + let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")')) + let jfile = join(file, ' ') + let int_values = split(jfile, 'class\s\+') + let int_classes = {} + for i in int_values + let c_name = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*') + if c_name != '' + let int_classes[c_name] = '' + endif + endfor + + " Prepare list of classes from tags file + let ext_classes = {} + let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")')) + if fnames != '' + exe 'silent! vimgrep /^'.a:base.'.*\tc\(\t\|$\)/j '.fnames + let qflist = getqflist() + if len(qflist) > 0 + for field in qflist + " [:space:] thing: we don't have to be so strict when + " dealing with tags files - entries there were already + " checked by ctags. + let item = matchstr(field['text'], '^[^[:space:]]\+') + let ext_classes[item] = '' + endfor + endif + endif + + " Prepare list of built in classes from g:php_builtin_functions + if !exists("g:php_omni_bi_classes") + let g:php_omni_bi_classes = {} + for i in keys(g:php_builtin_object_functions) + let g:php_omni_bi_classes[substitute(i, '::.*$', '', '')] = '' + endfor + endif + + let classes = sort(keys(int_classes)) + let classes += sort(keys(ext_classes)) + let classes += sort(keys(g:php_omni_bi_classes)) + + for m in classes + if m =~ '^'.a:base + call add(res, m) + endif + endfor + + let final_menu = [] + for i in res + let final_menu += [{'word':i, 'kind':'c'}] + endfor + + return final_menu + + elseif scontext =~ '\(->\|::\)$' + " Complete user functions and variables + " Internal solution for current file. + " That seems as unnecessary repeating of functions but there are + " few not so subtle differences as not appending of $ and addition + " of 'kind' tag (not necessary in regular completion) + + if scontext =~ '->$' && scontext !~ '\$this->$' + + " Get name of the class + let classname = phpcomplete#GetClassName(scontext) + + " Get location of class definition, we have to iterate through all + " tags files separately because we need relative path from current + " file to the exact file (tags file can be in different dir) + if classname != '' + let classlocation = phpcomplete#GetClassLocation(classname) + else + let classlocation = '' + endif + + if classlocation == 'VIMPHP_BUILTINOBJECT' + + for object in keys(g:php_builtin_object_functions) + if object =~ '^'.classname + let res += [{'word':substitute(object, '.*::', '', ''), + \ 'info': g:php_builtin_object_functions[object]}] + endif + endfor + + return res + + endif + + if filereadable(classlocation) + let classfile = readfile(classlocation) + let classcontent = '' + let classcontent .= "\n".phpcomplete#GetClassContents(classfile, classname) + let sccontent = split(classcontent, "\n") + + " YES, YES, YES! - we have whole content including extends! + " Now we need to get two elements: public functions and public + " vars + " NO, NO, NO! - third separate filtering looking for content + " :(, but all of them have differences. To squeeze them into + " one implementation would require many additional arguments + " and ifs. No good solution + " Functions declared with public keyword or without any + " keyword are public + let functions = filter(deepcopy(sccontent), + \ 'v:val =~ "^\\s*\\(static\\s\\+\\|public\\s\\+\\)*function"') + let jfuncs = join(functions, ' ') + let sfuncs = split(jfuncs, 'function\s\+') + let c_functions = {} + for i in sfuncs + let f_name = matchstr(i, + \ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze') + let f_args = matchstr(i, + \ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*{') + if f_name != '' + let c_functions[f_name.'('] = f_args + endif + endfor + " Variables declared with var or with public keyword are + " public + let variables = filter(deepcopy(sccontent), + \ 'v:val =~ "^\\s*\\(public\\|var\\)\\s\\+\\$"') + let jvars = join(variables, ' ') + let svars = split(jvars, '\$') + let c_variables = {} + for i in svars + let c_var = matchstr(i, + \ '^\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze') + if c_var != '' + let c_variables[c_var] = '' + endif + endfor + + let all_values = {} + call extend(all_values, c_functions) + call extend(all_values, c_variables) + + for m in sort(keys(all_values)) + if m =~ '^'.a:base && m !~ '::' + call add(res, m) + elseif m =~ '::'.a:base + call add(res2, m) + endif + endfor + + let start_list = res + res2 + + let final_list = [] + for i in start_list + if has_key(c_variables, i) + let class = ' ' + if all_values[i] != '' + let class = i.' class ' + endif + let final_list += + \ [{'word':i, + \ 'info':class.all_values[i], + \ 'kind':'v'}] + else + let final_list += + \ [{'word':substitute(i, '.*::', '', ''), + \ 'info':i.all_values[i].')', + \ 'kind':'f'}] + endif + endfor + + return final_list + + endif + + endif + + if a:base =~ '^\$' + let adddollar = '$' + else + let adddollar = '' + endif + let file = getline(1, '$') + let jfile = join(file, ' ') + let sfile = split(jfile, '\$') + let int_vars = {} + for i in sfile + if i =~ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new' + let val = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*').'->' + else + let val = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*') + endif + if val !~ '' + let int_vars[adddollar.val] = '' + endif + endfor + + " ctags has good support for PHP, use tags file for external + " variables + let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")')) + let ext_vars = {} + if fnames != '' + let sbase = substitute(a:base, '^\$', '', '') + exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames + let qflist = getqflist() + if len(qflist) > 0 + for field in qflist + let item = matchstr(field['text'], '^[^[:space:]]\+') + " Add -> if it is possible object declaration + let classname = '' + if field['text'] =~ item.'\s*=\s*new\s\+' + let item = item.'->' + let classname = matchstr(field['text'], + \ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze') + endif + let ext_vars[adddollar.item] = classname + endfor + endif + endif + + " Now we have all variables in int_vars dictionary + call extend(int_vars, ext_vars) + + " Internal solution for finding functions in current file. + let file = getline(1, '$') + call filter(file, + \ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("') + let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")')) + let jfile = join(file, ' ') + let int_values = split(jfile, 'function\s\+') + let int_functions = {} + for i in int_values + let f_name = matchstr(i, + \ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze') + let f_args = matchstr(i, + \ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*{') + let int_functions[f_name.'('] = f_args.')' + endfor + + " Prepare list of functions from tags file + let ext_functions = {} + if fnames != '' + exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames + let qflist = getqflist() + if len(qflist) > 0 + for field in qflist + " File name + let item = matchstr(field['text'], '^[^[:space:]]\+') + let fname = matchstr(field['text'], '\t\zs\f\+\ze') + let prototype = matchstr(field['text'], + \ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?') + let ext_functions[item.'('] = prototype.') - '.fname + endfor + endif + endif + + let all_values = {} + call extend(all_values, int_functions) + call extend(all_values, ext_functions) + call extend(all_values, int_vars) " external variables are already in + call extend(all_values, g:php_builtin_object_functions) + + for m in sort(keys(all_values)) + if m =~ '\(^\|::\)'.a:base + call add(res, m) + endif + endfor + + let start_list = res + + let final_list = [] + for i in start_list + if has_key(int_vars, i) + let class = ' ' + if all_values[i] != '' + let class = i.' class ' + endif + let final_list += [{'word':i, 'info':class.all_values[i], 'kind':'v'}] + else + let final_list += + \ [{'word':substitute(i, '.*::', '', ''), + \ 'info':i.all_values[i], + \ 'kind':'f'}] + endif + endfor + + return final_list + endif + + if a:base =~ '^\$' + " Complete variables + " Built-in variables {{{ + let g:php_builtin_vars = {'$GLOBALS':'', + \ '$_SERVER':'', + \ '$_GET':'', + \ '$_POST':'', + \ '$_COOKIE':'', + \ '$_FILES':'', + \ '$_ENV':'', + \ '$_REQUEST':'', + \ '$_SESSION':'', + \ '$HTTP_SERVER_VARS':'', + \ '$HTTP_ENV_VARS':'', + \ '$HTTP_COOKIE_VARS':'', + \ '$HTTP_GET_VARS':'', + \ '$HTTP_POST_VARS':'', + \ '$HTTP_POST_FILES':'', + \ '$HTTP_SESSION_VARS':'', + \ '$php_errormsg':'', + \ '$this':'' + \ } + " }}} + + " Internal solution for current file. + let file = getline(1, '$') + let jfile = join(file, ' ') + let int_vals = split(jfile, '\ze\$') + let int_vars = {} + for i in int_vals + if i =~ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new' + let val = matchstr(i, + \ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*').'->' + else + let val = matchstr(i, + \ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*') + endif + if val != '' + let int_vars[val] = '' + endif + endfor + + call extend(int_vars,g:php_builtin_vars) + + " ctags has support for PHP, use tags file for external variables + let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")')) + let ext_vars = {} + if fnames != '' + let sbase = substitute(a:base, '^\$', '', '') + exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames + let qflist = getqflist() + if len(qflist) > 0 + for field in qflist + let item = '$'.matchstr(field['text'], '^[^[:space:]]\+') + let m_menu = '' + " Add -> if it is possible object declaration + if field['text'] =~ item.'\s*=\s*new\s\+' + let item = item.'->' + let m_menu = matchstr(field['text'], + \ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze') + endif + let ext_vars[item] = m_menu + endfor + endif + endif + + call extend(int_vars, ext_vars) + let g:a0 = keys(int_vars) + + for m in sort(keys(int_vars)) + if m =~ '^\'.a:base + call add(res, m) + endif + endfor + + let int_list = res + + let int_dict = [] + for i in int_list + if int_vars[i] != '' + let class = ' ' + if int_vars[i] != '' + let class = i.' class ' + endif + let int_dict += [{'word':i, 'info':class.int_vars[i], 'kind':'v'}] + else + let int_dict += [{'word':i, 'kind':'v'}] + endif + endfor + + return int_dict + + else + " Complete everything else - + " + functions, DONE + " + keywords of language DONE + " + defines (constant definitions), DONE + " + extend keywords for predefined constants, DONE + " + classes (after new), DONE + " + limit choice after -> and :: to funcs and vars DONE + + " Internal solution for finding functions in current file. + let file = getline(1, '$') + call filter(file, + \ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("') + let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")')) + let jfile = join(file, ' ') + let int_values = split(jfile, 'function\s\+') + let int_functions = {} + for i in int_values + let f_name = matchstr(i, + \ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze') + let f_args = matchstr(i, + \ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\s*\zs.\{-}\ze\s*)\_s*{') + let int_functions[f_name.'('] = f_args.')' + endfor + + " Prepare list of functions from tags file + let ext_functions = {} + if fnames != '' + exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames + let qflist = getqflist() + if len(qflist) > 0 + for field in qflist + " File name + let item = matchstr(field['text'], '^[^[:space:]]\+') + let fname = matchstr(field['text'], '\t\zs\f\+\ze') + let prototype = matchstr(field['text'], + \ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?') + let ext_functions[item.'('] = prototype.') - '.fname + endfor + endif + endif + + " All functions + call extend(int_functions, ext_functions) + call extend(int_functions, g:php_builtin_functions) + + " Internal solution for finding constants in current file + let file = getline(1, '$') + call filter(file, 'v:val =~ "define\\s*("') + let jfile = join(file, ' ') + let int_values = split(jfile, 'define\s*(\s*') + let int_constants = {} + for i in int_values + let c_name = matchstr(i, '\(["'']\)\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze\1') + " let c_value = matchstr(i, + " \ '\(["'']\)[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\1\s*,\s*\zs.\{-}\ze\s*)') + if c_name != '' + let int_constants[c_name] = '' " c_value + endif + endfor + + " Prepare list of constants from tags file + let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")')) + let ext_constants = {} + if fnames != '' + exe 'silent! vimgrep /^'.a:base.'.*\td\(\t\|$\)/j '.fnames + let qflist = getqflist() + if len(qflist) > 0 + for field in qflist + let item = matchstr(field['text'], '^[^[:space:]]\+') + let ext_constants[item] = '' + endfor + endif + endif + + " All constants + call extend(int_constants, ext_constants) + " Treat keywords as constants + + let all_values = {} + + " One big dictionary of functions + call extend(all_values, int_functions) + + " Add constants + call extend(all_values, int_constants) + " Add keywords + call extend(all_values, g:php_keywords) + + for m in sort(keys(all_values)) + if m =~ '^'.a:base + call add(res, m) + endif + endfor + + let int_list = res + + let final_list = [] + for i in int_list + if has_key(int_functions, i) + let final_list += + \ [{'word':i, + \ 'info':i.int_functions[i], + \ 'kind':'f'}] + elseif has_key(int_constants, i) + let final_list += [{'word':i, 'kind':'d'}] + else + let final_list += [{'word':i}] + endif + endfor + + return final_list + + endif + +endfunction +" vim:set foldmethod=marker: Added: external/Pygments-0.9/tests/examplefiles/pleac.in.rb ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/pleac.in.rb Tue Oct 23 20:20:22 2007 @@ -0,0 +1,1223 @@ +# -*- ruby -*- + +# Local variables: +# indent-tabs-mode: nil +# ruby-indent-level: 4 +# End: + +# @@PLEAC@@_NAME +# @@SKIP@@ Ruby + +# @@PLEAC@@_WEB +# @@SKIP@@ http://www.ruby-lang.org + + +# @@PLEAC@@_1.0 +string = '\n' # two characters, \ and an n +string = 'Jon \'Maddog\' Orwant' # literal single quotes + +string = "\n" # a "newline" character +string = "Jon \"Maddog\" Orwant" # literal double quotes + +string = %q/Jon 'Maddog' Orwant/ # literal single quotes + +string = %q[Jon 'Maddog' Orwant] # literal single quotes +string = %q{Jon 'Maddog' Orwant} # literal single quotes +string = %q(Jon 'Maddog' Orwant) # literal single quotes +string = %q # literal single quotes + +a = <<"EOF" +This is a multiline here document +terminated by EOF on a line by itself +EOF + + +# @@PLEAC@@_1.1 +value = string[offset,count] +value = string[offset..-1] + +string[offset,count] = newstring +string[offset..-1] = newtail + +# in Ruby we can also specify intervals by their two offsets +value = string[offset..offs2] +string[offset..offs2] = newstring + +leading, s1, s2, trailing = data.unpack("A5 x3 A8 A8 A*") + +fivers = string.unpack("A5" * (string.length/5)) + +chars = string.unpack("A1" * string.length) + +string = "This is what you have" +# +012345678901234567890 Indexing forwards (left to right) +# 109876543210987654321- Indexing backwards (right to left) +# note that 0 means 10 or 20, etc. above + +first = string[0, 1] # "T" +start = string[5, 2] # "is" +rest = string[13..-1] # "you have" +last = string[-1, 1] # "e" +end_ = string[-4..-1] # "have" +piece = string[-8, 3] # "you" + +string[5, 2] = "wasn't" # change "is" to "wasn't" +string[-12..-1] = "ondrous" # "This wasn't wondrous" +string[0, 1] = "" # delete first character +string[-10..-1] = "" # delete last 10 characters + +if string[-10..-1] =~ /pattern/ + puts "Pattern matches in last 10 characters" +end + +string[0, 5].gsub!(/is/, 'at') + +a = "make a hat" +a[0, 1], a[-1, 1] = a[-1, 1], a[0, 1] + +a = "To be or not to be" +b = a.unpack("x6 A6") + +b, c = a.unpack("x6 A2 X5 A2") +puts "#{b}\n#{c}\n" + +def cut2fmt(*args) + template = '' + lastpos = 1 + for place in args + template += "A" + (place - lastpos).to_s + " " + lastpos = place + end + template += "A*" + return template +end + +fmt = cut2fmt(8, 14, 20, 26, 30) + + +# @@PLEAC@@_1.2 +# careful! "b is true" doesn't mean "b != 0" (0 is true in Ruby) +# thus no problem of "defined" later since only nil is false +# the following sets to `c' if `b' is nil or false +a = b || c + +# if you need Perl's behaviour (setting to `c' if `b' is 0) the most +# effective way is to use Numeric#nonzero? (thanks to Dave Thomas!) +a = b.nonzero? || c + +# you will still want to use defined? in order to test +# for scope existence of a given object +a = defined?(b) ? b : c + +dir = ARGV.shift || "/tmp" + + +# @@PLEAC@@_1.3 +v1, v2 = v2, v1 + +alpha, beta, production = %w(January March August) +alpha, beta, production = beta, production, alpha + + +# @@PLEAC@@_1.4 +num = char[0] +char = num.chr + +# Ruby also supports having a char from character constant +num = ?r + +char = sprintf("%c", num) +printf("Number %d is character %c\n", num, num) + +ascii = string.unpack("C*") +string = ascii.pack("C*") + +hal = "HAL" +ascii = hal.unpack("C*") +# We can't use Array#each since we can't mutate a Fixnum +ascii.collect! { |i| + i + 1 # add one to each ASCII value +} +ibm = ascii.pack("C*") +puts ibm + + +# @@PLEAC@@_1.5 +array = string.split('') + +array = string.unpack("C*") + +string.scan(/./) { |b| + # do something with b +} + +string = "an apple a day" +print "unique chars are: ", string.split('').uniq.sort, "\n" + +sum = 0 +for ascval in string.unpack("C*") # or use Array#each for a pure OO style :) + sum += ascval +end +puts "sum is #{sum & 0xffffffff}" # since Ruby will go Bignum if necessary + +# @@INCLUDE@@ include/ruby/slowcat.rb + + +# @@PLEAC@@_1.6 +revbytes = string.reverse + +revwords = string.split(" ").reverse.join(" ") + +revwords = string.split(/(\s+)/).reverse.join + +# using the fact that IO is Enumerable, you can directly "select" it +long_palindromes = File.open("/usr/share/dict/words"). + select { |w| w.chomp!; w.reverse == w && w.length > 5 } + + +# @@PLEAC@@_1.7 +while string.sub!("\t+") { ' ' * ($&.length * 8 - $`.length % 8) } +end + + +# @@PLEAC@@_1.8 +'You owe #{debt} to me'.gsub(/\#{(\w+)}/) { eval($1) } + +rows, cols = 24, 80 +text = %q(I am #{rows} high and #{cols} long) +text.gsub!(/\#{(\w+)}/) { eval("#{$1}") } +puts text + +'I am 17 years old'.gsub(/\d+/) { 2 * $&.to_i } + + +# @@PLEAC@@_1.9 +e = "bo peep".upcase +e.downcase! +e.capitalize! + +"thIS is a loNG liNE".gsub!(/\w+/) { $&.capitalize } + + +# @@PLEAC@@_1.10 +"I have #{n+1} guanacos." +print "I have ", n+1, " guanacos." + + +# @@PLEAC@@_1.11 +var = <<'EOF'.gsub(/^\s+/, '') + your text + goes here +EOF + + +# @@PLEAC@@_1.12 +string = "Folding and splicing is the work of an editor,\n"+ + "not a mere collection of silicon\n"+ + "and\n"+ + "mobile electrons!" + +def wrap(str, max_size) + all = [] + line = '' + for l in str.split + if (line+l).length >= max_size + all.push(line) + line = '' + end + line += line == '' ? l : ' ' + l + end + all.push(line).join("\n") +end + +print wrap(string, 20) +#=> Folding and +#=> splicing is the +#=> work of an editor, +#=> not a mere +#=> collection of +#=> silicon and mobile +#=> electrons! + + +# @@PLEAC@@_1.13 +string = %q(Mom said, "Don't do that.") +string.gsub(/['"]/) { '\\'+$& } +string.gsub(/['"]/, '\&\&') +string.gsub(/[^A-Z]/) { '\\'+$& } +"is a test!".gsub(/\W/) { '\\'+$& } # no function like quotemeta? + + +# @@PLEAC@@_1.14 +string.strip! + + +# @@PLEAC@@_1.15 +def parse_csv(text) + new = text.scan(/"([^\"\\]*(?:\\.[^\"\\]*)*)",?|([^,]+),?|,/) + new << nil if text[-1] == ?, + new.flatten.compact +end + +line = %q +fields = parse_csv(line) +fields.each_with_index { |v,i| + print "#{i} : #{v}\n"; +} + + +# @@PLEAC@@_1.16 +# Use the soundex.rb Library from Michael Neumann. +# http://www.s-direktnet.de/homepages/neumann/rb_prgs/Soundex.rb +require 'Soundex' + +code = Text::Soundex.soundex(string) +codes = Text::Soundex.soundex(array) + +# substitution function for getpwent(): +# returns an array of user entries, +# each entry contains the username and the full name +def login_names + result = [] + File.open("/etc/passwd") { |file| + file.each_line { |line| + next if line.match(/^#/) + cols = line.split(":") + result.push([cols[0], cols[4]]) + } + } + result +end + +puts "Lookup user: " +user = STDIN.gets +user.chomp! +exit unless user +name_code = Text::Soundex.soundex(user) + +splitter = Regexp.new('(\w+)[^,]*\b(\w+)') +for username, fullname in login_names do + firstname, lastname = splitter.match(fullname)[1,2] + if name_code == Text::Soundex.soundex(username) + || name_code == Text::Soundex.soundex(firstname) + || name_code == Text::Soundex.soundex(lastname) + then + puts "#{username}: #{firstname} #{lastname}" + end +end + + +# @@PLEAC@@_1.17 +# @@INCLUDE@@ include/ruby/fixstyle.rb + + +# @@PLEAC@@_1.18 +# @@INCLUDE@@ include/ruby/psgrep.rb + + +# @@PLEAC@@_2.1 +# Matz tells that you can use Integer() for strict checked conversion. +Integer("abc") +#=> `Integer': invalid value for Integer: "abc" (ArgumentError) +Integer("567") +#=> 567 + +# You may use Float() for floating point stuff +Integer("56.7") +#=> `Integer': invalid value for Integer: "56.7" (ArgumentError) +Float("56.7") +#=> 56.7 + +# You may also use a regexp for that +if string =~ /^[+-]?\d+$/ + p 'is an integer' +else + p 'is not' +end + +if string =~ /^-?(?:\d+(?:\.\d*)?|\.\d+)$/ + p 'is a decimal number' +else + p 'is not' +end + + +# @@PLEAC@@_2.2 +# equal(num1, num2, accuracy) : returns true if num1 and num2 are +# equal to accuracy number of decimal places +def equal(i, j, a) + sprintf("%.#{a}g", i) == sprintf("%.#{a}g", j) +end + +wage = 536 # $5.36/hour +week = 40 * wage # $214.40 +printf("One week's wage is: \$%.2f\n", week/100.0) + + +# @@PLEAC@@_2.3 +num.round # rounds to integer + +a = 0.255 +b = sprintf("%.2f", a) +print "Unrounded: #{a}\nRounded: #{b}\n" +printf "Unrounded: #{a}\nRounded: %.2f\n", a + +print "number\tint\tfloor\tceil\n" +a = [ 3.3 , 3.5 , 3.7, -3.3 ] +for n in a + printf("% .1f\t% .1f\t% .1f\t% .1f\n", # at least I don't fake my output :) + n, n.to_i, n.floor, n.ceil) +end + + +# @@PLEAC@@_2.4 +def dec2bin(n) + [n].pack("N").unpack("B32")[0].sub(/^0+(?=\d)/, '') +end + +def bin2dec(n) + [("0"*32+n.to_s)[-32..-1]].pack("B32").unpack("N")[0] +end + + +# @@PLEAC@@_2.5 +for i in x .. y + # i is set to every integer from x to y, inclusive +end + +x.step(y,7) { |i| + # i is set to every integer from x to y, stepsize = 7 +} + +print "Infancy is: " +(0..2).each { |i| + print i, " " +} +print "\n" + + +# @@PLEAC@@_2.6 +# We can add conversion methods to the Integer class, +# this makes a roman number just a representation for normal numbers. +class Integer + + @@romanlist = [["M", 1000], + ["CM", 900], + ["D", 500], + ["CD", 400], + ["C", 100], + ["XC", 90], + ["L", 50], + ["XL", 40], + ["X", 10], + ["IX", 9], + ["V", 5], + ["IV", 4], + ["I", 1]] + + def to_roman + remains = self + roman = "" + for sym, num in @@romanlist + while remains >= num + remains -= num + roman << sym + end + end + roman + end + + def Integer.from_roman(roman) + ustr = roman.upcase + sum = 0 + for entry in @@romanlist + sym, num = entry[0], entry[1] + while sym == ustr[0, sym.length] + sum += num + ustr.slice!(0, sym.length) + end + end + sum + end + +end + + +roman_fifteen = 15.to_roman +puts "Roman for fifteen is #{roman_fifteen}" +i = Integer.from_roman(roman_fifteen) +puts "Converted back, #{roman_fifteen} is #{i}" + +# check +for i in (1..3900) + r = i.to_roman + j = Integer.from_roman(r) + if i != j + puts "error: #{i} : #{r} - #{j}" + end +end + + +# @@PLEAC@@_2.7 +random = rand(y-x+1)+x + +chars = ["A".."Z","a".."z","0".."9"].collect { |r| r.to_a }.join + %q(!@$%^&*) +password = (1..8).collect { chars[rand(chars.size)] }.pack("C*") + + +# @@PLEAC@@_2.8 +srand # uses a combination of the time, the process id, and a sequence number +srand(val) # for repeatable behaviour + + +# @@PLEAC@@_2.9 +# from the randomr lib: +# http://raa.ruby-lang.org/project/randomr/ +----> http://raa.ruby-lang.org/project/randomr/ + +require 'random/mersenne_twister' +mers = Random::MersenneTwister.new 123456789 +puts mers.rand(0) # 0.550321932544541 +puts mers.rand(10) # 2 + +# using online sources of random data via the realrand package: +# http://raa.ruby-lang.org/project/realrand/ +# **Note** +# The following online services are used in this package: +# http://www.random.org - source: atmospheric noise +# http://www.fourmilab.ch/hotbits - source: radioactive decay timings +# http://random.hd.org - source: entropy from local and network noise +# Please visit the sites and respect the rules of each service. + +require 'random/online' + +generator1 = Random::RandomOrg.new +puts generator1.randbyte(5).join(",") +puts generator1.randnum(10, 1, 6).join(",") # Roll dice 10 times. + +generator2 = Random::FourmiLab.new +puts generator2.randbyte(5).join(",") +# randnum is not supported. + +generator3 = Random::EntropyPool.new +puts generator3.randbyte(5).join(",") +# randnum is not supported. + + +# @@PLEAC@@_2.10 +def gaussian_rand + begin + u1 = 2 * rand() - 1 + u2 = 2 * rand() - 1 + w = u1*u1 + u2*u2 + end while (w >= 1) + w = Math.sqrt((-2*Math.log(w))/w) + [ u2*w, u1*w ] +end + +mean = 25 +sdev = 2 +salary = gaussian_rand[0] * sdev + mean +printf("You have been hired at \$%.2f\n", salary) + + +# @@PLEAC@@_2.11 +def deg2rad(d) + (d/180.0)*Math::PI +end + +def rad2deg(r) + (r/Math::PI)*180 +end + + +# @@PLEAC@@_2.12 +sin_val = Math.sin(angle) +cos_val = Math.cos(angle) +tan_val = Math.tan(angle) + +# AFAIK Ruby's Math module doesn't provide acos/asin +# While we're at it, let's also define missing hyperbolic functions +module Math + def Math.asin(x) + atan2(x, sqrt(1 - x**2)) + end + def Math.acos(x) + atan2(sqrt(1 - x**2), x) + end + def Math.atan(x) + atan2(x, 1) + end + def Math.sinh(x) + (exp(x) - exp(-x)) / 2 + end + def Math.cosh(x) + (exp(x) + exp(-x)) / 2 + end + def Math.tanh(x) + sinh(x) / cosh(x) + end +end + +# The support for Complex numbers is not built-in +y = Math.acos(3.7) +#=> in `sqrt': square root for negative number (ArgumentError) + +# There is an implementation of Complex numbers in 'complex.rb' in current +# Ruby distro, but it doesn't support atan2 with complex args, so it doesn't +# solve this problem. + + +# @@PLEAC@@_2.13 +log_e = Math.log(val) +log_10 = Math.log10(val) + +def log_base(base, val) + Math.log(val)/Math.log(base) +end + +answer = log_base(10, 10_000) +puts "log10(10,000) = #{answer}" + + +# @@PLEAC@@_2.14 +require 'matrix.rb' + +a = Matrix[[3, 2, 3], [5, 9, 8]] +b = Matrix[[4, 7], [9, 3], [8, 1]] +c = a * b + +a.row_size +a.column_size + +c.det +a.transpose + + +# @@PLEAC@@_2.15 +require 'complex.rb' +require 'rational.rb' + +a = Complex(3, 5) # 3 + 5i +b = Complex(2, -2) # 2 - 2i +puts "c = #{a*b}" + +c = a * b +d = 3 + 4*Complex::I + +printf "sqrt(#{d}) = %s\n", Math.sqrt(d) + + +# @@PLEAC@@_2.16 +number = hexadecimal.hex +number = octal.oct + +print "Gimme a number in decimal, octal, or hex: " +num = gets.chomp +exit unless defined?(num) +num = num.oct if num =~ /^0/ # does both oct and hex +printf "%d %x %o\n", num, num, num + +print "Enter file permission in octal: " +permissions = gets.chomp +raise "Exiting ...\n" unless defined?(permissions) +puts "The decimal value is #{permissions.oct}" + + +# @@PLEAC@@_2.17 +def commify(n) + n.to_s =~ /([^\.]*)(\..*)?/ + int, dec = $1.reverse, $2 ? $2 : "" + while int.gsub!(/(,|\.|^)(\d{3})(\d)/, '\1\2,\3') + end + int.reverse + dec +end + + +# @@PLEAC@@_2.18 +printf "It took %d hour%s\n", time, time == 1 ? "" : "s" + +# dunno if an equivalent to Lingua::EN::Inflect exists... + + +# @@PLEAC@@_2.19 +#----------------------------- +#!/usr/bin/ruby +# bigfact - calculating prime factors +def factorize(orig) + factors = {} + factors.default = 0 # return 0 instead nil if key not found in hash + n = orig + i = 2 + sqi = 4 # square of i + while sqi <= n do + while n.modulo(i) == 0 do + n /= i + factors[i] += 1 + # puts "Found factor #{i}" + end + # we take advantage of the fact that (i +1)**2 = i**2 + 2*i +1 + sqi += 2 * i + 1 + i += 1 + end + + if (n != 1) && (n != orig) + factors[n] += 1 + end + factors +end + +def printfactorhash(orig, factorcount) + print format("%-10d ", orig) + if factorcount.length == 0 + print "PRIME" + else + # sorts after number, because the hash keys are numbers + factorcount.sort.each { |factor,exponent| + print factor + if exponent > 1 + print "**", exponent + end + print " " + } + end + puts +end + +for arg in ARGV + n = arg.to_i + mfactors = factorize(n) + printfactorhash(n, mfactors) +end +#----------------------------- + + +# @@PLEAC@@_3.0 +puts Time.now + +print "Today is day ", Time.now.yday, " of the current year.\n" +print "Today is day ", Time.now.day, " of the current month.\n" + + +# @@PLEAC@@_3.1 +day, month, year = Time.now.day, Time.now.month, Time.now.year +# or +day, month, year = Time.now.to_a[3..5] + +tl = Time.now.localtime +printf("The current date is %04d %02d %02d\n", tl.year, tl.month, tl.day) + +Time.now.localtime.strftime("%Y-%m-%d") + + +# @@PLEAC@@_3.2 +Time.local(year, month, day, hour, minute, second).tv_sec +Time.gm(year, month, day, hour, minute, second).tv_sec + + +# @@PLEAC@@_3.3 +sec, min, hour, day, month, year, wday, yday, isdst, zone = Time.at(epoch_secs).to_a + + +# @@PLEAC@@_3.4 +when_ = now + difference # now -> Time ; difference -> Numeric (delta in seconds) +then_ = now - difference + + +# @@PLEAC@@_3.5 +bree = 361535725 +nat = 96201950 + +difference = bree - nat +puts "There were #{difference} seconds between Nat and Bree" + +seconds = difference % 60 +difference = (difference - seconds) / 60 +minutes = difference % 60 +difference = (difference - minutes) / 60 +hours = difference % 24 +difference = (difference - hours) / 24 +days = difference % 7 +weeks = (difference - days) / 7 + +puts "(#{weeks} weeks, #{days} days, #{hours}:#{minutes}:#{seconds})" + + +# @@PLEAC@@_3.6 +monthday, weekday, yearday = date.mday, date.wday, date.yday + +# AFAIK the week number is not just a division since week boundaries are on sundays +weeknum = d.strftime("%U").to_i + 1 + +year = 1981 +month = "jun" # or `6' if you want to emulate a broken language +day = 16 +t = Time.mktime(year, month, day) +print "#{month}/#{day}/#{year} was a ", t.strftime("%A"), "\n" + + +# @@PLEAC@@_3.7 +yyyy, mm, dd = $1, $2, $3 if "1998-06-25" =~ /(\d+)-(\d+)-(\d+)/ + +epoch_seconds = Time.mktime(yyyy, mm, dd).tv_sec + +# dunno an equivalent to Date::Manip#ParseDate + + +# @@PLEAC@@_3.8 +string = Time.at(epoch_secs) +Time.at(1234567890).gmtime # gives: Fri Feb 13 23:31:30 UTC 2009 + +time = Time.mktime(1973, "jan", 18, 3, 45, 50) +print "In localtime it gives: ", time.localtime, "\n" + + +# @@PLEAC@@_3.9 +# Ruby provides micro-seconds in Time object +Time.now.usec + +# Ruby gives the seconds in floating format when substracting two Time objects +before = Time.now +line = gets +elapsed = Time.now - before +puts "You took #{elapsed} seconds." + +# On my Celeron-400 with Linux-2.2.19-14mdk, average for three execs are: +# This Ruby version: average 0.00321 sec +# Cookbook's Perl version: average 0.00981 sec +size = 500 +number_of_times = 100 +total_time = 0 +number_of_times.times { + # populate array + array = [] + size.times { array << rand } + # sort it + begin_ = Time.now + array.sort! + time = Time.now - begin_ + total_time += time +} +printf "On average, sorting %d random numbers takes %.5f seconds\n", + size, (total_time/Float(number_of_times)) + + +# @@PLEAC@@_3.10 +sleep(0.005) # Ruby is definitely not as broken as Perl :) +# (may be interrupted by sending the process a SIGALRM) + + +# @@PLEAC@@_3.11 +#!/usr/bin/ruby -w +# hopdelta - feed mail header, produce lines +# showing delay at each hop. +require 'time' +class MailHopDelta + + def initialize(mail) + @head = mail.gsub(/\n\s+/,' ') + @topline = %w-Sender Recipient Time Delta- + @start_from = mail.match(/^From.*\@([^\s>]*)/)[1] + @date = Time.parse(mail.match(/^Date:\s+(.*)/)[1]) + end + + def out(line) + "%-20.20s %-20.20s %-20.20s %s" % line + end + + def hop_date(day) + day.strftime("%I:%M:%S %Y/%m/%d") + end + + def puts_hops + puts out(@topline) + puts out(['Start', @start_from, hop_date(@date),'']) + @head.split(/\n/).reverse.grep(/^Received:/).each do |hop| + hop.gsub!(/\bon (.*?) (id.*)/,'; \1') + whence = hop.match(/;\s+(.*)$/)[1] + unless whence + warn "Bad received line: #{hop}" + next + end + from = $+ if hop =~ /from\s+(\S+)|\((.*?)\)/ + by = $1 if hop =~ /by\s+(\S+\.\S+)/ + next unless now = Time.parse(whence).localtime + delta = now - @date + puts out([from, by, hop_date(now), hop_time(delta)]) + @date = now + end + end + + def hop_time(secs) + sign = secs < 0 ? -1 : 1 + days, secs = secs.abs.divmod(60 * 60 * 24) + hours,secs = secs.abs.divmod(60 * 60) + mins, secs = secs.abs.divmod(60) + rtn = "%3ds" % [secs * sign] + rtn << "%3dm" % [mins * sign] if mins != 0 + rtn << "%3dh" % [hours * sign] if hours != 0 + rtn << "%3dd" % [days * sign] if days != 0 + rtn + end +end + +$/ = "" +mail = MailHopDelta.new(ARGF.gets).puts_hops + + +# @@PLEAC@@_4.0 +single_level = [ "this", "that", "the", "other" ] + +# Ruby directly supports nested arrays +double_level = [ "this", "that", [ "the", "other" ] ] +still_single_level = [ "this", "that", [ "the", "other" ] ].flatten + + +# @@PLEAC@@_4.1 +a = [ "quick", "brown", "fox" ] +a = %w(Why are you teasing me?) + +lines = <<"END_OF_HERE_DOC".gsub(/^\s*(.+)/, '\1') + The boy stood on the burning deck, + It was as hot as glass. +END_OF_HERE_DOC + +bigarray = IO.readlines("mydatafile").collect { |l| l.chomp } + +name = "Gandalf" +banner = %Q(Speak, #{name}, and welcome!) + +host_info = `host #{his_host}` + +%x(ps #{$$}) + +banner = 'Costs only $4.95'.split(' ') + +rax = %w! ( ) < > { } [ ] ! + + +# @@PLEAC@@_4.2 +def commify_series(arr) + return '' if not arr + case arr.size + when 0 then '' + when 1 then arr[0] + when 2 then arr.join(' and ') + else arr[0..-2].join(', ') + ', and ' + arr[-1] + end +end + +array = [ "red", "yellow", "green" ] + +print "I have ", array, " marbles\n" +# -> I have redyellowgreen marbles + +# But unlike Perl: +print "I have #{array} marbles\n" +# -> I have redyellowgreen marbles +# So, needs: +print "I have #{array.join(' ')} marbles\n" +# -> I have red yellow green marbles + +#!/usr/bin/ruby +# communify_series - show proper comma insertion in list output + +def commify_series(arr) + return '' if not arr + sepchar = arr.find { |p| p =~ /,/ } ? '; ' : ', ' + case arr.size + when 0 then '' + when 1 then arr[0] + when 2 then arr.join(' and ') + else arr[0..-2].join(sepchar) + sepchar + 'and ' + arr[-1] + end +end + +lists = [ + [ 'just one thing' ], + %w(Mutt Jeff), + %w(Peter Paul Mary), + [ 'To our parents', 'Mother Theresa', 'God' ], + [ 'pastrami', 'ham and cheese', 'peanut butter and jelly', 'tuna' ], + [ 'recycle tired, old phrases', 'ponder big, happy thoughts' ], + [ 'recycle tired, old phrases', + 'ponder big, happy thoughts', + 'sleep and dream peacefully' ], +] + +for list in lists do + puts "The list is: #{commify_series(list)}." +end + + +# @@PLEAC@@_4.3 +# (note: AFAIK Ruby doesn't allow gory change of Array length) +# grow the array by assigning nil to past the end of array +ary[new_size-1] = nil +# shrink the array by slicing it down +ary.slice!(new_size..-1) +# init the array with given size +Array.new(number_of_elems) +# assign to an element past the original end enlarges the array +ary[index_new_last_elem] = value + +def what_about_that_array(a) + print "The array now has ", a.size, " elements.\n" + # Index of last element is not really interesting in Ruby + print "Element #3 is `#{a[3]}'.\n" +end +people = %w(Crosby Stills Nash Young) +what_about_that_array(people) + + +# @@PLEAC@@_4.4 +# OO style +bad_users.each { |user| + complain(user) +} +# or, functional style +for user in bad_users + complain(user) +end + +for var in ENV.keys.sort + puts "#{var}=#{ENV[var]}" +end + +for user in all_users + disk_space = get_usage(user) + if (disk_space > MAX_QUOTA) + complain(user) + end +end + +for l in IO.popen("who").readlines + print l if l =~ /^gc/ +end + +# we can mimic the obfuscated Perl way +while fh.gets # $_ is set to the line just read + chomp # $_ has a trailing \n removed, if it had one + split.each { |w| # $_ is split on whitespace + # but $_ is not set to each chunk as in Perl + print w.reverse + } +end +# ...or use a cleaner way +for l in fh.readlines + l.chomp.split.each { |w| print w.reverse } +end + +# same drawback as in problem 1.4, we can't mutate a Numeric... +array.collect! { |v| v - 1 } + +a = [ .5, 3 ]; b = [ 0, 1 ] +for ary in [ a, b ] + ary.collect! { |v| v * 7 } +end +puts "#{a.join(' ')} #{b.join(' ')}" + +# we can mutate Strings, cool; we need a trick for the scalar +for ary in [ [ scalar ], array, hash.values ] + ary.each { |v| v.strip! } # String#strip rules :) +end + + +# @@PLEAC@@_4.5 +# not relevant in Ruby since we have always references +for item in array + # do somethingh with item +end + + +# @@PLEAC@@_4.6 +unique = list.uniq + +# generate a list of users logged in, removing duplicates +users = `who`.collect { |l| l =~ /(\w+)/; $1 }.sort.uniq +puts("users logged in: #{commify_series(users)}") # see 4.2 for commify_series + + +# @@PLEAC@@_4.7 +a - b +# [ 1, 1, 2, 2, 3, 3, 3, 4, 5 ] - [ 1, 2, 4 ] -> [3, 5] + + +# @@PLEAC@@_4.8 +union = a | b +intersection = a & b +difference = a - b + + +# @@PLEAC@@_4.9 +array1.concat(array2) +# if you will assign to another object, better use: +new_ary = array1 + array2 + +members = [ "Time", "Flies" ] +initiates = [ "An", "Arrow" ] +members += initiates + +members = [ "Time", "Flies" ] +initiates = [ "An", "Arrow" ] +members[2,0] = [ "Like", initiates ].flatten + +members[0] = "Fruit" +members[3,2] = "A", "Banana" + + +# @@PLEAC@@_4.10 +reversed = ary.reverse + +ary.reverse_each { |e| + # do something with e +} + +descending = ary.sort.reverse +descending = ary.sort { |a,b| b <=> a } + + +# @@PLEAC@@_4.11 +# remove n elements from front of ary (shift n) +front = ary.slice!(0, n) + +# remove n elements from the end of ary (pop n) +end_ = ary.slice!(-n .. -1) + +# let's extend the Array class, to make that useful +class Array + def shift2() + slice!(0 .. 1) # more symetric with pop2... + end + def pop2() + slice!(-2 .. -1) + end +end + +friends = %w(Peter Paul Mary Jim Tim) +this, that = friends.shift2 + +beverages = %w(Dew Jolt Cola Sprite Fresca) +pair = beverages.pop2 + + +# @@PLEAC@@_4.12 +# use Enumerable#detect (or the synonym Enumerable#find) +highest_eng = employees.detect { |emp| emp.category == 'engineer' } + + +# @@PLEAC@@_4.13 +# use Enumerable#select (or the synonym Enumerable#find_all) +bigs = nums.select { |i| i > 1_000_000 } +pigs = users.keys.select { |k| users[k] > 1e7 } + +matching = `who`.select { |u| u =~ /^gnat / } + +engineers = employees.select { |e| e.position == 'Engineer' } + +secondary_assistance = applicants.select { |a| + a.income >= 26_000 && a.income < 30_000 +} + + +# @@PLEAC@@_4.14 +# normally you would have an array of Numeric (Float or +# Fixnum or Bignum), so you would use: +sorted = unsorted.sort +# if you have strings representing Integers or Floats +# you may specify another sort method: +sorted = unsorted.sort { |a,b| a.to_f <=> b.to_f } + +# let's use the list of my own PID's +`ps ux`.split("\n")[1..-1]. + select { |i| i =~ /^#{ENV['USER']}/ }. + collect { |i| i.split[1] }. + sort { |a,b| a.to_i <=> b.to_i }.each { |i| puts i } +puts "Select a process ID to kill:" +pid = gets.chomp +raise "Exiting ... \n" unless pid && pid =~ /^\d+$/ +Process.kill('TERM', pid.to_i) +sleep 2 +Process.kill('KILL', pid.to_i) + +descending = unsorted.sort { |a,b| b.to_f <=> a.to_f } + + +# @@PLEAC@@_4.15 +ordered = unordered.sort { |a,b| compare(a,b) } + +precomputed = unordered.collect { |e| [compute, e] } +ordered_precomputed = precomputed.sort { |a,b| a[0] <=> b[0] } +ordered = ordered_precomputed.collect { |e| e[1] } + +ordered = unordered.collect { |e| [compute, e] }. + sort { |a,b| a[0] <=> b[0] }. + collect { |e| e[1] } + +for employee in employees.sort { |a,b| a.name <=> b.name } + print employee.name, " earns \$ ", employee.salary, "\n" +end + +# Beware! `0' is true in Ruby. +# For chaining comparisons, you may use Numeric#nonzero?, which +# returns num if num is not zero, nil otherwise +sorted = employees.sort { |a,b| (a.name <=> b.name).nonzero? || b.age <=> a.age } + +users = [] +# getpwent is not wrapped in Ruby... let's fallback +IO.readlines('/etc/passwd').each { |u| users << u.split(':') } +users.sort! { |a,b| a[0] <=> b[0] } +for user in users + puts user[0] +end + +sorted = names.sort { |a,b| a[1, 1] <=> b[1, 1] } +sorted = strings.sort { |a,b| a.length <=> b.length } + +# let's show only the compact version +ordered = strings.collect { |e| [e.length, e] }. + sort { |a,b| a[0] <=> b[0] }. + collect { |e| e[1] } + +ordered = strings.collect { |e| [/\d+/.match(e)[0].to_i, e] }. + sort { |a,b| a[0] <=> b[0] }. + collect { |e| e[1] } + +print `cat /etc/passwd`.collect { |e| [e, e.split(':').indexes(3,2,0)].flatten }. + sort { |a,b| (a[1] <=> b[1]).nonzero? || (a[2] <=> b[2]).nonzero? || a[3] <=> b[3] }. + collect { |e| e[0] } + + +# @@PLEAC@@_4.16 +circular.unshift(circular.pop) # the last shall be first +circular.push(circular.shift) # and vice versa + +def grab_and_rotate(l) + l.push(ret = l.shift) + ret +end + +processes = [1, 2, 3, 4, 5] +while (1) + process = grab_and_rotate(processes) + puts "Handling process #{process}" + sleep 1 +end + + +# @@PLEAC@@_4.17 +def fisher_yates_shuffle(a) + (a.size-1).downto(1) { |i| + j = rand(i+1) + a[i], a[j] = a[j], a[i] if i != j + } +end + +def naive_shuffle(a) + for i in 0...a.size + j = rand(a.size) + a[i], a[j] = a[j], a[i] + end +end + + Added: external/Pygments-0.9/tests/examplefiles/ruby_func_def.rb ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/ruby_func_def.rb Tue Oct 23 20:20:22 2007 @@ -0,0 +1,11 @@ +class (get_foo("blub"))::Foo + def (foo("bar") + bar("baz")).something argh, aaahaa + 42 + end +end + +class get_the_fuck("out")::Of::My + def parser_definition + ruby! + end +end Added: external/Pygments-0.9/tests/examplefiles/simple.md ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/simple.md Tue Oct 23 20:20:22 2007 @@ -0,0 +1,747 @@ +module simple; + +// Importing stuff. +{ + function loadMod(name, ns) + { + assert(name == "mod"); + + ns.x = "I'm x"; + + ns.foo = function foo() + { + writefln("foo"); + }; + + ns.bar = function bar(x) + { + return x[0]; + }; + + ns.baz = function baz() + { + writefln(x); + }; + + foreach(k, v; ns) + if(isFunction(v)) + v.environment(ns); + } + + setModuleLoader("mod", loadMod); + + import mod : foo, bar; + foo(); + writefln(bar([5])); + mod.baz(); + + writefln(); +} + +// Super calls. +{ + class Base + { + function fork() + { + writefln("Base fork."); + } + } + + class Derived : Base + { + function fork() + { + writefln("Derived fork!"); + super.fork(); + } + } + + local d = Derived(); + d.fork(); + + writefln(); +} + +// Coroutines and coroutine iteration. +{ + local countDown = coroutine function countDown(x) + { + yield(); + + while(x > 0) + { + yield(x); + x--; + } + }; + + foreach(v; countDown, 5) + writefln(v); + + writefln(); + + local forEach = coroutine function forEach(t) + { + yield(); + + foreach(k, v; t) + yield(k, v); + }; + + foreach(_, k, v; forEach, {hi = 1, bye = 2}) + writefln("key: ", k, ", value: ", v); + + writefln(); +} + +// Testing tailcalls. +{ + function recurse(x) + { + writefln("recurse: ", x); + + if(x == 0) + return toString(x); + else + return recurse(x - 1); + } + + writefln(recurse(5)); + writefln(); + + class A + { + function f(x) + { + writefln("A.f: ", x); + + if(x == 0) + return toString(x); + else + return this.f(x - 1); // call it as this.f to force a 'method' instruction to be generated + } + } + + local a = A(); + writefln(a.f(5)); + writefln(); +} + +{ + // A function which lets us define properties for a class. + // The varargs should be a bunch of tables, each with a 'name' field, and 'getter' and/or 'setter' fields. + function mixinProperties(classType, vararg) + { + classType.mProps = { }; + + classType.opIndex = function opIndex(key) + { + local prop = mProps[key]; + + if(prop is null) + throw format(classType, ".opIndex() - Property '%s' does not exist", key); + + local getter = prop.getter; + + if(getter is null) + throw format(classType, ".opIndex() - Property '%s' has no getter", key); + + return getter(with this); + }; + + classType.opIndexAssign = function opIndexAssign(key, value) + { + local prop = mProps[key]; + + if(prop is null) + throw format(classType, ".opIndexAssign() - Property '%s' does not exist", key); + + local setter = prop.setter; + + if(setter is null) + throw format(classType, ".opIndexAssign() - Property '%s' has no setter", key); + + setter(with this, value); + }; + + foreach(i, prop; [vararg]) + { + if(!isTable(prop)) + throw format("mixinProperties() - property ", i, " is not a table"); + + if(prop.name is null) + throw format("mixinProperties() - property ", i, " has no name"); + + if(prop.setter is null && prop.getter is null) + throw format("mixinProperties() - property '%s' has no getter or setter", prop.name); + + classType.mProps[prop.name] = prop; + } + } + + // Create a class to test out. + class PropTest + { + mX = 0; + mY = 0; + mName = ""; + + function constructor(name) + { + mName = name; + } + + function toString() + { + return format("name = '", mName, "' x = ", mX, " y = ", mY); + } + } + + // Mix in the properties. + mixinProperties + ( + PropTest, + + { + name = "x", + + function setter(value) + { + mX = value; + } + + function getter() + { + return mX; + } + }, + + { + name = "y", + + function setter(value) + { + mY = value; + } + + function getter() + { + return mY; + } + }, + + { + name = "name", + + function getter() + { + return mName; + } + } + ); + + // Create an instance and try it out. + local p = PropTest("hello"); + + writefln(p); + p.x = 46; + p.y = 123; + p.x = p.x + p.y; + writefln(p); + + // Try to access a nonexistent property. + try + p.name = "crap"; + catch(e) + { + writefln("caught: ", e); + writefln(getTraceback()); + } + + writefln(); +} + +// Some container classes. +{ + class PQ + { + mData; + mLength = 0; + + function constructor() + { + mData = array.new(15); + } + + function insert(data) + { + resizeArray(); + mData[mLength] = data; + + local index = mLength; + local parentIndex = (index - 1) / 2; + + while(index > 0 && mData[parentIndex] > mData[index]) + { + local temp = mData[parentIndex]; + mData[parentIndex] = mData[index]; + mData[index] = temp; + + index = parentIndex; + parentIndex = (index - 1) / 2; + } + + mLength += 1; + } + + function remove() + { + if(mLength == 0) + throw "PQ.remove() - No items to remove"; + + local data = mData[0]; + mLength -= 1; + mData[0] = mData[mLength]; + + local index = 0; + local left = 1; + local right = 2; + + while(index < mLength) + { + local smaller; + + if(left >= mLength) + { + if(right >= mLength) + break; + else + smaller = right; + } + else + { + if(right >= mLength) + smaller = left; + else + { + if(mData[left] < mData[right]) + smaller = left; + else + smaller = right; + } + } + + if(mData[index] > mData[smaller]) + { + local temp = mData[index]; + mData[index] = mData[smaller]; + mData[smaller] = temp; + + index = smaller; + left = (index * 2) + 1; + right = left + 1; + } + else + break; + } + + return data; + } + + function resizeArray() + { + if(mLength >= #mData) + mData.length((#mData + 1) * 2 - 1); + } + + function hasData() + { + return mLength != 0; + } + } + + class Stack + { + mHead = null; + + function push(data) + { + local t = { data = data, next = mHead }; + mHead = t; + } + + function pop() + { + if(mHead is null) + throw "Stack.pop() - No items to pop"; + + local item = mHead; + mHead = mHead.next; + + return item.data; + } + + function hasData() + { + return mHead !is null; + } + } + + class Queue + { + mHead = null; + mTail = null; + + function push(data) + { + local t = { data = data, next = null }; + + if(mTail is null) + { + mHead = t; + mTail = t; + } + else + { + mTail.next = t; + mTail = t; + } + } + + function pop() + { + if(mTail is null) + throw "Queue.pop() - No items to pop"; + + local item = mHead; + mHead = mHead.next; + + if(mHead is null) + mTail = null; + + return item.data; + } + + function hasData() + { + return mHead !is null; + } + } + + writefln("Priority queue (heap)"); + + local prioQ = PQ(); + + for(i : 0 .. 10) + prioQ.insert(math.rand(0, 20)); + + while(prioQ.hasData()) + writefln(prioQ.remove()); + + writefln(); + writefln("Stack"); + + local stack = Stack(); + + for(i : 0 .. 5) + stack.push(i + 1); + + while(stack.hasData()) + writefln(stack.pop()); + + writefln(); + writefln("Queue"); + + local queue = Queue(); + + for(i : 0 .. 5) + queue.push(i + 1); + + while(queue.hasData()) + writefln(queue.pop()); + + writefln(); +} + +// opApply tests. +{ + class Test + { + mData = [4, 5, 6]; + + function opApply(extra) + { + if(isString(extra) && extra == "reverse") + { + local function iterator_reverse(index) + { + index--; + + if(index < 0) + return; + + return index, mData[index]; + } + + return iterator_reverse, this, #mData; + } + else + { + local function iterator(index) + { + index++; + + if(index >= #mData) + return; + + return index, mData[index]; + } + + return iterator, this, -1; + } + } + } + + local test = Test(); + + foreach(k, v; test) + writefln("test[", k, "] = ", v); + + writefln(); + + foreach(k, v; test, "reverse") + writefln("test[", k, "] = ", v); + + writefln(); + + test = + { + fork = 5, + knife = 10, + spoon = "hi" + }; + + foreach(k, v; test) + writefln("test[", k, "] = ", v); + + test = [5, 10, "hi"]; + + writefln(); + + foreach(k, v; test) + writefln("test[", k, "] = ", v); + + writefln(); + + foreach(k, v; test, "reverse") + writefln("test[", k, "] = ", v); + + writefln(); + + foreach(k, v; "hello") + writefln("str[", k, "] = ", v); + + writefln(); + + foreach(k, v; "hello", "reverse") + writefln("str[", k, "] = ", v); + + writefln(); +} + +// Testing upvalues in for loops. +{ + local arr = array.new(10); + + for(i : 0 .. 10) + arr[i] = function() { return i; }; + + writefln("This should be the values 0 through 9:"); + + foreach(func; arr) + writefln(func()); + + writefln(); +} + +// Testing nested functions. +{ + function outer() + { + local x = 3; + + function inner() + { + x++; + writefln("inner x: ", x); + } + + writefln("outer x: ", x); + inner(); + writefln("outer x: ", x); + + return inner; + } + + local func = outer(); + func(); + + writefln(); +} + +// Testing Exceptions. +{ + function thrower(x) + { + if(x >= 3) + throw "Sorry, x is too big for me!"; + } + + function tryCatch(iterations) + { + try + { + for(i : 0 .. iterations) + { + writefln("tryCatch: ", i); + thrower(i); + } + } + catch(e) + { + writefln("tryCatch caught: ", e); + throw e; + } + finally + writefln("tryCatch finally"); + } + + try + { + tryCatch(2); + tryCatch(5); + } + catch(e) + writefln("caught: ", e); + + writefln(); +} + +// Testing arrays. +{ + local array = [7, 9, 2, 3, 6]; + + array.sort(); + + foreach(i, v; array) + writefln("arr[", i, "] = ", v); + + array ~= ["foo", "far"]; + + writefln(); + + foreach(i, v; array) + writefln("arr[", i, "] = ", v); + + writefln(); +} + +// Testing vararg functions. +{ + function vargs(vararg) + { + local args = [vararg]; + + writefln("num varargs: ", #args); + + foreach(i, v; args) + writefln("args[", i, "] = ", v); + } + + vargs(); + + writefln(); + + vargs(2, 3, 5, "foo", "bar"); + + writefln(); +} + +// Testing switches. +{ + foreach(v; ["hi", "bye", "foo"]) + { + switch(v) + { + case "hi": + writefln("switched to hi"); + break; + + case "bye": + writefln("switched to bye"); + break; + + default: + writefln("switched to something else"); + break; + } + } + + writefln(); + + foreach(v; [null, false, 1, 2.3, 'x', "hi"]) + { + switch(v) + { + case null: writefln("null"); break; + case false: writefln("false"); break; + case 1: writefln("1"); break; + case 2.3: writefln("2.3"); break; + case 'x': writefln("x"); break; + case "hi": writefln("hi"); break; + } + } + + writefln(); + + class A + { + mValue; + + this(value) + { + mValue = value; + } + + function opCmp(other) + { + assert(other as A); + return mValue <=> other.mValue; + } + } + + local a1 = A(1); + local a2 = A(2); + local a3 = A(3); + + for(s : 1 .. 4) + { + local ss = A(s); + + switch(ss) + { + case a1: + writefln(1); + break; + + case a2: + writefln(2); + break; + + case a3: + writefln(3); + break; + } + } +} \ No newline at end of file Added: external/Pygments-0.9/tests/examplefiles/smarty_example.html ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/smarty_example.html Tue Oct 23 20:20:22 2007 @@ -0,0 +1,209 @@ +{php} + include "some/php/file.php"; + + foreach ($rows as $row) { + echo $row; + } +{/php} + +{* smarty comment *} + + {serendipity_hookPlugin hook="entries_header" addData="$entry_id"} + + {foreach from=$entries item="dategroup"} + + {foreachelse} + {if not $plugin_clean_page} + {$CONST.NO_ENTRIES_TO_PRINT} + {/if} + {/foreach} + +{if $footer_info} + {/if} + {serendipity_hookPlugin hook="entries_footer"} + Added: external/Pygments-0.9/tests/examplefiles/sources.list ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/sources.list Tue Oct 23 20:20:22 2007 @@ -0,0 +1,62 @@ +## CD ROM +deb cdrom:[Xubuntu 6.06.1 _Dapper Drake_ - Release i386 (20060807)]/ dapper main restricted + +deb http://archive.ubuntu.com/ubuntu/ dapper main restricted +deb-src http://archive.ubuntu.com/ubuntu/ dapper main restricted + +deb http://foo.com/$(ARCH)/ main foo + +## Major bug fix updates produced after the final release of the +## distribution. +deb http://archive.ubuntu.com/ubuntu/ dapper-updates main restricted +deb-src http://archive.ubuntu.com/ubuntu/ dapper-updates main restricted + +## Uncomment the following two lines to add software from the 'universe' +## repository. +## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu +## team, and may not be under a free licence. Please satisfy yourself as to +## your rights to use the software. Also, please note that software in +## universe WILL NOT receive any review or updates from the Ubuntu security +## team. +deb http://archive.ubuntu.com/ubuntu/ dapper universe multiverse +deb-src http://archive.ubuntu.com/ubuntu/ dapper universe multiverse + +## Uncomment the following two lines to add software from the 'backports' +## repository. +## N.B. software from this repository may not have been tested as +## extensively as that contained in the main release, although it includes +## newer versions of some applications which may provide useful features. +## Also, please note that software in backports WILL NOT receive any review +## or updates from the Ubuntu security team. +deb http://archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse +deb-src http://archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse + +deb http://security.ubuntu.com/ubuntu dapper-security main restricted +deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted +deb http://security.ubuntu.com/ubuntu dapper-security universe multiverse +deb-src http://security.ubuntu.com/ubuntu dapper-security universe multiverse + +## dapper-commercial by canonical +## currently has realplay (realplayer 10) and opera (opera 9) +deb http://archive.canonical.com/ubuntu dapper-commercial main + +## Bleeding edge wine repository for Dapper +## only uncomment it if you need it +## deb http://wine.budgetdedicated.com/apt dapper main +## deb-src http://wine.budgetdedicated.com/apt dapper main + +## skype +## only uncomment it if you need it +## deb http://download.skype.com/linux/repos/debian/ stable non-free + +deb http://de.archive.ubuntu.com/ubuntu/ edgy main restricted multiverse universe + +deb http://de.archive.ubuntu.com/ubuntu/ edgy-updates main restricted multiverse universe + +deb http://de.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse + +deb http://security.ubuntu.com/ubuntu edgy-security main restricted universe multiverse + +deb http://wine.budgetdedicated.com/apt edgy main + +deb http://archive.czessi.net/ubuntu edgy main restricted universe multiverse i18n-de Added: external/Pygments-0.9/tests/examplefiles/squid.conf ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/squid.conf Tue Oct 23 20:20:22 2007 @@ -0,0 +1,27 @@ +# First, a comment block for the deafult conf: + +# TAG: buffered_logs on|off +# cache.log log file is written with stdio functions, and as such +# it can be buffered or unbuffered. By default it will be unbuffered. +# Buffering it can speed up the writing slightly (though you are +# unlikely to need to worry unless you run with tons of debugging +# enabled in which case performance will suffer badly anyway..). +# +#Default: +# buffered_logs off + +# Now, a slightly useful (but in no way complete) set of options: + +cache_peer upstream1.example.com parent 8080 0 no-query proxy-only round-robin +cache_peer upstream2.example.com parent 3128 0 no-query proxy-only round-robin +never_direct allow all +never_direct allow CONNECT + +acl myclients src 127.0.0.1 +http_access allow myclients + +acl mynet src 192.168.0.0/255.255.0.0 +no_cache deny mynet + +acl mynetlocal dst 192.168.0.0/255.255.0.0 +always_direct allow mynetlocal Added: external/Pygments-0.9/tests/examplefiles/string_delimiters.d ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/string_delimiters.d Tue Oct 23 20:20:22 2007 @@ -0,0 +1,21 @@ +import std.stdio; + +void main() { + // Nesting delimited strings + auto a = q"{foo " {bar} baz}"; + auto b = q"[foo [bar] " baz]"; + auto c = q"(foo " (bar) baz)"; + auto d = q" " baz>"; + // Non-nesting delimited strings + auto e = q"/foo " bar/"; + auto f = q"-Another " string-"; + // "heredoc" strings + auto g = q"FOO + This is a string! +FOO"; + // Token strings (only the q{} should be highlighted as a string) + auto h = q{ + int i; + void foo() { writefln("Hello, world!"); } + }; +} Added: external/Pygments-0.9/tests/examplefiles/test.bas ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/test.bas Tue Oct 23 20:20:22 2007 @@ -0,0 +1,29 @@ +Public Class Form1 + Inherits System.Windows.Forms.Form + + Private t As New System.Timers.Timer(2000) + + Private Sub Form1_Load(ByVal sender As Object, _ + ByVal e As System.EventArgs) Handles MyBase.Load + + AddHandler t.Elapsed, AddressOf TimerFired + End Sub + + Private Sub btnStart_Click(ByVal sender As System.Object, _ + ByVal e As System.EventArgs) Handles btnStart.Click + + t.Enabled = True + End Sub + + Private Sub btnStop_Click(ByVal sender As System.Object, _ + ByVal e As System.EventArgs) Handles btnStop.Click + + t.Enabled = False + End Sub + + Public Sub TimerFired(ByVal sender As Object, _ + ByVal e As System.Timers.ElapsedEventArgs) + + Label1.Text = "Signal Time = " & e.SignalTime.ToString + End Sub +End Class Added: external/Pygments-0.9/tests/examplefiles/test.boo ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/test.boo Tue Oct 23 20:20:22 2007 @@ -0,0 +1,39 @@ +import System +import Boo.Lang.Interpreter from Boo.Lang.Interpreter + +class ObjectInterpreter(AbstractInterpreter): + + _context as object + + [getter(Value)] + _value as object + + def constructor(context): + _context = context + self.RememberLastValue = true + + override def Lookup(name as string): + property = _context.GetType().GetProperty(name) + return property.PropertyType if property is not null + + override def GetValue(name as string): + return _context.GetType().GetProperty(name).GetValue( + _context, null) + + override def SetLastValue(value): + _value = value + + override def SetValue(name as string, value): + raise InvalidOperationException() + + override def Declare(name as string, type as Type): + raise InvalidOperationException() + +class Person: + [property(FirstName)] + _fname as string = "" + +p = Person(FirstName: "Homer") +i = ObjectInterpreter(p) +i.Eval('"Hello, ${FirstName.ToUpper()}!"') +print i.Value Added: external/Pygments-0.9/tests/examplefiles/test.cs ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/test.cs Tue Oct 23 20:20:22 2007 @@ -0,0 +1,351 @@ +//////////////////////////////////////////////////////////////////////////////// +// // +// MIT X11 license, Copyright (c) 2005-2006 by: // +// // +// Authors: // +// Michael Dominic K. // +// // +// Permission is hereby granted, free of charge, to any person obtaining a // +// copy of this software and associated documentation files (the "Software"), // +// to deal in the Software without restriction, including without limitation // +// the rights to use, copy, modify, merge, publish, distribute, sublicense, // +// and/or sell copies of the Software, and to permit persons to whom the // +// Software is furnished to do so, subject to the following conditions: // +// // +// The above copyright notice and this permission notice shall be included // +// in all copies or substantial portions of the Software. // +// // +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // +// USE OR OTHER DEALINGS IN THE SOFTWARE. // +// // +//////////////////////////////////////////////////////////////////////////////// + +namespace Diva.Core { + + using System; + using Widgets; + using System.Xml; + using Util; + using System.Collections.Generic; + using System.Collections; + using Basics; + + public class OpenerTask : Task, IBoilProvider { + + // Private structs //////////////////////////////////////////// + + struct ObjectInfo { + + public ObjectContainer Container; + public int[] Depends; + public string SystemType; + public int RefId; + + /* CONSTRUCTOR */ + public ObjectInfo (ObjectContainer container) + { + Container = container; + Depends = container.Depends.ToArray (); + SystemType = container.SystemType; + RefId = container.RefId; + } + + public override string ToString () + { + return String.Format ("Type: {0} Deps count: {1} Id: {2}", + SystemType, Depends.Length, RefId); + } + + public bool IsUnBoilable (IBoilProvider provider) + { + if (Depends.Length == 0) + return true; + + foreach (int id in Depends) + if (! (provider.Contains (id))) + return false; + + return true; + } + + } + + // Enums ////////////////////////////////////////////////////// + + enum OpenerTaskStep { Init, Header, ProjectInfoRead, ObjectListRead, + ObjectListParse, ObjectListUnBoil, FindRoots, + Finished }; + + // Fields ///////////////////////////////////////////////////// + + string fileName; // Filename we're reading + XmlDocument xmlDocument; // Our document + //XmlNode projectInfoNode; // node + IEnumerator objectsEnumerator; // Enumerator + List objectsList; // Objects list + ObjectListContainer objectListContainer; + OpenerTaskStep currentStep; // Our current step + + Dictionary idToObject; // Id -> object + Dictionary objectToId; // Object -> Id + + string projectName = String.Empty; + string projectDirectory = String.Empty; + TagList projectTagList; + StuffList projectStuffList; + TrackList projectTrackList; + ClipList projectClipList; + MediaItemList projectMediaItemList; + Commander projectCommander; + Gdv.Pipeline projectPipeline; + Gdv.ProjectFormat projectFormat; + + // Properties ///////////////////////////////////////////////// + + public string ProjectName { + get { return projectName; } + } + + public string ProjectDirectory { + get { return projectDirectory; } + } + + public TagList ProjectTagList { + get { return projectTagList; } + } + + public StuffList ProjectStuffList { + get { return projectStuffList; } + } + + public TrackList ProjectTrackList { + get { return projectTrackList; } + } + + public ClipList ProjectClipList { + get { return projectClipList; } + } + + public MediaItemList ProjectMediaItemList { + get { return projectMediaItemList; } + } + + public Commander ProjectCommander { + get { return projectCommander; } + } + + public Gdv.Pipeline ProjectPipeline { + get { return projectPipeline; } + } + + public Gdv.ProjectFormat ProjectFormat { + get { return projectFormat; } + } + + // Public methods ///////////////////////////////////////////// + + /* CONSTRUCTOR */ + public OpenerTask (string fileName) + { + this.fileName = fileName; + } + + public override void Reset () + { + objectToId = new Dictionary (); + idToObject = new Dictionary (); + + xmlDocument = null; + //projectInfoNode = null; + + currentStep = OpenerTaskStep.Init; + + base.Reset (); + } + + public int GetIdForObject (object o) + { + return objectToId [o]; + } + + public object GetObjectForId (int id) + { + return idToObject [id]; + } + + public bool Contains (int id) + { + return idToObject.ContainsKey (id); + } + + // Private methods //////////////////////////////////////////// + + protected override TaskStatus ExecuteStep (int s) + { + bool cont = true; + + // Main + switch (currentStep) { + + case OpenerTaskStep.Init: + objectsList = new List (); + xmlDocument = new XmlDocument (); + xmlDocument.Load (fileName); + currentStep = OpenerTaskStep.Header; + break; + + case OpenerTaskStep.Header: + //ReadHeader (); + currentStep = OpenerTaskStep.ProjectInfoRead; + break; + + case OpenerTaskStep.ProjectInfoRead: + foreach (XmlNode node in xmlDocument.DocumentElement.ChildNodes) + if (node.Name == "projectinfo") + ResolveProjectInfoNode (node); + + // FIXME: Fail if not found/not resolved + currentStep = OpenerTaskStep.ObjectListRead; + break; + + case OpenerTaskStep.ObjectListRead: + foreach (XmlNode node in xmlDocument.DocumentElement.ChildNodes) + if (node.Name == "objectlist") + objectListContainer = (ObjectListContainer) + DataFactory.MakeDataElement (node as XmlElement); + + if (objectListContainer == null) + throw new Exception ("ObjectListContainer not found!"); + + currentStep = OpenerTaskStep.ObjectListParse; + break; + + case OpenerTaskStep.ObjectListParse: + bool flush = EnumerateSomeObjects (); + if (flush) + currentStep = OpenerTaskStep.ObjectListUnBoil; + break; + + case OpenerTaskStep.ObjectListUnBoil: + bool done = UnBoilSomeObjects (); + if (done) + currentStep = OpenerTaskStep.FindRoots; + break; + + + case OpenerTaskStep.FindRoots: + projectTrackList = (TrackList) FindRoot ("tracklist"); + projectTagList = (TagList) FindRoot ("taglist"); + projectStuffList = (StuffList) FindRoot ("stufflist"); + projectClipList = (ClipList) FindRoot ("cliplist"); + projectMediaItemList = (MediaItemList) FindRoot ("mediaitemlist"); + projectPipeline = (Gdv.Pipeline) FindRoot ("pipeline"); + projectCommander = (Commander) FindRoot ("commander"); + projectFormat = (Gdv.ProjectFormat) FindRoot ("projectformat"); + + currentStep = OpenerTaskStep.Finished; + break; + + case OpenerTaskStep.Finished: + cont = false; + break; + + default: + break; + } + + // Post + if (cont) + return TaskStatus.Running; + else + return TaskStatus.Done; + } + + /* + void ReadHeader () + { + // FIXME: Read all the attributes from the element + }*/ + + void ResolveProjectInfoNode (XmlNode node) + { + foreach (XmlNode childNode in node) { + + switch (childNode.Name) { + + case "name": + projectName = childNode.FirstChild.Value; + break; + + case "directory": + projectDirectory = childNode.FirstChild.Value; + break; + + // FIXME: Duration etc. + } + } + } + + bool EnumerateSomeObjects () + { + if (objectsEnumerator == null) + objectsEnumerator = objectListContainer.FindAllObjects ().GetEnumerator (); + + for (int i = 0; i < 10; i++) { + if (objectsEnumerator.MoveNext () == false) + return true; + + ObjectContainer container = (ObjectContainer) + objectsEnumerator.Current; + + ObjectInfo newInfo = new ObjectInfo (container); + objectsList.Add (newInfo); + } + + return false; + } + + ObjectInfo GetNextCandidate () + { + foreach (ObjectInfo objInfo in objectsList) + if (objInfo.IsUnBoilable (this)) + return objInfo; + + throw new Exception ("FIXME: No more unboilable objects found. Recursive?"); + } + + bool UnBoilSomeObjects () + { + for (int i = 0; i < 5; i++) { + // All unboiled + if (objectsList.Count == 0) + return true; + + ObjectInfo objInfo = GetNextCandidate (); + + object o = BoilFactory.UnBoil (objInfo.Container, this); + objectsList.Remove (objInfo); + + // Add + idToObject [objInfo.RefId] = o; + objectToId [o] = objInfo.RefId; + + } + + return false; + } + + object FindRoot (string rootString) + { + ObjectContainer container = objectListContainer.FindObjectContainer (rootString); + return idToObject [container.RefId]; + } + + } + +} Added: external/Pygments-0.9/tests/examplefiles/test.css ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/test.css Tue Oct 23 20:20:22 2007 @@ -0,0 +1,30 @@ +body { + font-size: 12pt; + background: #fff url(temp.png) top left no-repeat; +} + +* html body { + font-size: 14pt; +} + +#nav .new { + display: block; +} + +ul#nav li.new { + font-weight: bold; +} + +:link { + color: #f00; +} + +:link:hover { + color: #0f0; +} + + at media screen { + body { + background: #ccc; + } +} Added: external/Pygments-0.9/tests/examplefiles/test.d ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/test.d Tue Oct 23 20:20:22 2007 @@ -0,0 +1,135 @@ +// Created by Lionello Lunesu and placed in the public domain. +// This file has been modified from its original version. +// It has been formatted to fit your screen. +module phoneno; // optional +import std.stdio; // writefln +import std.ctype; // isdigit +import std.stream; // BufferedFile + +// Just for readability (imagine char[][][char[]]) +alias char[] string; +alias string[] stringarray; + +/// Strips non-digit characters from the string (COW) +string stripNonDigit( in string line ) +{ + string ret; + foreach(uint i, c; line) { + // Error: std.ctype.isdigit at C:\dmd\src\phobos\std\ctype.d(37) + // conflicts with std.stream.isdigit at C:\dmd\src\phobos\std\stream.d(2924) + if (!std.ctype.isdigit(c)) { + if (!ret) + ret = line[0..i]; + } + else if (ret) + ret ~= c; + } + return ret?ret:line; +} + +unittest { + assert( stripNonDigit("asdf") == "" ); + assert( stripNonDigit("\'13-=2 4kop") == "1324" ); +} + +/// Converts a word into a number, ignoring all non alpha characters +string wordToNum( in string word ) +{ +// translation table for the task at hand +const char[256] TRANSLATE = + " " // 0 + " 0123456789 " // 32 + " 57630499617851881234762239 " // 64 + " 57630499617851881234762239 " + " " + " " + " " + " "; + string ret; + foreach(c; cast(ubyte[])word) + if (TRANSLATE[c] != ' ') + ret ~= TRANSLATE[c]; + return ret; +} + +unittest { + // Test wordToNum using the table from the task description. + assert( "01112223334455666777888999" == + wordToNum("E | J N Q | R W X | D S Y | F T | A M | C I V | B K U | L O P | G H Z")); + assert( "01112223334455666777888999" == + wordToNum("e | j n q | r w x | d s y | f t | a m | c i v | b k u | l o p | g h z")); + assert( "0123456789" == + wordToNum("0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9")); +} + +void main( string[] args ) +{ + // This associative array maps a number to an array of words. + stringarray[string] num2words; + + foreach(string word; new BufferedFile("dictionary.txt" ) ) + num2words[ wordToNum(word) ] ~= word.dup; // must dup + + /// Finds all alternatives for the given number + /// (should have been stripped from non-digit characters) + stringarray _FindWords( string numbers, bool digitok ) + in { + assert(numbers.length > 0); + } + out(result) { + foreach (a; result) + assert( wordToNum(a) == numbers ); + } + body { + stringarray ret; + bool foundword = false; + for (uint t=1; t<=numbers.length; ++t) { + auto alternatives = numbers[0..t] in num2words; + if (!alternatives) + continue; + foundword = true; + if (numbers.length > t) { + // Combine all current alternatives with all alternatives + // of the rest (next piece can start with a digit) + foreach (a2; _FindWords( numbers[t..$], true ) ) + foreach(a1; *alternatives) + ret ~= a1 ~ " " ~ a2; + } + else + ret ~= *alternatives; // append these alternatives + } + // Try to keep 1 digit, only if we're allowed and no other + // alternatives were found + // Testing "ret.length" makes more sense than testing "foundword", + // but the other implementations seem to do just this. + if (digitok && !foundword) { //ret.length == 0 + if(numbers.length > 1) { + // Combine 1 digit with all altenatives from the rest + // (next piece can not start with a digit) + foreach (a; _FindWords( numbers[1..$], false ) ) + ret ~= numbers[0..1] ~ " " ~ a; + } + else + ret ~= numbers[0..1]; // just append this digit + } + return ret; + } + + /// (This function was inlined in the original program) + /// Finds all alternatives for the given phone number + /// Returns: array of strings + stringarray FindWords( string phone_number ) + { + if (!phone_number.length) + return null; + // Strip the non-digit characters from the phone number, and + // pass it to the recursive function (leading digit is allowed) + return _FindWords( stripNonDigit(phone_number), true ); + } + + // Read the phone numbers + foreach(string phone; new BufferedFile("input.txt" ) ) + foreach(alternative; FindWords( phone ) ) + writefln(phone, ": ", alternative ); +} + Added: external/Pygments-0.9/tests/examplefiles/test.erl ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/test.erl Tue Oct 23 20:20:22 2007 @@ -0,0 +1,169 @@ +-module(test). +-export([listen/1, + handle_client/1, + maintain_clients/1, + start/1, + stop/0, + controller/1]). + +-author("jerith"). + +-define(TCP_OPTIONS,[list, {packet, 0}, {active, false}, {reuseaddr, true}]). + +-record(player, {name=none, socket, mode}). + +%% To allow incoming connections, we need to listen on a TCP port. +%% This is also the entry point for our server as a whole, so it +%% starts the client_manager process and gives it a name so the rest +%% of the code can get to it easily. + +listen(Port) -> + {ok, LSocket} = gen_tcp:listen(Port, ?TCP_OPTIONS), + register(client_manager, spawn(?MODULE, maintain_clients, [[]])), + do_accept(LSocket). + +%% Accepting a connection gives us a connection socket with the +%% newly-connected client on the other end. Since we want to accept +%% more than one client, we spawn a new process for each and then wait +%% for another connection on our listening socket. + +do_accept(LSocket) -> + case gen_tcp:accept(LSocket) of + {ok, Socket} -> + spawn(?MODULE, handle_client, [Socket]), + client_manager ! {connect, Socket}; + {error, Reason} -> + io:format("Socket accept error: ~s~n", [Reason]) + end, + do_accept(LSocket). + +%% All the client-socket process needs to do is wait for data and +%% forward it to the client_manager process which decides what to do +%% with it. If the client disconnects, we let client_manager know and +%% then quietly go away. + +handle_client(Socket) -> + case gen_tcp:recv(Socket, 0) of + {ok, Data} -> + client_manager ! {data, Socket, Data}, + handle_client(Socket); + {error, closed} -> + client_manager ! {disconnect, Socket} + end. + +%% This is the main loop of the client_manager process. It maintains +%% the list of "players" and calls the handler for client input. + +maintain_clients(Players) -> + io:format("Players:~n", []), + lists:foreach(fun(P) -> io:format(">>> ~w~n", [P]) end, Players), + receive + {connect, Socket} -> + Player = #player{socket=Socket, mode=connect}, + send_prompt(Player), + io:format("client connected: ~w~n", [Player]), + NewPlayers = [Player | Players]; + {disconnect, Socket} -> + Player = find_player(Socket, Players), + io:format("client disconnected: ~w~n", [Player]), + NewPlayers = lists:delete(Player, Players); + {data, Socket, Data} -> + Player = find_player(Socket, Players), + NewPlayers = parse_data(Player, Players, Data), + NewPlayer = find_player(Socket, NewPlayers), + send_prompt(NewPlayer) + end, + maintain_clients(NewPlayers). + +%% find_player is a utility function to get a player record associated +%% with a particular socket out of the player list. + +find_player(Socket, Players) -> + {value, Player} = lists:keysearch(Socket, #player.socket, Players), + Player. + +%% delete_player returns the player list without the given player. It +%% deletes the player from the list based on the socket rather than +%% the whole record because the list might hold a different version. + +delete_player(Player, Players) -> + lists:keydelete(Player#player.socket, #player.socket, Players). + +%% Sends an appropriate prompt to the player. Currently the only +%% prompt we send is the initial "Name: " when the player connects. + +send_prompt(Player) -> + case Player#player.mode of + connect -> + gen_tcp:send(Player#player.socket, "Name: "); + active -> + ok + end. + +%% Sends the given data to all players in active mode. + +send_to_active(Prefix, Players, Data) -> + ActivePlayers = lists:filter(fun(P) -> P#player.mode == active end, + Players), + lists:foreach(fun(P) -> gen_tcp:send(P#player.socket, Prefix ++ Data) end, + ActivePlayers), + ok. + +%% We don't really do much parsing, but that will probably change as +%% more features are added. Currently this handles naming the player +%% when he first connects and treats everything else as a message to +%% send. + +parse_data(Player, Players, Data) -> + case Player#player.mode of + active -> + send_to_active(Player#player.name ++ ": ", + delete_player(Player, Players), Data), + Players; + connect -> + UPlayer = Player#player{name=bogostrip(Data), mode=active}, + [UPlayer | delete_player(Player, Players)] + end. + +%% Utility methods to clean up the name before we apply it. Called +%% bogostrip rather than strip because it returns the first continuous +%% block of non-matching characters rather stripping matching +%% characters off the front and back. + +bogostrip(String) -> + bogostrip(String, "\r\n\t "). + +bogostrip(String, Chars) -> + LStripped = string:substr(String, string:span(String, Chars)+1), + string:substr(LStripped, 1, string:cspan(LStripped, Chars)). + +%% Here we have some extra code to test other bits of pygments' Erlang +%% lexer. + +get_timestamp() -> + {{Year,Month,Day},{Hour,Min,Sec}} = erlang:universaltime(), + lists:flatten(io_lib:format( + "~4.10.0B-~2.10.0B-~2.10.0BT~2.10.0B:~2.10.0B:~2.10.0BZ", + [Year, Month, Day, Hour, Min, Sec])). + +a_binary() -> + << 100:16/integer, 16#7f >>. + +a_list_comprehension() -> + [X*2 || X <- [1,2,3]]. + +map(Fun, [H|T]) -> + [Fun(H) | map(Fun, T)]; + +map(Fun, []) -> + []. + +%% pmap, just because it's cool. + +pmap(F, L) -> + Parent = self(), + [receive {Pid, Result} -> + Result + end || Pid <- [spawn(fun() -> + Parent ! {self(), F(X)} + end) || X <- L]]. Added: external/Pygments-0.9/tests/examplefiles/test.html ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/test.html Tue Oct 23 20:20:22 2007 @@ -0,0 +1,351 @@ + + + + + + +
    # -*- coding: utf-8 -*-
    +"""
    +    pocoo.pkg.core.acl
    +    ~~~~~~~~~~~~~~~~~~
    +
    +    Pocoo ACL System.
    +
    +    :copyright: 2006-2007 by Armin Ronacher.
    +    :license: GNU GPL, see LICENSE for more details.
    +"""
    +
    +from pocoo.db import meta
    +
    +from pocoo.pkg.core.forum import Site, Forum, Thread
    +from pocoo.pkg.core.user import User, Group
    +
    +from pocoo.pkg.core.db import users, groups, group_members, privileges, \
    +     forums, posts, acl_mapping, acl_subjects, acl_objects
    +
    +
    +class AclManager(object):
    +    """
    +    Manager object to manage ALCs.
    +    """
    +    STRONG_NO = -1
    +
    +    WEAK_NO = 0
    +    WEAK_YES = 1
    +    STRONG_YES = 2
    +
    +    def __init__(self, ctx, subject):
    +        self.ctx = ctx
    +
    +        self.subject = subject
    +        if isinstance(subject, User):
    +            self._type = 'user'
    +
    +        elif isinstance(subject, Group):
    +            self._type = 'group'
    +
    +        else:
    +            raise ValueError('neither user or group specified')
    +
    +    def allow(self, privilege, obj, force=False):
    +        """Allows the subject privilege on obj."""
    +
    +        return self._set(privilege, obj, 1 + bool(force))
    +
    +    def default(self, privilege, obj):
    +        """Sets the state for privilege on obj back to weak yes."""
    +
    +        return self._set(privilege, obj, 0)
    +
    +    def deny(self, privilege, obj, force=False):
    +        """Denies the subject privilege on obj."""
    +
    +        return self._set(privilege, obj, -1 - bool(force))
    +
    +    def can_access(self, privilege, obj):
    +        """Checks if the current subject with the required privilege
    +        somehow. Either directly or when the subject is a user and
    +        one of its groups can access it."""
    +
    +        #XXX: maybe this could be one big query instead of 4
    +        #XXX: this currently does not work correctly, therefore return True
    +        return True
    +
    +        if not isinstance(obj, (Forum, Thread, Site.__class__)):
    +            raise TypeError('obj must be a forum, thread or site')
    +        privilege = privilege.upper()
    +        s = self._get_subject_join().alias('s').c
    +
    +        def do_check(obj, tendency):
    +            db = self.ctx.engine
    +
    +            o = self._get_object_join(obj).alias('o').c
    +
    +            # self check
    +            r = db.execute(meta.select([acl_mapping.c.state],
    +                (acl_mapping.c.priv_id == privileges.c.priv_id) &
    +
    +                (acl_mapping.c.subject_id == s.subject_id) &
    +                (acl_mapping.c.object_id == o.object_id) &
    +
    +                (privileges.c.name == privilege)
    +            ))
    +            row = r.fetchone()
    +            if row is not None:
    +                if row['state'] in (self.STRONG_NO, self.STRONG_YES):
    +                    return row['state'] == self.STRONG_YES
    +
    +                tendency = row['state']
    +
    +            # if the controlled subject is a user check all groups
    +            if isinstance(self.subject, User):
    +                r = db.execute(meta.select([acl_mapping.c.state],
    +                    (acl_mapping.c.object_id == o.object_id) &
    +
    +                    (acl_mapping.c.subject_id == groups.c.subject_id) &
    +
    +                    (groups.c.group_id == group_members.c.group_id) &
    +
    +                    (group_members.c.user_id == self.subject.user_id)
    +                ))
    +                while True:
    +                    row = r.fetchone()
    +                    if row is None:
    +                        break
    +
    +                    state = row[0]
    +                    if state in (self.STRONG_YES, self.STRONG_NO):
    +                        return state == self.STRONG_YES
    +
    +                    if tendency is None:
    +                        tendency = state
    +                    elif tendency == self.WEAK_NO and state == self.WEAK_YES:
    +                        tendency = self.WEAK_YES
    +
    +            # check related objects
    +            if isinstance(obj, Thread):
    +                return do_check(obj.forum, tendency)
    +            elif isinstance(obj, Forum):
    +                return do_check(Site, tendency)
    +            else:
    +                return tendency
    +
    +        return do_check(obj, None) in (self.WEAK_YES, self.STRONG_YES)
    +
    +    def _set(self, privilege, obj, state):
    +        """Helper functions for settings privileges."""
    +
    +        privilege = privilege.upper()
    +        if self.subject.subject_id is None:
    +            self._bootstrap()
    +        if obj.object_id is None:
    +            self._bootstrap_object(obj)
    +        # special state "0" which means delete
    +
    +        if not state:
    +            p = meta.select([privileges.c.priv_id], privileges.c.name == privilege)
    +            self.ctx.engine.execute(acl_mapping.delete(
    +                (acl_mapping.c.priv_id == p.c.priv_id) &
    +
    +                (acl_mapping.c.subject_id == self.subject.subject_id) &
    +
    +                (acl_mapping.c.object_id == obj.object_id)
    +            ))
    +            return
    +        # touch privilege and check existing mapping
    +
    +        priv_id = self._fetch_privilege(privilege)
    +        r = self.ctx.engine.execute(meta.select([acl_mapping.c.state],
    +            (acl_mapping.c.priv_id == priv_id) &
    +
    +            (acl_mapping.c.subject_id == self.subject.subject_id) &
    +
    +            (acl_mapping.c.object_id == obj.object_id)
    +        ))
    +        row = r.fetchone()
    +        if row is not None:
    +            # this rule exists already
    +
    +            if row['state'] == state:
    +                return
    +            # goddamn, same rule - different state, delete old first
    +            self._set(privilege, obj, 0)
    +        # insert new rule
    +
    +        self.ctx.engine.execute(acl_mapping.insert(),
    +            priv_id = priv_id,
    +            subject_id = self.subject.subject_id,
    +            object_id = obj.object_id,
    +            state = state
    +
    +        )
    +
    +    def _bootstrap(self):
    +        """This method is automatically called when subject_id is
    +        None and an subject_id is required."""
    +        r = self.ctx.engine.execute(acl_subjects.insert(),
    +            subject_type = self._type
    +
    +        )
    +        self.subject.subject_id = r.last_inserted_ids()[0]
    +        self.subject.save()
    +
    +    def _bootstrap_object(self, obj):
    +        """Like _bootstrap but works for objects."""
    +
    +        objtype = self._get_object_type(obj)
    +        r = self.ctx.engine.execute(acl_objects.insert(),
    +            object_type = objtype
    +
    +        )
    +        obj.object_id = r.last_inserted_ids()[0]
    +        obj.save()
    +
    +    def _get_object_type(self, obj):
    +        if isinstance(obj, Forum):
    +            return 'forum'
    +
    +        elif isinstance(obj, Thread):
    +            return 'thread'
    +        elif obj is Site:
    +            return 'site'
    +
    +        raise TypeError('obj isn\'t a forum or thread')
    +
    +    def _get_object_join(self, obj):
    +        """Returns a subjoin for the object id."""
    +
    +        t = self._get_object_type(obj)
    +        if t == 'forum':
    +            return meta.select([forums.c.object_id],
    +                forums.c.forum_id == obj.forum_id
    +
    +            )
    +        elif t == 'thread':
    +            return meta.select([posts.c.object_id],
    +                posts.c.post_id == obj.post_id
    +
    +            )
    +        else:
    +            # XXX: it works ^^
    +            # i really want something like meta.select('0 as group_id')
    +            class Fake(object):
    +                def alias(self, n):
    +                    class _C(object):
    +                        class c(object):
    +                            object_id = 0
    +
    +                    return _C
    +            return Fake()
    +
    +    def _get_subject_join(self):
    +        """Returns a subjoin for the subject id."""
    +
    +        if self._type == 'user':
    +            return meta.select([users.c.subject_id],
    +                users.c.user_id == self.subject.user_id
    +
    +            )
    +        return meta.select([groups.c.subject_id],
    +            groups.c.group_id == self.subject.group_id
    +
    +        )
    +
    +    def _fetch_privilege(self, name):
    +        """Returns the priv_id for the given privilege. If it
    +        doesn\'t exist by now the system will create a new
    +        privilege."""
    +        r = self.ctx.engine.execute(meta.select([privileges.c.priv_id],
    +            privileges.c.name == name
    +
    +        ))
    +        row = r.fetchone()
    +        if row is not None:
    +            return row[0]
    +        r = self.ctx.engine.execute(privileges.insert(),
    +            name = name
    +
    +        )
    +        return r.last_inserted_ids()[0]
    +
    +    def __repr__(self):
    +        if self._type == 'user':
    +            id_ = self.subject.user_id
    +
    +        else:
    +            id_ = self.subject.group_id
    +        if self.subject.subject_id is None:
    +            return '<%s %s:%d inactive>' % (
    +                self.__class__.__name__,
    +                self._type,
    +                id_
    +
    +            )
    +        return '<%s %s:%d active as %d>' % (
    +            self.__class__.__name__,
    +            self._type,
    +            id_,
    +            self.subject.subject_id
    +
    +        )
    +
    
    Added: external/Pygments-0.9/tests/examplefiles/test.java
    ==============================================================================
    --- (empty file)
    +++ external/Pygments-0.9/tests/examplefiles/test.java	Tue Oct 23 20:20:22 2007
    @@ -0,0 +1,653 @@
    +/*
    + * Created on 13-Mar-2004
    + * Created by James Yeh
    + * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.
    + *
    + * This program is free software; you can redistribute it and/or
    + * modify it under the terms of the GNU General Public License
    + * as published by the Free Software Foundation; either version 2
    + * of the License, or (at your option) any later version.
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + * You should have received a copy of the GNU General Public License
    + * along with this program; if not, write to the Free Software
    + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    + * 
    + * AELITIS, SAS au capital de 46,603.30 euros
    + * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
    + *
    + */
    +
    +package org.gudy.azureus2.platform.macosx;
    +
    +import org.gudy.azureus2.core3.logging.*;
    +import org.gudy.azureus2.core3.util.AEMonitor;
    +import org.gudy.azureus2.core3.util.Debug;
    +import org.gudy.azureus2.core3.util.SystemProperties;
    +import org.gudy.azureus2.platform.PlatformManager;
    +import org.gudy.azureus2.platform.PlatformManagerCapabilities;
    +import org.gudy.azureus2.platform.PlatformManagerListener;
    +import org.gudy.azureus2.platform.macosx.access.jnilib.OSXAccess;
    +
    +import org.gudy.azureus2.plugins.platform.PlatformManagerException;
    +
    +import java.io.BufferedReader;
    +import java.io.File;
    +import java.io.IOException;
    +import java.io.InputStreamReader;
    +import java.text.MessageFormat;
    +import java.util.HashSet;
    +
    +
    +/**
    + * Performs platform-specific operations with Mac OS X
    + *
    + * @author James Yeh
    + * @version 1.0 Initial Version
    + * @see PlatformManager
    + */
    +public class PlatformManagerImpl implements PlatformManager
    +{
    +    private static final LogIDs LOGID = LogIDs.CORE;
    +
    +    protected static PlatformManagerImpl singleton;
    +    protected static AEMonitor class_mon = new AEMonitor("PlatformManager");
    +
    +    private static final String USERDATA_PATH = new File(System.getProperty("user.home") + "/Library/Application Support/").getPath();
    +
    +    //T: PlatformManagerCapabilities
    +    private final HashSet capabilitySet = new HashSet();
    +
    +    /**
    +     * Gets the platform manager singleton, which was already initialized
    +     */
    +    public static PlatformManagerImpl getSingleton()
    +    {
    +        return singleton;
    +    }
    +
    +    /**
    +     * Tries to enable cocoa-java access and instantiates the singleton
    +     */
    +    static
    +    {
    +        initializeSingleton();
    +    }
    +
    +    /**
    +     * Instantiates the singleton
    +     */
    +    private static void initializeSingleton()
    +    {
    +        try
    +        {
    +            class_mon.enter();
    +            singleton = new PlatformManagerImpl();
    +        }
    +        catch (Throwable e)
    +        {
    +        	Logger.log(new LogEvent(LOGID, "Failed to initialize platform manager"
    +					+ " for Mac OS X", e));
    +        }
    +        finally
    +        {
    +            class_mon.exit();
    +        }
    +    }
    +
    +    /**
    +     * Creates a new PlatformManager and initializes its capabilities
    +     */
    +    public PlatformManagerImpl()
    +    {
    +        capabilitySet.add(PlatformManagerCapabilities.RecoverableFileDelete);
    +        capabilitySet.add(PlatformManagerCapabilities.ShowFileInBrowser);
    +        capabilitySet.add(PlatformManagerCapabilities.ShowPathInCommandLine);
    +        capabilitySet.add(PlatformManagerCapabilities.CreateCommandLineProcess);
    +        capabilitySet.add(PlatformManagerCapabilities.GetUserDataDirectory);
    +        capabilitySet.add(PlatformManagerCapabilities.UseNativeScripting);
    +        capabilitySet.add(PlatformManagerCapabilities.PlaySystemAlert);
    +        
    +        if (OSXAccess.isLoaded()) {
    +	        capabilitySet.add(PlatformManagerCapabilities.GetVersion);
    +        }
    +    }
    +
    +    /**
    +     * {@inheritDoc}
    +     */
    +    public int getPlatformType()
    +    {
    +        return PT_MACOSX;
    +    }
    +
    +    /**
    +     * {@inheritDoc}
    +     */
    +    public String getVersion() throws PlatformManagerException
    +    {
    +    	if (!OSXAccess.isLoaded()) {
    +        throw new PlatformManagerException("Unsupported capability called on platform manager");
    +    	}
    +    	
    +    	return OSXAccess.getVersion();
    +    }
    +
    +    /**
    +     * {@inheritDoc}
    +     * @see org.gudy.azureus2.core3.util.SystemProperties#getUserPath()
    +     */
    +    public String getUserDataDirectory() throws PlatformManagerException
    +    {
    +        return USERDATA_PATH;
    +    }
    +
    +	public File
    +	getLocation(
    +		long	location_id )
    +	
    +		throws PlatformManagerException
    +	{
    +		if ( location_id == LOC_USER_DATA ){
    +			
    +			return( new File( USERDATA_PATH ));
    +		}
    +		
    +		return( null );
    +	}
    +    /**
    +     * Not implemented; returns True
    +     */
    +    public boolean isApplicationRegistered() throws PlatformManagerException
    +    {
    +        return true;
    +    }
    +
    +    
    +	public String
    +	getApplicationCommandLine()
    +		throws PlatformManagerException
    +	{
    +		try{	    
    +			String	bundle_path = System.getProperty("user.dir") +SystemProperties.SEP+ SystemProperties.getApplicationName() + ".app";
    +
    +			File osx_app_bundle = new File( bundle_path ).getAbsoluteFile();
    +			
    +			if( !osx_app_bundle.exists() ) {
    +				String msg = "OSX app bundle not found: [" +osx_app_bundle.toString()+ "]";
    +				System.out.println( msg );
    +				if (Logger.isEnabled())
    +					Logger.log(new LogEvent(LOGID, msg));		
    +				throw new PlatformManagerException( msg );
    +			}
    +			
    +			return "open -a \"" +osx_app_bundle.toString()+ "\"";
    +			//return osx_app_bundle.toString() +"/Contents/MacOS/JavaApplicationStub";
    +			
    +		}
    +		catch( Throwable t ){	
    +			t.printStackTrace();
    +			return null;
    +		}
    +	}
    +	
    +	
    +	public boolean
    +	isAdditionalFileTypeRegistered(
    +		String		name,				// e.g. "BitTorrent"
    +		String		type )				// e.g. ".torrent"
    +	
    +		throws PlatformManagerException
    +	{
    +	    throw new PlatformManagerException("Unsupported capability called on platform manager");
    +	}
    +	
    +	public void
    +	unregisterAdditionalFileType(
    +		String		name,				// e.g. "BitTorrent"
    +		String		type )				// e.g. ".torrent"
    +		
    +		throws PlatformManagerException
    +	{
    +		throw new PlatformManagerException("Unsupported capability called on platform manager");
    +	}
    +	
    +	public void
    +	registerAdditionalFileType(
    +		String		name,				// e.g. "BitTorrent"
    +		String		description,		// e.g. "BitTorrent File"
    +		String		type,				// e.g. ".torrent"
    +		String		content_type )		// e.g. "application/x-bittorrent"
    +	
    +		throws PlatformManagerException
    +	{
    +	   throw new PlatformManagerException("Unsupported capability called on platform manager");
    +	}
    +	
    +    /**
    +     * Not implemented; does nothing
    +     */
    +    public void registerApplication() throws PlatformManagerException
    +    {
    +        // handled by LaunchServices and/0r user interaction
    +    }
    +
    +    /**
    +     * {@inheritDoc}
    +     */
    +    public void createProcess(String cmd, boolean inheritsHandles) throws PlatformManagerException
    +    {
    +        try
    +        {
    +            performRuntimeExec(cmd.split(" "));
    +        }
    +        catch (Throwable e)
    +        {
    +            throw new PlatformManagerException("Failed to create process", e);
    +        }
    +    }
    +
    +    /**
    +     * {@inheritDoc}
    +     */
    +    public void performRecoverableFileDelete(String path) throws PlatformManagerException
    +    {
    +        File file = new File(path);
    +        if(!file.exists())
    +        {
    +	        	if (Logger.isEnabled())
    +							Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING, "Cannot find "
    +									+ file.getName()));
    +            return;
    +        }
    +
    +        boolean useOSA = !NativeInvocationBridge.sharedInstance().isEnabled() || !NativeInvocationBridge.sharedInstance().performRecoverableFileDelete(file);
    +
    +        if(useOSA)
    +        {
    +            try
    +            {
    +                StringBuffer sb = new StringBuffer();
    +                sb.append("tell application \"");
    +                sb.append("Finder");
    +                sb.append("\" to move (posix file \"");
    +                sb.append(path);
    +                sb.append("\" as alias) to the trash");
    +
    +                performOSAScript(sb);
    +            }
    +            catch (Throwable e)
    +            {
    +                throw new PlatformManagerException("Failed to move file", e);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * {@inheritDoc}
    +     */
    +    public boolean hasCapability(PlatformManagerCapabilities capability)
    +    {
    +        return capabilitySet.contains(capability);
    +    }
    +
    +    /**
    +     * {@inheritDoc}
    +     */
    +    public void dispose()
    +    {
    +        NativeInvocationBridge.sharedInstance().dispose();
    +    }
    +
    +    /**
    +     * {@inheritDoc}
    +     */
    +    public void setTCPTOSEnabled(boolean enabled) throws PlatformManagerException
    +    {
    +        throw new PlatformManagerException("Unsupported capability called on platform manager");
    +    }
    +
    +	public void
    +    copyFilePermissions(
    +		String	from_file_name,
    +		String	to_file_name )
    +	
    +		throws PlatformManagerException
    +	{
    +	    throw new PlatformManagerException("Unsupported capability called on platform manager");		
    +	}
    +	
    +    /**
    +     * {@inheritDoc}
    +     */
    +    public void showFile(String path) throws PlatformManagerException
    +    {
    +        File file = new File(path);
    +        if(!file.exists())
    +        {
    +        	if (Logger.isEnabled())
    +        		Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING, "Cannot find "
    +        				+ file.getName()));
    +            throw new PlatformManagerException("File not found");
    +        }
    +
    +        showInFinder(file);
    +    }
    +
    +    // Public utility methods not shared across the interface
    +
    +    /**
    +     * Plays the system alert (the jingle is specified by the user in System Preferences)
    +     */
    +    public void playSystemAlert()
    +    {
    +        try
    +        {
    +            performRuntimeExec(new String[]{"beep"});
    +        }
    +        catch (IOException e)
    +        {
    +        	if (Logger.isEnabled())
    +        		Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING,
    +						"Cannot play system alert"));
    +        	Logger.log(new LogEvent(LOGID, "", e));
    +        }
    +    }
    +
    +    /**
    +     * 

    Shows the given file or directory in Finder

    + * @param path Absolute path to the file or directory + */ + public void showInFinder(File path) + { + boolean useOSA = !NativeInvocationBridge.sharedInstance().isEnabled() || !NativeInvocationBridge.sharedInstance().showInFinder(path); + + if(useOSA) + { + StringBuffer sb = new StringBuffer(); + sb.append("tell application \""); + sb.append(getFileBrowserName()); + sb.append("\" to reveal (posix file \""); + sb.append(path); + sb.append("\" as alias)"); + + try + { + performOSAScript(sb); + } + catch (IOException e) + { + Logger.log(new LogAlert(LogAlert.UNREPEATABLE, LogAlert.AT_ERROR, e + .getMessage())); + } + } + } + + /** + *

    Shows the given file or directory in Terminal by executing cd /absolute/path/to

    + * @param path Absolute path to the file or directory + */ + public void showInTerminal(String path) + { + showInTerminal(new File(path)); + } + + /** + *

    Shows the given file or directory in Terminal by executing cd /absolute/path/to

    + * @param path Absolute path to the file or directory + */ + public void showInTerminal(File path) + { + if (path.isFile()) + { + path = path.getParentFile(); + } + + if (path != null && path.isDirectory()) + { + StringBuffer sb = new StringBuffer(); + sb.append("tell application \""); + sb.append("Terminal"); + sb.append("\" to do script \"cd "); + sb.append(path.getAbsolutePath().replaceAll(" ", "\\ ")); + sb.append("\""); + + try + { + performOSAScript(sb); + } + catch (IOException e) + { + Logger.log(new LogAlert(LogAlert.UNREPEATABLE, LogAlert.AT_ERROR, e + .getMessage())); + } + } + else + { + if (Logger.isEnabled()) + Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING, "Cannot find " + + path.getName())); + } + } + + // Internal utility methods + + /** + * Compiles a new AppleScript instance and runs it + * @param cmd AppleScript command to execute; do not surround command with extra quotation marks + * @return Output of the script + * @throws IOException If the script failed to execute + */ + protected static String performOSAScript(CharSequence cmd) throws IOException + { + return performOSAScript(new CharSequence[]{cmd}); + } + + /** + * Compiles a new AppleScript instance and runs it + * @param cmds AppleScript Sequence of commands to execute; do not surround command with extra quotation marks + * @return Output of the script + * @throws IOException If the script failed to execute + */ + protected static String performOSAScript(CharSequence[] cmds) throws IOException + { + long start = System.currentTimeMillis(); + Debug.outNoStack("Executing OSAScript: "); + for (int i = 0; i < cmds.length; i++) + { + Debug.outNoStack("\t" + cmds[i]); + } + + String[] cmdargs = new String[2 * cmds.length + 1]; + cmdargs[0] = "osascript"; + for (int i = 0; i < cmds.length; i++) + { + cmdargs[i * 2 + 1] = "-e"; + cmdargs[i * 2 + 2] = String.valueOf(cmds[i]); + } + + Process osaProcess = performRuntimeExec(cmdargs); + BufferedReader reader = new BufferedReader(new InputStreamReader(osaProcess.getInputStream())); + String line = reader.readLine(); + reader.close(); + Debug.outNoStack("OSAScript Output: " + line); + + reader = new BufferedReader(new InputStreamReader(osaProcess.getErrorStream())); + String errorMsg = reader.readLine(); + reader.close(); + + Debug.outNoStack("OSAScript Error (if any): " + errorMsg); + + Debug.outNoStack(MessageFormat.format("OSAScript execution ended ({0}ms)", new Object[]{String.valueOf(System.currentTimeMillis() - start)})); + + if (errorMsg != null) + { + throw new IOException(errorMsg); + } + + return line; + } + + /** + * Compiles a new AppleScript instance and runs it + * @param script AppleScript file (.scpt) to execute + * @return Output of the script + * @throws IOException If the script failed to execute + */ + protected static String performOSAScript(File script) throws IOException + { + long start = System.currentTimeMillis(); + Debug.outNoStack("Executing OSAScript from file: " + script.getPath()); + + Process osaProcess = performRuntimeExec(new String[]{"osascript", script.getPath()}); + BufferedReader reader = new BufferedReader(new InputStreamReader(osaProcess.getInputStream())); + String line = reader.readLine(); + reader.close(); + Debug.outNoStack("OSAScript Output: " + line); + + reader = new BufferedReader(new InputStreamReader(osaProcess.getErrorStream())); + String errorMsg = reader.readLine(); + reader.close(); + + Debug.outNoStack("OSAScript Error (if any): " + errorMsg); + + Debug.outNoStack(MessageFormat.format("OSAScript execution ended ({0}ms)", new Object[]{String.valueOf(System.currentTimeMillis() - start)})); + + if (errorMsg != null) + { + throw new IOException(errorMsg); + } + + return line; + } + + /** + * Compiles a new AppleScript instance to the specified location + * @param cmd Command to compile; do not surround command with extra quotation marks + * @param destination Destination location of the AppleScript file + * @return True if compiled successfully + */ + protected static boolean compileOSAScript(CharSequence cmd, File destination) + { + return compileOSAScript(new CharSequence[]{cmd}, destination); + } + + /** + * Compiles a new AppleScript instance to the specified location + * @param cmds Sequence of commands to compile; do not surround command with extra quotation marks + * @param destination Destination location of the AppleScript file + * @return True if compiled successfully + */ + protected static boolean compileOSAScript(CharSequence[] cmds, File destination) + { + long start = System.currentTimeMillis(); + Debug.outNoStack("Compiling OSAScript: " + destination.getPath()); + for (int i = 0; i < cmds.length; i++) + { + Debug.outNoStack("\t" + cmds[i]); + } + + String[] cmdargs = new String[2 * cmds.length + 3]; + cmdargs[0] = "osacompile"; + for (int i = 0; i < cmds.length; i++) + { + cmdargs[i * 2 + 1] = "-e"; + cmdargs[i * 2 + 2] = String.valueOf(cmds[i]); + } + + cmdargs[cmdargs.length - 2] = "-o"; + cmdargs[cmdargs.length - 1] = destination.getPath(); + + String errorMsg; + try + { + Process osaProcess = performRuntimeExec(cmdargs); + + BufferedReader reader = new BufferedReader(new InputStreamReader(osaProcess.getErrorStream())); + errorMsg = reader.readLine(); + reader.close(); + } + catch (IOException e) + { + Debug.outNoStack("OSACompile Execution Failed: " + e.getMessage()); + Debug.printStackTrace(e); + return false; + } + + Debug.outNoStack("OSACompile Error (if any): " + errorMsg); + + Debug.outNoStack(MessageFormat.format("OSACompile execution ended ({0}ms)", new Object[]{String.valueOf(System.currentTimeMillis() - start)})); + + return (errorMsg == null); + } + + /** + * @see Runtime#exec(String[]) + */ + protected static Process performRuntimeExec(String[] cmdargs) throws IOException + { + try + { + return Runtime.getRuntime().exec(cmdargs); + } + catch (IOException e) + { + Logger.log(new LogAlert(LogAlert.UNREPEATABLE, e.getMessage(), e)); + throw e; + } + } + + /** + *

    Gets the preferred file browser name

    + *

    Currently supported browsers are Path Finder and Finder. If Path Finder is currently running + * (not just installed), then "Path Finder is returned; else, "Finder" is returned.

    + * @return "Path Finder" if it is currently running; else "Finder" + */ + private static String getFileBrowserName() + { + try + { + // slowwwwwwww + if ("true".equalsIgnoreCase(performOSAScript("tell application \"System Events\" to exists process \"Path Finder\""))) + { + Debug.outNoStack("Path Finder is running"); + + return "Path Finder"; + } + else + { + return "Finder"; + } + } + catch (IOException e) + { + Debug.printStackTrace(e); + Logger.log(new LogEvent(LOGID, e.getMessage(), e)); + + return "Finder"; + } + } + + public boolean + testNativeAvailability( + String name ) + + throws PlatformManagerException + { + throw new PlatformManagerException("Unsupported capability called on platform manager"); + } + + public void + addListener( + PlatformManagerListener listener ) + { + } + + public void + removeListener( + PlatformManagerListener listener ) + { + } +} Added: external/Pygments-0.9/tests/examplefiles/test.jsp ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/test.jsp Tue Oct 23 20:20:22 2007 @@ -0,0 +1,24 @@ + +<%= var x = 1; +%> +<%! int i = 0; %> +<%! int a, b, c; %> +<%! Circle a = new Circle(2.0); %> + +<% + String name = null; + if (request.getParameter("name") == null) { +%> +<%@ include file="error.html" %> +<% + } else { + foo.setName(request.getParameter("name")); + if (foo.getName().equalsIgnoreCase("integra")) + name = "acura"; + if (name.equalsIgnoreCase( "acura" )) { +%> + + +

    +Calendar of +

    Added: external/Pygments-0.9/tests/examplefiles/test.moo ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/test.moo Tue Oct 23 20:20:22 2007 @@ -0,0 +1,51 @@ +you_lose_msg = "Either that person does not exist, or has a different password."; +if (!(caller in {#0, this})) + return E_PERM; + "...caller isn't :do_login_command..."; +elseif (args && (args[1] == "test")) + return this:test(@listdelete(args, 1)); +elseif (!(length(args) in {1, 2})) + notify(player, tostr("Usage: ", verb, " ")); +elseif (!valid(candidate = this:_match_player(name = strsub(args[1], " ", "_")))) + if (name == "guest") + "must be no guests"; + this:notify_lines(this:registration_text("guest")); + else + notify(player, you_lose_msg); + endif + "...unknown player..."; +elseif (is_clear_property(candidate, "password") || ((typeof(candidate.password) == STR) && ((length(candidate.password) < 2) || (crypt({@args, ""}[2], candidate.password) != candidate.password)))) + notify(player, you_lose_msg); + "...bad password..."; + server_log(tostr("FAILED CONNECT: ", args[1], " (", candidate, ") on ", connection_name(player), ($string_utils:connection_hostname(connection_name(player)) in candidate.all_connect_places) ? "" | "******")); +elseif (((candidate.name == "guest") && this.sitematch_guests) && valid(foreigner = $country_db:get_guest())) + notify(player, tostr("Okay,... Logging you in as `", foreigner:name(), "'")); + this:record_connection(foreigner); + return foreigner; +elseif ((parent(candidate) == $guest) && (!valid(candidate = candidate:defer()))) + if (candidate == #-3) + notify(player, "Sorry, guest characters are not allowed from your site right now."); + elseif (candidate == #-2) + this:notify_lines(this:registration_text("blacklisted", "Sorry, guest characters are not allowed from your site.")); + elseif (candidate == #-4) + this:notify_lines(this:registration_text("guest")); + else + notify(player, "Sorry, all of our guest characters are in use right now."); + endif +else + if ((!(name in candidate.aliases)) && (name != tostr(candidate))) + notify(player, tostr("Okay,... ", name, " is in use. Logging you in as `", candidate:name(), "'")); + endif + if (this:is_newted(candidate)) + notify(player, ""); + notify(player, this:newt_message_for(candidate)); + notify(player, ""); + else + this:record_connection(candidate); + if (verb[1] == "s") + candidate.use_do_command = 0; + endif + return candidate; + endif +endif +return 0; \ No newline at end of file Added: external/Pygments-0.9/tests/examplefiles/test.myt ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/test.myt Tue Oct 23 20:20:22 2007 @@ -0,0 +1,166 @@ +<%doc>formatting.myt - Provides section formatting elements, syntax-highlighted code blocks, and other special filters. + +<%global> + import string, re + import highlight + + +<%method section> +<%doc>Main section formatting element. +<%args> + toc + path + description=None + onepage=False + +<%init> + item = toc.get_by_path(path) + if item is None: + raise "path: " + path + + + + +
    + +<%python> + content = m.content() + re2 = re.compile(r"'''PYESC(.+?)PYESC'''", re.S) + content = re2.sub(lambda m: m.group(1), content) + + +% if item.depth > 1: +

    <% description or item.description %>

    +% + +
    + <% content %> +
    + +% if onepage or item.depth > 1: +% if (item.next and item.next.depth >= item.depth): + back to section top +% +% else: + back to section top + <& nav.myt:pagenav, item=item, onepage=onepage &> +% +
    + + + + +<%method formatplain> + <%filter> + import re + f = re.sub(r'\n[\s\t]*\n[\s\t]*', '

    \n

    ', f) + f = "

    " + f + "

    " + return f + +<% m.content() | h%> + + + + + +<%method codeline trim="both"> +<% m.content() %> + + +<%method code autoflush=False> +<%args> + title = None + syntaxtype = 'python' + html_escape = False + use_sliders = False + + +<%init> + def fix_indent(f): + f =string.expandtabs(f, 4) + g = '' + lines = string.split(f, "\n") + whitespace = None + for line in lines: + if whitespace is None: + match = re.match(r"^([ ]*).+", line) + if match is not None: + whitespace = match.group(1) + + if whitespace is not None: + line = re.sub(r"^%s" % whitespace, "", line) + + if whitespace is not None or re.search(r"\w", line) is not None: + g += (line + "\n") + + + return g.rstrip() + + p = re.compile(r'
    (.*?)
    ', re.S) + def hlight(match): + return "
    " + highlight.highlight(fix_indent(match.group(1)), html_escape = html_escape, syntaxtype = syntaxtype) + "
    " + content = p.sub(hlight, "
    " + m.content() + "
    ") + +
    "> +% if title is not None: +
    <% title %>
    +% +<% content %>
    + + + + + +<%method popboxlink trim="both"> + <%args> + name=None + show='show' + hide='hide' + + <%init> + if name is None: + name = m.attributes.setdefault('popbox_name', 0) + name += 1 + m.attributes['popbox_name'] = name + name = "popbox_" + repr(name) + +javascript:togglePopbox('<% name %>', '<% show %>', '<% hide %>') + + +<%method popbox trim="both"> +<%args> + name = None + class_ = None + +<%init> + if name is None: + name = 'popbox_' + repr(m.attributes['popbox_name']) + + + + +<%method poplink trim="both"> + <%args> + link='sql' + + <%init> + href = m.scomp('SELF:popboxlink') + + '''PYESC<& nav.myt:link, href=href, text=link, class_="codepoplink" &>PYESC''' + + +<%method codepopper trim="both"> + <%init> + c = m.content() + c = re.sub(r'\n', '
    \n', c.strip()) + +
    <&|SELF:popbox, class_="codepop" &><% c %>
    +
    +
    +<%method poppedcode trim="both">
    +	<%init>
    +		c = m.content()
    +		c = re.sub(r'\n', '
    \n', c.strip()) + +
    <% c %>
    +
    
    Added: external/Pygments-0.9/tests/examplefiles/test.pas
    ==============================================================================
    --- (empty file)
    +++ external/Pygments-0.9/tests/examplefiles/test.pas	Tue Oct 23 20:20:22 2007
    @@ -0,0 +1,743 @@
    +//
    +// Sourcecode from http://www.delphi-library.de/topic_47880.html
    +//
    +uses Windows, Messages;
    +
    +const
    +  FFM_INIT               = WM_USER + 1976;
    +  FFM_ONFILEFOUND        = WM_USER + 1974; // wParam: not used, lParam: Filename
    +  FFM_ONDIRFOUND         = WM_USER + 1975; // wParam: NumFolder, lParam: Directory
    +var
    +  CntFolders             : Cardinal = 0;
    +  NumFolder              : Cardinal = 0;
    +
    +
    +////////////////////////////////////////////////////////////////////////////////
    +//
    +//  FindAllFilesInit
    +//
    +//
    +procedure FindAllFilesInit; external;
    +label foo;
    +begin
    +  CntFolders := 0;
    +  NumFolder := 0;
    +foo:
    +  Blub;
    +  goto foo;
    +end;
    +
    +////////////////////////////////////////////////////////////////////////////////
    +//
    +//  CountFolders
    +//
    +//
    +procedure CountFolders(Handle: THandle; RootFolder: string; Recurse: Boolean = True);
    +var
    +  hFindFile              : THandle;
    +  wfd                    : TWin32FindData;
    +begin
    +  SendMessage(Handle, FFM_INIT, 0, 0);
    +  if RootFolder[length(RootFolder)] <> '\' then
    +    RootFolder := RootFolder + '\';
    +  ZeroMemory(@wfd, sizeof(wfd));
    +  wfd.dwFileAttributes := FILE_ATTRIBUTE_NORMAL;
    +  if Recurse then
    +  begin
    +    hFindFile := FindFirstFile(pointer(RootFolder + '*.*'), wfd);
    +    if hFindFile <> 0 then
    +    try
    +      repeat
    +        if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY then
    +        begin
    +          if (string(wfd.cFileName) <> '.') and (string(wfd.cFileName) <> '..') then
    +          begin
    +            CountFolders(Handle, RootFolder + wfd.cFileName, Recurse);
    +          end;
    +        end;
    +      until FindNextFile(hFindFile, wfd) = False;
    +      Inc(CntFolders);
    +    finally
    +      Windows.FindClose(hFindFile);
    +    end;
    +  end;
    +end;
    +
    +////////////////////////////////////////////////////////////////////////////////
    +//
    +//  FindAllFiles
    +//
    +procedure FindAllFiles(Handle: THandle; RootFolder: string; Mask: string; Recurse: Boolean = True);
    +var
    +  hFindFile              : THandle;
    +  wfd                    : TWin32FindData;
    +begin
    +  if RootFolder[length(RootFolder)] <> '\' then
    +    RootFolder := RootFolder + '\';
    +  ZeroMemory(@wfd, sizeof(wfd));
    +  wfd.dwFileAttributes := FILE_ATTRIBUTE_NORMAL;
    +  if Recurse then
    +  begin
    +    hFindFile := FindFirstFile(pointer(RootFolder + '*.*'), wfd);
    +    if hFindFile <> 0 then
    +    try
    +      repeat
    +        if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY then
    +        begin
    +          if (string(wfd.cFileName) <> '.') and (string(wfd.cFileName) <> '..') then
    +          begin
    +            FindAllFiles(Handle, RootFolder + wfd.cFileName, Mask, Recurse);
    +          end;
    +        end;
    +      until FindNextFile(hFindFile, wfd) = False;
    +      Inc(NumFolder);
    +      SendMessage(Handle, FFM_ONDIRFOUND, NumFolder, lParam(string(RootFolder)));
    +    finally
    +      Windows.FindClose(hFindFile);
    +    end;
    +  end;
    +  hFindFile := FindFirstFile(pointer(RootFolder + Mask), wfd);
    +  if hFindFile <> INVALID_HANDLE_VALUE then
    +  try
    +    repeat
    +      if (wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY <> FILE_ATTRIBUTE_DIRECTORY) then
    +      begin
    +        SendMessage(Handle, FFM_ONFILEFOUND, 0, lParam(string(RootFolder + wfd.cFileName)));
    +      end;
    +    until FindNextFile(hFindFile, wfd) = False;
    +  finally
    +    Windows.FindClose(hFindFile);
    +  end;
    +end;
    +
    +
    +property test: boolean read ftest write ftest;
    +procedure test: boolean read ftest write ftest;
    +
    +//
    +// This sourcecode is part of omorphia
    +//
    +
    +Function IsValidHandle(Const Handle: THandle): Boolean; {$IFDEF OMORPHIA_FEATURES_USEASM} Assembler;
    +Asm
    +    TEST    EAX, EAX
    +    JZ      @@Finish
    +    NOT     EAX
    +    TEST    EAX, EAX
    +    SETNZ   AL
    +
    +    {$IFDEF WINDOWS}
    +    JZ      @@Finish
    +
    +    //Save the handle against modifications or loss
    +    PUSH    EAX
    +
    +    //reserve some space for a later duplicate
    +    PUSH    EAX
    +
    +    //Check if we are working on NT-Platform
    +    CALL    IsWindowsNTSystem
    +    TEST    EAX, EAX
    +    JZ      @@NoNTSystem
    +
    +    PUSH    DWORD PTR [ESP]
    +    LEA     EAX, DWORD PTR [ESP+$04]
    +    PUSH    EAX
    +    CALL    GetHandleInformation
    +    TEST    EAX, EAX
    +    JNZ     @@Finish2
    +
    +@@NoNTSystem:
    +    //Result := DuplicateHandle(GetCurrentProcess, Handle, GetCurrentProcess,
    +    //  @Duplicate, 0, False, DUPLICATE_SAME_ACCESS);
    +    PUSH    DUPLICATE_SAME_ACCESS
    +    PUSH    $00000000
    +    PUSH    $00000000
    +    LEA     EAX, DWORD PTR [ESP+$0C]
    +    PUSH    EAX
    +    CALL    GetCurrentProcess
    +    PUSH    EAX
    +    PUSH    DWORD PTR [ESP+$18]
    +    PUSH    EAX
    +    CALL    DuplicateHandle
    +
    +    TEST    EAX, EAX
    +    JZ      @@Finish2
    +
    +    //  Result := CloseHandle(Duplicate);
    +    PUSH    DWORD PTR [ESP]
    +    CALL    CloseHandle
    +
    +@@Finish2:
    +    POP     EDX
    +    POP     EDX
    +
    +    PUSH    EAX
    +    PUSH    $00000000
    +    CALL    SetLastError
    +    POP     EAX
    +    {$ENDIF}
    +
    +@@Finish:
    +End;
    +{$ELSE}
    +Var
    +    Duplicate: THandle;
    +    Flags: DWORD;
    +Begin
    +    If IsWinNT Then
    +        Result := GetHandleInformation(Handle, Flags)
    +    Else
    +        Result := False;
    +    If Not Result Then
    +    Begin
    +        // DuplicateHandle is used as an additional check for those object types not
    +        // supported by GetHandleInformation (e.g. according to the documentation,
    +        // GetHandleInformation doesn't support window stations and desktop although
    +        // tests show that it does). GetHandleInformation is tried first because its
    +        // much faster. Additionally GetHandleInformation is only supported on NT...
    +        Result := DuplicateHandle(GetCurrentProcess, Handle, GetCurrentProcess,
    +            @Duplicate, 0, False, DUPLICATE_SAME_ACCESS);
    +        If Result Then
    +            Result := CloseHandle(Duplicate);
    +    End;
    +End;
    +{$ENDIF}
    +
    +
    +    	
    +
    +{*******************************************************}
    +{                                                       }
    +{       Delphi Supplemental Components                  }
    +{       ZLIB Data Compression Interface Unit            }
    +{                                                       }
    +{       Copyright (c) 1997 Borland International        }
    +{                                                       }
    +{*******************************************************}
    +
    +{ Modified for zlib 1.1.3 by Davide Moretti  Z_STREAM_END do
    +      begin
    +        P := OutBuf;
    +        Inc(OutBytes, 256);
    +        ReallocMem(OutBuf, OutBytes);
    +        strm.next_out := PChar(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
    +        strm.avail_out := 256;
    +      end;
    +    finally
    +      CCheck(deflateEnd(strm));
    +    end;
    +    ReallocMem(OutBuf, strm.total_out);
    +    OutBytes := strm.total_out;
    +  except
    +    FreeMem(OutBuf);
    +    raise
    +  end;
    +end;
    +
    +
    +procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer;
    +  OutEstimate: Integer; out OutBuf: Pointer; out OutBytes: Integer);
    +var
    +  strm: TZStreamRec;
    +  P: Pointer;
    +  BufInc: Integer;
    +begin
    +  FillChar(strm, sizeof(strm), 0);
    +  BufInc := (InBytes + 255) and not 255;
    +  if OutEstimate = 0 then
    +    OutBytes := BufInc
    +  else
    +    OutBytes := OutEstimate;
    +  GetMem(OutBuf, OutBytes);
    +  try
    +    strm.next_in := InBuf;
    +    strm.avail_in := InBytes;
    +    strm.next_out := OutBuf;
    +    strm.avail_out := OutBytes;
    +    DCheck(inflateInit_(strm, zlib_version, sizeof(strm)));
    +    try
    +      while DCheck(inflate(strm, Z_FINISH)) <> Z_STREAM_END do
    +      begin
    +        P := OutBuf;
    +        Inc(OutBytes, BufInc);
    +        ReallocMem(OutBuf, OutBytes);
    +        strm.next_out := PChar(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
    +        strm.avail_out := BufInc;
    +      end;
    +    finally
    +      DCheck(inflateEnd(strm));
    +    end;
    +    ReallocMem(OutBuf, strm.total_out);
    +    OutBytes := strm.total_out;
    +  except
    +    FreeMem(OutBuf);
    +    raise
    +  end;
    +end;
    +
    +
    +// TCustomZlibStream
    +
    +constructor TCustomZLibStream.Create(Strm: TStream);
    +begin
    +  inherited Create;
    +  FStrm := Strm;
    +  FStrmPos := Strm.Position;
    +end;
    +
    +procedure TCustomZLibStream.Progress(Sender: TObject);
    +begin
    +  if Assigned(FOnProgress) then FOnProgress(Sender);
    +end;
    +
    +
    +// TCompressionStream
    +
    +constructor TCompressionStream.Create(CompressionLevel: TCompressionLevel;
    +  Dest: TStream);
    +const
    +  Levels: array [TCompressionLevel] of ShortInt =
    +    (Z_NO_COMPRESSION, Z_BEST_SPEED, Z_DEFAULT_COMPRESSION, Z_BEST_COMPRESSION);
    +begin
    +  inherited Create(Dest);
    +  FZRec.next_out := FBuffer;
    +  FZRec.avail_out := sizeof(FBuffer);
    +  CCheck(deflateInit_(FZRec, Levels[CompressionLevel], zlib_version, sizeof(FZRec)));
    +end;
    +
    +destructor TCompressionStream.Destroy;
    +begin
    +  FZRec.next_in := nil;
    +  FZRec.avail_in := 0;
    +  try
    +    if FStrm.Position <> FStrmPos then FStrm.Position := FStrmPos;
    +    while (CCheck(deflate(FZRec, Z_FINISH)) <> Z_STREAM_END)
    +      and (FZRec.avail_out = 0) do
    +    begin
    +      FStrm.WriteBuffer(FBuffer, sizeof(FBuffer));
    +      FZRec.next_out := FBuffer;
    +      FZRec.avail_out := sizeof(FBuffer);
    +    end;
    +    if FZRec.avail_out < sizeof(FBuffer) then
    +      FStrm.WriteBuffer(FBuffer, sizeof(FBuffer) - FZRec.avail_out);
    +  finally
    +    deflateEnd(FZRec);
    +  end;
    +  inherited Destroy;
    +end;
    +
    +function TCompressionStream.Read(var Buffer; Count: Longint): Longint;
    +begin
    +  raise ECompressionError.Create('Invalid stream operation');
    +end;
    +
    +function TCompressionStream.Write(const Buffer; Count: Longint): Longint;
    +begin
    +  FZRec.next_in := @Buffer;
    +  FZRec.avail_in := Count;
    +  if FStrm.Position <> FStrmPos then FStrm.Position := FStrmPos;
    +  while (FZRec.avail_in > 0) do
    +  begin
    +    CCheck(deflate(FZRec, 0));
    +    if FZRec.avail_out = 0 then
    +    begin
    +      FStrm.WriteBuffer(FBuffer, sizeof(FBuffer));
    +      FZRec.next_out := FBuffer;
    +      FZRec.avail_out := sizeof(FBuffer);
    +      FStrmPos := FStrm.Position;
    +      Progress(Self);
    +    end;
    +  end;
    +  Result := Count;
    +end;
    +
    +function TCompressionStream.Seek(Offset: Longint; Origin: Word): Longint;
    +begin
    +  if (Offset = 0) and (Origin = soFromCurrent) then
    +    Result := FZRec.total_in
    +  else
    +    raise ECompressionError.Create('Invalid stream operation');
    +end;
    +
    +function TCompressionStream.GetCompressionRate: Single;
    +begin
    +  if FZRec.total_in = 0 then
    +    Result := 0
    +  else
    +    Result := (1.0 - (FZRec.total_out / FZRec.total_in)) * 100.0;
    +end;
    +
    +
    +// TDecompressionStream
    +
    +constructor TDecompressionStream.Create(Source: TStream);
    +begin
    +  inherited Create(Source);
    +  FZRec.next_in := FBuffer;
    +  FZRec.avail_in := 0;
    +  DCheck(inflateInit_(FZRec, zlib_version, sizeof(FZRec)));
    +end;
    +
    +destructor TDecompressionStream.Destroy;
    +begin
    +  inflateEnd(FZRec);
    +  inherited Destroy;
    +end;
    +
    +function TDecompressionStream.Read(var Buffer; Count: Longint): Longint;
    +begin
    +  FZRec.next_out := @Buffer;
    +  FZRec.avail_out := Count;
    +  if FStrm.Position <> FStrmPos then FStrm.Position := FStrmPos;
    +  while (FZRec.avail_out > 0) do
    +  begin
    +    if FZRec.avail_in = 0 then
    +    begin
    +      FZRec.avail_in := FStrm.Read(FBuffer, sizeof(FBuffer));
    +      if FZRec.avail_in = 0 then
    +        begin
    +          Result := Count - FZRec.avail_out;
    +          Exit;
    +        end;
    +      FZRec.next_in := FBuffer;
    +      FStrmPos := FStrm.Position;
    +      Progress(Self);
    +    end;
    +    DCheck(inflate(FZRec, 0));
    +  end;
    +  Result := Count;
    +end;
    +
    +function TDecompressionStream.Write(const Buffer; Count: Longint): Longint;
    +begin
    +  raise EDecompressionError.Create('Invalid stream operation');
    +end;
    +
    +function TDecompressionStream.Seek(Offset: Longint; Origin: Word): Longint;
    +var
    +  I: Integer;
    +  Buf: array [0..4095] of Char;
    +begin
    +  if (Offset = 0) and (Origin = soFromBeginning) then
    +  begin
    +    DCheck(inflateReset(FZRec));
    +    FZRec.next_in := FBuffer;
    +    FZRec.avail_in := 0;
    +    FStrm.Position := 0;
    +    FStrmPos := 0;
    +  end
    +  else if ( (Offset >= 0) and (Origin = soFromCurrent)) or
    +          ( ((Offset - FZRec.total_out) > 0) and (Origin = soFromBeginning)) then
    +  begin
    +    if Origin = soFromBeginning then Dec(Offset, FZRec.total_out);
    +    if Offset > 0 then
    +    begin
    +      for I := 1 to Offset div sizeof(Buf) do
    +        ReadBuffer(Buf, sizeof(Buf));
    +      ReadBuffer(Buf, Offset mod sizeof(Buf));
    +    end;
    +  end
    +  else
    +    raise EDecompressionError.Create('Invalid stream operation');
    +  Result := FZRec.total_out;
    +end;
    +
    +end.
    
    Added: external/Pygments-0.9/tests/examplefiles/test.php
    ==============================================================================
    --- (empty file)
    +++ external/Pygments-0.9/tests/examplefiles/test.php	Tue Oct 23 20:20:22 2007
    @@ -0,0 +1,498 @@
    +
    + *  @copyright   Copyright (c) 2006, Manni
    + *  @version     1.0
    + *  @link        http://www.pkware.com/business_and_developers/developer/popups/appnote.txt
    + *  @link        http://mannithedark.is-a-geek.net/
    + *  @since       1.0
    + *  @package     fnord.bb
    + *  @subpackage  archive
    + */
    +class Zip extends Archive {
    + /**
    +  *  Outputs the zip file
    +  *
    +  *  This function creates the zip file with the dirs and files given.
    +  *  If the optional parameter $file is given, the zip file is will be
    +  *  saved at that location. Otherwise the function returns the zip file's content.
    +  *
    +  *  @access                   public
    +  *
    +  *  @link                     http://www.pkware.com/business_and_developers/developer/popups/appnote.txt
    +  *  @param  string $filename  The path where the zip file will be saved
    +  *
    +  *  @return bool|string       Returns either true if the fil is sucessfully created or the content of the zip file
    +  */
    +  function out($filename = false) {
    +    // Empty output
    +    $file_data = array(); // Data of the file part
    +    $cd_data   = array(); // Data of the central directory
    +
    +    // Sort dirs and files by path length
    +    uksort($this->dirs,  'sort_by_length');
    +    uksort($this->files, 'sort_by_length');
    +
    +    // Handle dirs
    +    foreach($this->dirs as $dir) {
    +      $dir .= '/';
    +      // File part
    +
    +      // Reset dir data
    +      $dir_data = '';
    +
    +      // Local file header
    +      $dir_data .= "\x50\x4b\x03\x04";      // Local file header signature
    +      $dir_data .= pack("v", 10);           // Version needed to extract
    +      $dir_data .= pack("v", 0);            // General purpose bit flag
    +      $dir_data .= pack("v", 0);            // Compression method
    +      $dir_data .= pack("v", 0);            // Last mod file time
    +      $dir_data .= pack("v", 0);            // Last mod file date
    +      $dir_data .= pack("V", 0);            // crc-32
    +      $dir_data .= pack("V", 0);            // Compressed size
    +      $dir_data .= pack("V", 0);            // Uncompressed size
    +      $dir_data .= pack("v", strlen($dir)); // File name length
    +      $dir_data .= pack("v", 0);            // Extra field length
    +
    +      $dir_data .= $dir;                    // File name
    +      $dir_data .= '';                      // Extra field (is empty)
    +
    +      // File data
    +      $dir_data .= '';                      // Dirs have no file data
    +
    +      // Data descriptor
    +      $dir_data .= pack("V", 0);            // crc-32
    +      $dir_data .= pack("V", 0);            // Compressed size
    +      $dir_data .= pack("V", 0);            // Uncompressed size
    +
    +      // Save current offset
    +      $offset = strlen(implode('', $file_data));
    +
    +      // Append dir data to the file part
    +      $file_data[] = $dir_data;
    +
    +      // Central directory
    +
    +      // Reset dir data
    +      $dir_data = '';
    +
    +      // File header
    +      $dir_data .= "\x50\x4b\x01\x02";      // Local file header signature
    +      $dir_data .= pack("v", 0);            // Version made by
    +      $dir_data .= pack("v", 10);           // Version needed to extract
    +      $dir_data .= pack("v", 0);            // General purpose bit flag
    +      $dir_data .= pack("v", 0);            // Compression method
    +      $dir_data .= pack("v", 0);            // Last mod file time
    +      $dir_data .= pack("v", 0);            // Last mod file date
    +      $dir_data .= pack("V", 0);            // crc-32
    +      $dir_data .= pack("V", 0);            // Compressed size
    +      $dir_data .= pack("V", 0);            // Uncompressed size
    +      $dir_data .= pack("v", strlen($dir)); // File name length
    +      $dir_data .= pack("v", 0);            // Extra field length
    +      $dir_data .= pack("v", 0);            // File comment length
    +      $dir_data .= pack("v", 0);            // Disk number start
    +      $dir_data .= pack("v", 0);            // Internal file attributes
    +      $dir_data .= pack("V", 16);           // External file attributes
    +      $dir_data .= pack("V", $offset);      // Relative offset of local header
    +
    +      $dir_data .= $dir;                    // File name
    +      $dir_data .= '';                      // Extra field (is empty)
    +      $dir_data .= '';                      // File comment (is empty)
    +
    +      /*
    +      // Data descriptor
    +      $dir_data .= pack("V", 0);            // crc-32
    +      $dir_data .= pack("V", 0);            // Compressed size
    +      $dir_data .= pack("V", 0);            // Uncompressed size
    +      */
    +      
    +      // Append dir data to the central directory data
    +      $cd_data[] = $dir_data;
    +    }
    +
    +    // Handle files
    +    foreach($this->files as $name => $file) {
    +      // Get values
    +      $content = $file[0];
    +    
    +      // File part
    +
    +      // Reset file data
    +      $fd = '';
    +      
    +      // Detect possible compressions
    +      // Use deflate
    +      if(function_exists('gzdeflate')) {
    +        $method = 8;
    +
    +        // Compress file content
    +        $compressed_data = gzdeflate($content);
    +
    +      // Use bzip2
    +      } elseif(function_exists('bzcompress')) {
    +        $method = 12;
    +
    +        // Compress file content
    +        $compressed_data = bzcompress($content);
    +
    +      // No compression
    +      } else {
    +        $method = 0;
    +
    +        // Do not compress the content :P
    +        $compressed_data = $content;
    +      }
    +
    +      // Local file header
    +      $fd .= "\x50\x4b\x03\x04";                  // Local file header signature
    +      $fd .= pack("v", 20);                       // Version needed to extract
    +      $fd .= pack("v", 0);                        // General purpose bit flag
    +      $fd .= pack("v", $method);                  // Compression method
    +      $fd .= pack("v", 0);                        // Last mod file time
    +      $fd .= pack("v", 0);                        // Last mod file date
    +      $fd .= pack("V", crc32($content));          // crc-32
    +      $fd .= pack("V", strlen($compressed_data)); // Compressed size
    +      $fd .= pack("V", strlen($content));         // Uncompressed size
    +      $fd .= pack("v", strlen($name));            // File name length
    +      $fd .= pack("v", 0);                        // Extra field length
    +
    +      $fd .= $name;                               // File name
    +      $fd .= '';                                  // Extra field (is empty)
    +
    +      // File data
    +      $fd .= $compressed_data;
    +      
    +      // Data descriptor
    +      $fd .= pack("V", crc32($content));          // crc-32
    +      $fd .= pack("V", strlen($compressed_data)); // Compressed size
    +      $fd .= pack("V", strlen($content));         // Uncompressed size
    +
    +      // Save current offset
    +      $offset = strlen(implode('', $file_data));
    +
    +      // Append file data to the file part
    +      $file_data[] = $fd;
    +
    +      // Central directory
    +
    +      // Reset file data
    +      $fd = '';
    +
    +      // File header
    +      $fd .= "\x50\x4b\x01\x02";                  // Local file header signature
    +      $fd .= pack("v", 0);                        // Version made by
    +      $fd .= pack("v", 20);                       // Version needed to extract
    +      $fd .= pack("v", 0);                        // General purpose bit flag
    +      $fd .= pack("v", $method);                  // Compression method
    +      $fd .= pack("v", 0);                        // Last mod file time
    +      $fd .= pack("v", 0);                        // Last mod file date
    +      $fd .= pack("V", crc32($content));          // crc-32
    +      $fd .= pack("V", strlen($compressed_data)); // Compressed size
    +      $fd .= pack("V", strlen($content));         // Uncompressed size
    +      $fd .= pack("v", strlen($name));            // File name length
    +      $fd .= pack("v", 0);                        // Extra field length
    +      $fd .= pack("v", 0);                        // File comment length
    +      $fd .= pack("v", 0);                        // Disk number start
    +      $fd .= pack("v", 0);                        // Internal file attributes
    +      $fd .= pack("V", 32);                       // External file attributes
    +      $fd .= pack("V", $offset);                  // Relative offset of local header
    +
    +      $fd .= $name;                               // File name
    +      $fd .= '';                                  // Extra field (is empty)
    +      $fd .= '';                                  // File comment (is empty)
    +
    +      /*
    +      // Data descriptor
    +      $fd .= pack("V", crc32($content));          // crc-32
    +      $fd .= pack("V", strlen($compressed_data)); // Compressed size
    +      $fd .= pack("V", strlen($content));         // Uncompressed size
    +      */
    +
    +      // Append file data to the central directory data
    +      $cd_data[] = $fd;
    +    }
    +
    +    // Digital signature
    +    $digital_signature = '';
    +    $digital_signature .= "\x50\x4b\x05\x05";  // Header signature
    +    $digital_signature .= pack("v", 0);        // Size of data
    +    $digital_signature .= '';                  // Signature data (is empty)
    +
    +    $tmp_file_data = implode('', $file_data);  // File data
    +    $tmp_cd_data   = implode('', $cd_data).    // Central directory
    +                     $digital_signature;       // Digital signature
    +
    +    // End of central directory
    +    $eof_cd = '';
    +    $eof_cd .= "\x50\x4b\x05\x06";                // End of central dir signature
    +    $eof_cd .= pack("v", 0);                      // Number of this disk
    +    $eof_cd .= pack("v", 0);                      // Number of the disk with the start of the central directory
    +    $eof_cd .= pack("v", count($cd_data));        // Total number of entries in the central directory on this disk
    +    $eof_cd .= pack("v", count($cd_data));        // Total number of entries in the central directory
    +    $eof_cd .= pack("V", strlen($tmp_cd_data));   // Size of the central directory
    +    $eof_cd .= pack("V", strlen($tmp_file_data)); // Offset of start of central directory with respect to the starting disk number
    +    $eof_cd .= pack("v", 0);                      // .ZIP file comment length
    +    $eof_cd .= '';                                // .ZIP file comment (is empty)
    +
    +    // Content of the zip file
    +    $data = $tmp_file_data.
    +            // $extra_data_record.
    +            $tmp_cd_data.
    +            $eof_cd;
    +
    +    // Return content?
    +    if(!$filename)
    +      return $data;
    +      
    +    // Write to file
    +    return file_put_contents($filename, $data);
    +  }
    +  
    + /**
    +  *  Load a zip file
    +  *
    +  *  This function loads the files and dirs from a zip file from the harddrive.
    +  *
    +  *  @access                public
    +  *
    +  *  @param  string $file   The path to the zip file
    +  *  @param  bool   $reset  Reset the files and dirs before adding the zip file's content?
    +  *
    +  *  @return bool           Returns true if the file was loaded sucessfully
    +  */
    +  function load_file($file, $reset = true) {
    +    // Check whether the file exists
    +    if(!file_exists($file))
    +      return false;
    +
    +    // Load the files content
    +    $content = @file_get_contents($file);
    +
    +    // Return false if the file cannot be opened
    +    if(!$content)
    +      return false;
    +
    +    // Read the zip
    +    return $this->load_string($content, $reset);
    +  }
    +  
    + /**
    +  *  Load a zip string
    +  *
    +  *  This function loads the files and dirs from a string
    +  *
    +  *  @access                 public
    +  *
    +  *  @param  string $string  The string the zip is generated from
    +  *  @param  bool   $reset   Reset the files and dirs before adding the zip file's content?
    +  *
    +  *  @return bool            Returns true if the string was loaded sucessfully
    +  */
    +  function load_string($string, $reset = true) {
    +    // Reset the zip?
    +    if($reset) {
    +      $this->dirs  = array();
    +      $this->files = array();
    +    }
    +
    +    // Get the starting position of the end of central directory record
    +    $start = strpos($string, "\x50\x4b\x05\x06");
    +
    +    // Error
    +    if($start === false)
    +      die('Could not find the end of central directory record');
    +
    +    // Get the ecdr
    +    $eof_cd = substr($string, $start+4, 18);
    +
    +    // Unpack the ecdr infos
    +    $eof_cd = unpack('vdisc1/'.
    +                     'vdisc2/'.
    +                     'ventries1/'.
    +                     'ventries2/'.
    +                     'Vsize/'.
    +                     'Voffset/'.
    +                     'vcomment_lenght', $eof_cd);
    +
    +    // Do not allow multi disc zips
    +    if($eof_cd['disc1'] != 0)
    +      die('multi disk stuff is not yet implemented :/');
    +
    +    // Save the interesting values
    +    $cd_entries = $eof_cd['entries1'];
    +    $cd_size    = $eof_cd['size'];
    +    $cd_offset  = $eof_cd['offset'];
    +
    +    // Get the central directory record
    +    $cdr = substr($string, $cd_offset, $cd_size);
    +
    +    // Reset the position and the list of the entries
    +    $pos     = 0;
    +    $entries = array();
    +
    +    // Handle cdr
    +    while($pos < strlen($cdr)) {
    +      // Check header signature
    +      // Digital signature
    +      if(substr($cdr, $pos, 4) == "\x50\x4b\x05\x05") {
    +        // Get digital signature size
    +        $tmp_info = unpack('vsize', substr($cdr, $pos + 4, 2));
    +
    +        // Read out the digital signature
    +        $digital_sig = substr($header, $pos + 6, $tmp_info['size']);
    +
    +        break;
    +      }
    +
    +      // Get file header
    +      $header = substr($cdr, $pos, 46);
    +
    +      // Unpack the header information
    +      $header_info = @unpack('Vheader/'.
    +                             'vversion_made_by/'.
    +                             'vversion_needed/'.
    +                             'vgeneral_purpose/'.
    +                             'vcompression_method/'.
    +                             'vlast_mod_time/'.
    +                             'vlast_mod_date/'.
    +                             'Vcrc32/'.
    +                             'Vcompressed_size/'.
    +                             'Vuncompressed_size/'.
    +                             'vname_length/'.
    +                             'vextra_length/'.
    +                             'vcomment_length/'.
    +                             'vdisk_number/'.
    +                             'vinternal_attributes/'.
    +                             'Vexternal_attributes/'.
    +                             'Voffset',
    +                             $header);
    +
    +      // Valid header?
    +      if($header_info['header'] != 33639248)
    +        return false;
    +
    +      // New position
    +      $pos += 46;
    +
    +      // Read out the file name
    +      $header_info['name'] = substr($cdr, $pos, $header_info['name_length']);
    +
    +      // New position
    +      $pos += $header_info['name_length'];
    +
    +      // Read out the extra stuff
    +      $header_info['extra'] = substr($cdr, $pos, $header_info['extra_length']);
    +
    +      // New position
    +      $pos += $header_info['extra_length'];
    +
    +      // Read out the comment
    +      $header_info['comment'] = substr($cdr, $pos, $header_info['comment_length']);
    +
    +      // New position
    +      $pos += $header_info['comment_length'];
    +
    +      // Append this file/dir to the entry list
    +      $entries[] = $header_info;
    +    }
    +
    +    // Check whether all entries where read sucessfully
    +    if(count($entries) != $cd_entries)
    +      return false;
    +
    +    // Handle files/dirs
    +    foreach($entries as $entry) {
    +      // Is a dir?
    +      if($entry['external_attributes'] & 16) {
    +        $this->add_dir($entry['name']);
    +        continue;
    +      }
    +
    +      // Get local file header
    +      $header = substr($string, $entry['offset'], 30);
    +
    +      // Unpack the header information
    +      $header_info = @unpack('Vheader/'.
    +                             'vversion_needed/'.
    +                             'vgeneral_purpose/'.
    +                             'vcompression_method/'.
    +                             'vlast_mod_time/'.
    +                             'vlast_mod_date/'.
    +                             'Vcrc32/'.
    +                             'Vcompressed_size/'.
    +                             'Vuncompressed_size/'.
    +                             'vname_length/'.
    +                             'vextra_length',
    +                             $header);
    +
    +      // Valid header?
    +      if($header_info['header'] != 67324752)
    +        return false;
    +
    +      // Get content start position
    +      $start = $entry['offset'] + 30 + $header_info['name_length'] + $header_info['extra_length'];
    +
    +      // Get the compressed data
    +      $data = substr($string, $start, $header_info['compressed_size']);
    +
    +      // Detect compression type
    +      switch($header_info['compression_method']) {
    +        // No compression
    +        case 0:
    +          // Ne decompression needed
    +          $content = $data;
    +          break;
    +
    +        // Gzip
    +        case 8:
    +          if(!function_exists('gzinflate'))
    +            return false;
    +
    +          // Uncompress data
    +          $content = gzinflate($data);
    +          break;
    +
    +        // Bzip2
    +        case 12:
    +          if(!function_exists('bzdecompress'))
    +            return false;
    +
    +          // Decompress data
    +          $content = bzdecompress($data);
    +          break;
    +
    +        // Compression not supported -> error
    +        default:
    +          return false;
    +      }
    +
    +      // Try to add file
    +      if(!$this->add_file($entry['name'], $content))
    +        return false;
    +    }
    +
    +    return true;
    +  }
    +}
    +
    +function &byref() {
    +    $x = array();
    +    return $x;
    +}
    +?>
    
    Added: external/Pygments-0.9/tests/examplefiles/test.rb
    ==============================================================================
    --- (empty file)
    +++ external/Pygments-0.9/tests/examplefiles/test.rb	Tue Oct 23 20:20:22 2007
    @@ -0,0 +1,174 @@
    +a.each{|el|anz[el]=anz[el]?anz[el]+1:1}
    +while x<10000
    +#a bis f dienen dazu die Nachbarschaft festzulegen. Man stelle sich die #Zahl von 1 bis 64 im Bin??rcode vor 1 bedeutet an 0 aus
    +  b=(p[x]%32)/16<1 ? 0 : 1
    +
    +  (x-102>=0? n[x-102].to_i : 0)*a+(x-101>=0?n[x-101].to_i : 0)*e+n[x-100].to_i+(x-99>=0? n[x-99].to_i : 0)*f+(x-98>=0? n[x-98].to_i : 0)*a+
    +  n[x+199].to_i*b+n[x+200].to_i*d+n[x+201].to_i*b
    +
    +#und die Ausgabe folgt
    +g=%w{}
    +x=0
    +
    +while x<100
    + puts"#{g[x]}"
    + x+=1
    +end
    +
    +puts""
    +sleep(10)
    +
    +1E1E1
    +puts 30.send(:/, 5) # prints 6
    +
    +# fun with class attributes
    +class Foo
    +  def self.blub x
    +    if not x.nil?
    +      self.new
    +    end
    +  end
    +  def another_way_to_get_class
    +    self.class
    +  end
    +end
    +
    +# ruby 1.9 "call operator"
    +a = Proc.new { 42 }
    +a.()
    +
    +"instance variables can be #@included, #@@class_variables\n and #$globals as well."
    +`instance variables can be #@included, #@@class_variables\n and #$globals as well.`
    +'instance variables can be #@included, #@@class_variables\n and #$globals as well.'
    +/instance variables can be #@included, #@@class_variables\n and #$globals as well./mousenix
    +:"instance variables can be #@included, #@@class_variables\n and #$globals as well."
    +:'instance variables can be #@included, #@@class_variables\n and #$globals as well.'
    +%'instance variables can be #@included, #@@class_variables\n and #$globals as well.'
    +%q'instance variables can be #@included, #@@class_variables\n and #$globals as well.'
    +%Q'instance variables can be #@included, #@@class_variables\n and #$globals as well.'
    +%w'instance variables can be #@included, #@@class_variables\n and #$globals as well.'
    +%W'instance variables can be #@included, #@@class_variables\n and #$globals as well.'
    +%s'instance variables can be #@included, #@@class_variables\n and #$globals as well.'
    +%r'instance variables can be #@included, #@@class_variables\n and #$globals as well.'
    +%x'instance variables can be #@included, #@@class_variables\n and #$globals as well.'
    +
    +#%W[ but #@0illegal_values look strange.]
    +
    +%s#ruby allows strange#{constructs}
    +%s#ruby allows strange#$constructs
    +%s#ruby allows strange#@@constructs
    +
    +##################################################################
    +# HEREDOCS
    +foo(<<-A, <<-B)
    +this is the text of a
    +A
    +and this is the text of b
    +B
    +
    +a = <<"EOF"
    +This is a multiline #$here document
    +terminated by EOF on a line by itself
    +EOF
    +
    +a = <<'EOF'
    +This is a multiline #$here document
    +terminated by EOF on a line by itself
    +EOF
    +
    +b=(p[x] %32)/16<1 ? 0 : 1
    +
    +<<""
    +#{test}
    +#@bla
    +#die suppe!!!
    +\xfffff
    +
    +
    +super <<-EOE % [
    +    foo
    +EOE
    +
    +< [1, 2, 3, 4, 5, 6]
    +p [1,2,3].`(:concat, [4,5,6]) # => [1, 2, 3, 4, 5, 6]
    +p "Hurra! ".`(:*, 3) # => "Hurra! Hurra! Hurra! "
    +p "Hurra! ".`('*', 3) # => "Hurra! Hurra! Hurra! "
    +# Leider geht nicht die Wunschform
    +# [1,2,3] `concat` [4,5,6]
    +
    +class Object
    +  @@infixops = []
    +  alias :xeq :`
    +  def addinfix(operator)
    +    @@infixops << operator
    +  end
    +  def `(expression)
    +    @@infixops.each{|op|break if expression.match(/^(.*?) (#{op}) (.*)$/)}
    +    raise "unknown infix operator in expression: #{expression}" if $2 == nil
    +    eval($1).method($2.to_sym).call(eval($3))
    +  end
    +end
    +addinfix("concat")
    +p `[1,2,3] concat [4,5,6]` # => [1, 2, 3, 4, 5, 6]
    +
    +
    +# HEREDOC FUN!!!!!!!1111
    +foo(<
    + <% rows.each do |row| %>
    +  
    +   <%= item.title %>
    +   <%= item.description %>
    +  
    + <% end %>
    +
    +
    +
    +

    Pages

    + + + + + + + + + + +<% if @homepage -%> +<%= render_node @homepage -%> +<% else -%> + + + +<% end -%> + +
    PageStatusModify
    No Pages
    + +
    +

    +<% unless @homepage -%> + <%= link_to image_tag('new-homepage', :alt => 'New Homepage'), homepage_new_url %> +<% end -%> + <%= image_submit_tag 'clear-page-cache' %> +

    +
    Added: external/Pygments-0.9/tests/examplefiles/type.lisp ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/examplefiles/type.lisp Tue Oct 23 20:20:22 2007 @@ -0,0 +1,1202 @@ +;;;; TYPEP und Verwandtes +;;;; Michael Stoll, 21. 10. 1988 +;;;; Bruno Haible, 10.6.1989 +;;;; Sam Steingold 2000-2005 + +;;; Datenstrukturen f??r TYPEP: +;;; - Ein Type-Specifier-Symbol hat auf seiner Propertyliste unter dem +;;; Indikator SYS::TYPE-SYMBOL eine Funktion von einem Argument, die +;;; testet, ob ein Objekt vom richtigen Typ ist. +;;; - Ein Symbol, das eine Type-Specifier-Liste beginnen kann, hat auf seiner +;;; Propertyliste unter dem Indikator SYS::TYPE-LIST eine Funktion von +;;; einem Argument f??r das zu testende Objekt und zus??tzlichen Argumenten +;;; f??r die Listenelemente. +;;; - Ein Symbol, das als Typmacro definiert wurde, hat auf seiner Property- +;;; liste unter dem Indikator SYSTEM::DEFTYPE-EXPANDER den zugeh??rigen +;;; Expander: eine Funktion, die den zu expandierenden Type-Specifier (eine +;;; mindestens einelementige Liste) als Argument bekommt. + +(in-package "EXT") +(export '(type-expand)) +(in-package "SYSTEM") + +; vorl??ufig, solange bis clos.lisp geladen wird: +(eval-when (eval) + (predefun clos::built-in-class-p (object) (declare (ignore object)) nil)) +(unless (fboundp 'clos::class-name) + (defun clos::class-name (c) (declare (ignore c)) nil) +) + +(defun typespec-error (fun type) + (error-of-type 'error + (TEXT "~S: invalid type specification ~S") + fun type +) ) + +;; ============================================================================ + +;; return the CLOS class named by TYPESPEC or NIL +(defun clos-class (typespec) + (let ((cc (get typespec 'CLOS::CLOSCLASS))) + (when (and cc (clos::defined-class-p cc) (eq (clos:class-name cc) typespec)) + cc))) + +;;; TYPEP, CLTL S. 72, S. 42-51 +(defun typep (x y &optional env &aux f) ; x = Objekt, y = Typ + (declare (ignore env)) + (setq y (expand-deftype y)) + (cond + ((symbolp y) + (cond ((setq f (get y 'TYPE-SYMBOL)) (funcall f x)) + ((setq f (get y 'TYPE-LIST)) (funcall f x)) + ((setq f (get y 'DEFSTRUCT-DESCRIPTION)) (ds-typep x y f)) + ((setq f (clos-class y)) + ; It's not worth handling structure classes specially here. + (clos::typep-class x f)) + (t (typespec-error 'typep y)) + ) ) + ((and (consp y) (symbolp (first y))) + (cond + ((and (eq (first y) 'SATISFIES) (eql (length y) 2)) + (unless (symbolp (second y)) + (error-of-type 'error + (TEXT "~S: argument to SATISFIES must be a symbol: ~S") + 'typep (second y) + ) ) + (if (funcall (symbol-function (second y)) x) t nil) + ) + ((eq (first y) 'MEMBER) + (if (member x (rest y)) t nil) + ) + ((and (eq (first y) 'EQL) (eql (length y) 2)) + (eql x (second y)) + ) + ((and (eq (first y) 'NOT) (eql (length y) 2)) + (not (typep x (second y))) + ) + ((eq (first y) 'AND) + (dolist (type (rest y) t) + (unless (typep x type) (return nil)) + ) ) + ((eq (first y) 'OR) + (dolist (type (rest y) nil) + (when (typep x type) (return t)) + ) ) + ((setq f (get (first y) 'TYPE-LIST)) (apply f x (rest y))) + (t (typespec-error 'typep y)) + ) ) + ((clos::defined-class-p y) (clos::typep-class x y)) + ((clos::eql-specializer-p y) (eql x (clos::eql-specializer-singleton y))) + ((encodingp y) (charset-typep x y)) + (t (typespec-error 'typep y)) +) ) + +;; ---------------------------------------------------------------------------- + +;; UPGRADED-ARRAY-ELEMENT-TYPE is a lattice homomorphism, see +;; ANSI CL 15.1.2.1. +(defun upgraded-array-element-type (type &optional environment) + (declare (ignore environment)) + ;; see array.d + (case type + ((BIT) 'BIT) + ((CHARACTER) 'CHARACTER) + ((T) 'T) + ((NIL) 'NIL) + (t (if (subtypep type 'NIL) + 'NIL + (multiple-value-bind (low high) (sys::subtype-integer type) + ; Es gilt (or (null low) (subtypep type `(INTEGER ,low ,high))) + (if (and (integerp low) (not (minusp low)) (integerp high)) + (let ((l (integer-length high))) + ; Es gilt (subtypep type `(UNSIGNED-BYTE ,l)) + (cond ((<= l 1) 'BIT) + ((<= l 2) '(UNSIGNED-BYTE 2)) + ((<= l 4) '(UNSIGNED-BYTE 4)) + ((<= l 8) '(UNSIGNED-BYTE 8)) + ((<= l 16) '(UNSIGNED-BYTE 16)) + ((<= l 32) '(UNSIGNED-BYTE 32)) + (t 'T))) + (if (subtypep type 'CHARACTER) + 'CHARACTER + 'T))))))) + +;; ---------------------------------------------------------------------------- + +;; UPGRADED-COMPLEX-PART-TYPE is a lattice homomorphism, see +;; HyperSpec/Body/fun_complex.html and HyperSpec/Body/syscla_complex.html, +;; and an idempotent. Therefore +;; (subtypep (upgraded-complex-part-type T1) (upgraded-complex-part-type T2)) +;; is equivalent to +;; (subtypep T1 (upgraded-complex-part-type T2)) +;; (Proof: Let U T be an abbreviation for (upgraded-complex-part-type T). +;; If U T1 <= U T2, then T1 <= U T1 <= U T2. +;; If T1 <= U T2, then by homomorphism U T1 <= U U T2 = U T2.) +;; +;; For _any_ CL implementation, you could define +;; (defun upgraded-complex-part-type (type) 'REAL) +;; Likewise for _any_ CL implementation, you could define +;; (defun upgraded-complex-part-type (type) type) +;; or - again for _any_ CL implementation: +;; (defun upgraded-complex-part-type (type) +;; (cond ((subtypep type 'NIL) 'NIL) +;; ((subtypep type 'SHORT-FLOAT) 'SHORT-FLOAT) +;; ((subtypep type 'SINGLE-FLOAT) 'SINGLE-FLOAT) +;; ((subtypep type 'DOUBLE-FLOAT) 'DOUBLE-FLOAT) +;; ((subtypep type 'LONG-FLOAT) 'LONG-FLOAT) +;; ((subtypep type 'RATIONAL) 'RATIONAL) +;; ((subtypep type 'REAL) 'REAL) +;; (t (error ...)))) +;; The reason is that a complex number is immutable: no setters for the +;; realpart and imagpart exist. +;; +;; We choose the second implementation because it allows the most precise +;; type inference. +(defun upgraded-complex-part-type (type &optional environment) + (declare (ignore environment)) + (if (subtypep type 'REAL) + type + (error-of-type 'error + (TEXT "~S: type ~S is not a subtype of ~S") + 'upgraded-complex-part-type type 'real))) + +;; ---------------------------------------------------------------------------- + +;; Macros for defining the various built-in "atomic type specifier"s and +;; "compound type specifier"s. The following macros add information for both +;; the TYPEP function above and the c-TYPEP in the compiler. + +; Alist symbol -> funname, used by the compiler. +(defparameter c-typep-alist1 '()) +; Alist symbol -> lambdabody, used by the compiler. +(defparameter c-typep-alist2 '()) +; Alist symbol -> expander function, used by the compiler. +(defparameter c-typep-alist3 '()) + +; (def-atomic-type symbol function-name) +; defines an atomic type. The function-name designates a function taking one +; argument and returning a generalized boolean value. It can be either a +; symbol or a lambda expression. +(defmacro def-atomic-type (symbol funname) + (let ((lambdap (and (consp funname) (eq (car funname) 'LAMBDA)))) + `(PROGN + (SETF (GET ',symbol 'TYPE-SYMBOL) + ,(if lambdap + `(FUNCTION ,(concat-pnames "TYPE-SYMBOL-" symbol) ,funname) + `(FUNCTION ,funname) + ) + ) + ,(if lambdap + `(SETQ C-TYPEP-ALIST2 + (NCONC C-TYPEP-ALIST2 (LIST (CONS ',symbol ',(cdr funname)))) + ) + `(SETQ C-TYPEP-ALIST1 + (NCONC C-TYPEP-ALIST1 (LIST (CONS ',symbol ',funname))) + ) + ) + ',symbol + ) +) ) + +; (def-compound-type symbol lambda-list (x) check-form typep-form c-typep-form) +; defines a compound type. The lambda-list is of the form (&optional ...) +; where the arguments come from the CDR of the type specifier. +; For typep-form, x is an object. +; For c-typep-form, x is a multiply evaluatable form (actually a gensym). +; check-form is a form performing error checking, may call `error'. +; typep-form should return a generalized boolean value. +; c-typep-form should produce a form returning a generalized boolean value. +(defmacro def-compound-type (symbol lambdalist (var) check-form typep-form c-typep-form) + `(PROGN + (SETF (GET ',symbol 'TYPE-LIST) + (FUNCTION ,(concat-pnames "TYPE-LIST-" symbol) + (LAMBDA (,var , at lambdalist) + ,@(if check-form + `((MACROLET ((ERROR (&REST ERROR-ARGS) + (LIST* 'ERROR-OF-TYPE ''ERROR ERROR-ARGS) + )) + ,check-form + )) + ) + ,typep-form + ) ) ) + (SETQ C-TYPEP-ALIST3 + (NCONC C-TYPEP-ALIST3 + (LIST (CONS ',symbol + #'(LAMBDA (,var , at lambdalist &REST ILLEGAL-ARGS) + (DECLARE (IGNORE ILLEGAL-ARGS)) + ,@(if check-form + `((MACROLET ((ERROR (&REST ERROR-ARGS) + (LIST 'PROGN + (LIST* 'C-WARN ERROR-ARGS) + '(THROW 'C-TYPEP NIL) + )) ) + ,check-form + )) + ) + ,c-typep-form + ) + ) ) ) ) + ',symbol + ) +) + +; CLtL1 p. 43 +(def-atomic-type ARRAY arrayp) +(def-atomic-type ATOM atom) +(def-atomic-type BASE-CHAR + #+BASE-CHAR=CHARACTER + characterp + #-BASE-CHAR=CHARACTER + (lambda (x) (and (characterp x) (base-char-p x))) +) +(def-atomic-type BASE-STRING + (lambda (x) + (and (stringp x) + (eq (array-element-type x) + #+BASE-CHAR=CHARACTER 'CHARACTER #-BASE-CHAR=CHARACTER 'BASE-CHAR +) ) ) ) +(def-atomic-type BIGNUM + (lambda (x) (and (integerp x) (not (fixnump x)))) +) +(def-atomic-type BIT + (lambda (x) (or (eql x 0) (eql x 1))) +) +(def-atomic-type BIT-VECTOR bit-vector-p) +(def-atomic-type BOOLEAN + (lambda (x) (or (eq x 'nil) (eq x 't))) +) +(def-atomic-type CHARACTER characterp) +(def-atomic-type COMPILED-FUNCTION compiled-function-p) +(def-atomic-type COMPLEX complexp) +(def-atomic-type CONS consp) +(def-atomic-type DOUBLE-FLOAT double-float-p) +(def-atomic-type ENCODING encodingp) +(def-atomic-type EXTENDED-CHAR + #+BASE-CHAR=CHARACTER + (lambda (x) (declare (ignore x)) nil) + #-BASE-CHAR=CHARACTER + (lambda (x) (and (characterp x) (not (base-char-p x)))) +) +(def-atomic-type FIXNUM fixnump) +(def-atomic-type FLOAT floatp) +(def-atomic-type FUNCTION functionp) +(def-atomic-type HASH-TABLE hash-table-p) +(def-atomic-type INTEGER integerp) +(def-atomic-type KEYWORD keywordp) +(def-atomic-type LIST listp) +#+LOGICAL-PATHNAMES +(def-atomic-type LOGICAL-PATHNAME logical-pathname-p) +(def-atomic-type LONG-FLOAT long-float-p) +(def-atomic-type NIL + (lambda (x) (declare (ignore x)) nil) +) +(def-atomic-type NULL null) +(def-atomic-type NUMBER numberp) +(def-atomic-type PACKAGE packagep) +(def-atomic-type PATHNAME pathnamep) +(def-atomic-type RANDOM-STATE random-state-p) +(def-atomic-type RATIO + (lambda (x) (and (rationalp x) (not (integerp x)))) +) +(def-atomic-type RATIONAL rationalp) +(def-atomic-type READTABLE readtablep) +(def-atomic-type REAL realp) +(def-atomic-type SEQUENCE sequencep) +(def-atomic-type SHORT-FLOAT short-float-p) +(def-atomic-type SIMPLE-ARRAY simple-array-p) +(def-atomic-type SIMPLE-BASE-STRING + (lambda (x) + (and (simple-string-p x) + (eq (array-element-type x) + #+BASE-CHAR=CHARACTER 'CHARACTER #-BASE-CHAR=CHARACTER 'BASE-CHAR +) ) ) ) +(def-atomic-type SIMPLE-BIT-VECTOR simple-bit-vector-p) +(def-atomic-type SIMPLE-STRING simple-string-p) +(def-atomic-type SIMPLE-VECTOR simple-vector-p) +(def-atomic-type SINGLE-FLOAT single-float-p) +(defun %standard-char-p (x) (and (characterp x) (standard-char-p x))) ; ABI +(def-atomic-type STANDARD-CHAR %standard-char-p) +(def-atomic-type CLOS:STANDARD-OBJECT clos::std-instance-p) +(def-atomic-type STREAM streamp) +(def-atomic-type FILE-STREAM file-stream-p) +(def-atomic-type SYNONYM-STREAM synonym-stream-p) +(def-atomic-type BROADCAST-STREAM broadcast-stream-p) +(def-atomic-type CONCATENATED-STREAM concatenated-stream-p) +(def-atomic-type TWO-WAY-STREAM two-way-stream-p) +(def-atomic-type ECHO-STREAM echo-stream-p) +(def-atomic-type STRING-STREAM string-stream-p) +(def-atomic-type STRING stringp) +(def-atomic-type STRING-CHAR characterp) +(def-atomic-type CLOS:STRUCTURE-OBJECT clos::structure-object-p) +(def-atomic-type SYMBOL symbolp) +(def-atomic-type T (lambda (x) (declare (ignore x)) t)) +;; foreign1.lisp is loaded after this file, +;; so these symbols are not external yet +#+ffi +(def-atomic-type ffi::foreign-function + (lambda (x) (eq 'ffi::foreign-function (type-of x)))) +#+ffi +(def-atomic-type ffi::foreign-variable + (lambda (x) (eq 'ffi::foreign-variable (type-of x)))) +#+ffi +(def-atomic-type ffi::foreign-address + (lambda (x) (eq 'ffi::foreign-address (type-of x)))) +;; see lispbibl.d (#define FOREIGN) and predtype.d (TYPE-OF): +#+(or unix ffi affi win32) +(def-atomic-type foreign-pointer + (lambda (x) (eq 'foreign-pointer (type-of x)))) +(def-atomic-type VECTOR vectorp) +(def-atomic-type PLIST + (lambda (x) (multiple-value-bind (length tail) (list-length-dotted x) + (and (null tail) (evenp length))))) + +(defmacro ensure-dim (type dim) + ;; make sure DIM is a valid dimension + `(unless (or (eq ,dim '*) (typep ,dim `(INTEGER 0 (,ARRAY-DIMENSION-LIMIT)))) + (error (TEXT "~S: dimension ~S is invalid") ',type ,dim))) + +(defmacro ensure-rank (type rank) + ;; make sure RANK is a valid rank + `(unless (typep ,rank `(INTEGER 0 (,ARRAY-RANK-LIMIT))) + (error (TEXT "~S: rank ~S is invalid") ',type ,rank))) + +; CLtL1 p. 46-50 +(defun c-typep-array (tester el-type dims x) + `(AND (,tester ,x) + ,@(if (eq el-type '*) + '() + `((EQUAL (ARRAY-ELEMENT-TYPE ,x) ',(upgraded-array-element-type el-type))) + ) + ,@(if (eq dims '*) + '() + (if (numberp dims) + `((EQL ,dims (ARRAY-RANK ,x))) + `((EQL ,(length dims) (ARRAY-RANK ,x)) + ,@(let ((i 0)) + (mapcap #'(lambda (dim) + (prog1 + (if (eq dim '*) + '() + `((EQL ',dim (ARRAY-DIMENSION ,x ,i))) + ) + (incf i) + ) ) + dims + ) ) + ) + ) ) + ) +) +(defun c-typep-vector (tester size x) + `(AND (,tester ,x) + ,@(if (eq size '*) + '() + `((EQL ',size (ARRAY-DIMENSION ,x 0))) + ) + ) +) +(defun typep-number-test (x low high test type) + (and (funcall test x) + (cond ((eq low '*)) + ((funcall test low) (<= low x)) + ((and (consp low) (null (rest low)) (funcall test (first low))) + (< (first low) x) + ) + (t (error-of-type 'error + #1=(TEXT "~S: argument to ~S must be *, ~S or a list of ~S: ~S") + 'typep type type type low + ) ) ) + (cond ((eq high '*)) + ((funcall test high) (>= high x)) + ((and (consp high) (null (rest high)) (funcall test (first high))) + (> (first high) x) + ) + (t (error-of-type 'error + #1# 'typep type type type high +) ) ) ) ) +(defun c-typep-number (caller tester low high x) + `(AND (,tester ,x) + ,@(cond ((eq low '*) '()) + ((funcall tester low) `((<= ,low ,x))) + ((and (consp low) (null (rest low)) (funcall tester (first low))) + `((< ,(first low) ,x)) + ) + (t (c-warn #1=(TEXT "~S: argument to ~S must be *, ~S or a list of ~S: ~S") + 'typep caller caller caller low + ) + (throw 'c-TYPEP nil) + ) ) + ,@(cond ((eq high '*) '()) + ((funcall tester high) `((>= ,high ,x))) + ((and (consp high) (null (rest high)) (funcall tester (first high))) + `((> ,(first high) ,x)) + ) + (t (c-warn #1# 'typep caller caller caller high) + (throw 'c-TYPEP nil) + ) ) + ) +) +(def-compound-type ARRAY (&optional (el-type '*) (dims '*)) (x) + (unless (eq dims '*) + (if (numberp dims) + (ensure-rank ARRAY dims) + (dolist (dim dims) (ensure-dim ARRAY dim)))) + (and (arrayp x) + (or (eq el-type '*) + (equal (array-element-type x) (upgraded-array-element-type el-type)) + ) + (or (eq dims '*) + (if (numberp dims) + (eql dims (array-rank x)) + (and (eql (length dims) (array-rank x)) + (every #'(lambda (a b) (or (eq a '*) (eql a b))) + dims (array-dimensions x) + ) ) ) ) ) + (c-typep-array 'ARRAYP el-type dims x) +) +(def-compound-type SIMPLE-ARRAY (&optional (el-type '*) (dims '*)) (x) + (unless (eq dims '*) + (if (numberp dims) + (ensure-rank SIMPLE-ARRAY dims) + (dolist (dim dims) (ensure-dim SIMPLE-ARRAY dim)))) + (and (simple-array-p x) + (or (eq el-type '*) + (equal (array-element-type x) (upgraded-array-element-type el-type)) + ) + (or (eq dims '*) + (if (numberp dims) + (eql dims (array-rank x)) + (and (eql (length dims) (array-rank x)) + (every #'(lambda (a b) (or (eq a '*) (eql a b))) + dims (array-dimensions x) + ) ) ) ) ) + (c-typep-array 'SIMPLE-ARRAY-P el-type dims x) +) +(def-compound-type VECTOR (&optional (el-type '*) (size '*)) (x) + (ensure-dim VECTOR size) + (and (vectorp x) + (or (eq el-type '*) + (equal (array-element-type x) (upgraded-array-element-type el-type)) + ) + (or (eq size '*) (eql (array-dimension x 0) size)) + ) + `(AND (VECTORP ,x) + ,@(if (eq el-type '*) + '() + `((EQUAL (ARRAY-ELEMENT-TYPE ,x) ',(upgraded-array-element-type el-type))) + ) + ,@(if (eq size '*) + '() + `((EQL (ARRAY-DIMENSION ,x 0) ',size)) + ) + ) +) +(def-compound-type SIMPLE-VECTOR (&optional (size '*)) (x) + (ensure-dim SIMLPE-VECTOR size) + (and (simple-vector-p x) + (or (eq size '*) (eql size (array-dimension x 0))) + ) + (c-typep-vector 'SIMPLE-VECTOR-P size x) +) +(def-compound-type COMPLEX (&optional (rtype '*) (itype rtype)) (x) + nil + (and (complexp x) + (or (eq rtype '*) + (typep (realpart x) (upgraded-complex-part-type rtype))) + (or (eq itype '*) + (typep (imagpart x) (upgraded-complex-part-type itype)))) + `(AND (COMPLEXP ,x) + ,@(if (eq rtype '*) + '() + `((TYPEP (REALPART ,x) ',(upgraded-complex-part-type rtype)))) + ,@(if (eq itype '*) + '() + `((TYPEP (IMAGPART ,x) ',(upgraded-complex-part-type itype)))))) +(def-compound-type INTEGER (&optional (low '*) (high '*)) (x) + nil + (typep-number-test x low high #'integerp 'INTEGER) + (c-typep-number 'INTEGER 'INTEGERP low high x) +) +(def-compound-type MOD (n) (x) + (unless (integerp n) + (error (TEXT "~S: argument to MOD must be an integer: ~S") + 'typep n + ) ) + (and (integerp x) (<= 0 x) (< x n)) + `(AND (INTEGERP ,x) (NOT (MINUSP ,x)) (< ,x ,n)) +) +(def-compound-type SIGNED-BYTE (&optional (n '*)) (x) + (unless (or (eq n '*) (integerp n)) + (error (TEXT "~S: argument to SIGNED-BYTE must be an integer or * : ~S") + 'typep n + ) ) + (and (integerp x) (or (eq n '*) (< (integer-length x) n))) + `(AND (INTEGERP ,x) + ,@(if (eq n '*) '() `((< (INTEGER-LENGTH ,x) ,n))) + ) +) +(def-compound-type UNSIGNED-BYTE (&optional (n '*)) (x) + (unless (or (eq n '*) (integerp n)) + (error (TEXT "~S: argument to UNSIGNED-BYTE must be an integer or * : ~S") + 'typep n + ) ) + (and (integerp x) + (not (minusp x)) + (or (eq n '*) (<= (integer-length x) n)) + ) + `(AND (INTEGERP ,x) (NOT (MINUSP ,x)) + ,@(if (eq n '*) '() `((<= (INTEGER-LENGTH ,x) ,n))) + ) +) +(def-compound-type REAL (&optional (low '*) (high '*)) (x) + nil + (typep-number-test x low high #'realp 'REAL) + (c-typep-number 'REAL 'REALP low high x) +) +(def-compound-type RATIONAL (&optional (low '*) (high '*)) (x) + nil + (typep-number-test x low high #'rationalp 'RATIONAL) + (c-typep-number 'RATIONAL 'RATIONALP low high x) +) +(def-compound-type FLOAT (&optional (low '*) (high '*)) (x) + nil + (typep-number-test x low high #'floatp 'FLOAT) + (c-typep-number 'FLOAT 'FLOATP low high x) +) +(def-compound-type SHORT-FLOAT (&optional (low '*) (high '*)) (x) + nil + (typep-number-test x low high #'short-float-p 'SHORT-FLOAT) + (c-typep-number 'SHORT-FLOAT 'SHORT-FLOAT-P low high x) +) +(def-compound-type SINGLE-FLOAT (&optional (low '*) (high '*)) (x) + nil + (typep-number-test x low high #'single-float-p 'SINGLE-FLOAT) + (c-typep-number 'SINGLE-FLOAT 'SINGLE-FLOAT-P low high x) +) +(def-compound-type DOUBLE-FLOAT (&optional (low '*) (high '*)) (x) + nil + (typep-number-test x low high #'double-float-p 'DOUBLE-FLOAT) + (c-typep-number 'DOUBLE-FLOAT 'DOUBLE-FLOAT-P low high x) +) +(def-compound-type LONG-FLOAT (&optional (low '*) (high '*)) (x) + nil + (typep-number-test x low high #'long-float-p 'LONG-FLOAT) + (c-typep-number 'LONG-FLOAT 'LONG-FLOAT-P low high x) +) +(def-compound-type STRING (&optional (size '*)) (x) + (ensure-dim STRING size) + (and (stringp x) + (or (eq size '*) (eql size (array-dimension x 0))) + ) + (c-typep-vector 'STRINGP size x) +) +(def-compound-type SIMPLE-STRING (&optional (size '*)) (x) + (ensure-dim SIMPLE-STRING size) + (and (simple-string-p x) + (or (eq size '*) (eql size (array-dimension x 0))) + ) + (c-typep-vector 'SIMPLE-STRING-P size x) +) +(def-compound-type BASE-STRING (&optional (size '*)) (x) + (ensure-dim BASE-STRING size) + (and (stringp x) + (or (eq size '*) (eql size (array-dimension x 0))) + ) + (c-typep-vector 'STRINGP size x) +) +(def-compound-type SIMPLE-BASE-STRING (&optional (size '*)) (x) + (ensure-dim SIMPLE-BASE-STRING size) + (and (simple-string-p x) + (or (eq size '*) (eql size (array-dimension x 0))) + ) + (c-typep-vector 'SIMPLE-STRING-P size x) +) +(def-compound-type BIT-VECTOR (&optional (size '*)) (x) + (ensure-dim BIT-VECTOR size) + (and (bit-vector-p x) + (or (eq size '*) (eql size (array-dimension x 0))) + ) + (c-typep-vector 'BIT-VECTOR-P size x) +) +(def-compound-type SIMPLE-BIT-VECTOR (&optional (size '*)) (x) + (ensure-dim SIMPLE-BIT-VECTOR size) + (and (simple-bit-vector-p x) + (or (eq size '*) (eql size (array-dimension x 0))) + ) + (c-typep-vector 'SIMPLE-BIT-VECTOR-P size x) +) +(def-compound-type CONS (&optional (car-type '*) (cdr-type '*)) (x) + nil + (and (consp x) + (or (eq car-type '*) (typep (car x) car-type)) + (or (eq cdr-type '*) (typep (cdr x) cdr-type)) + ) + `(AND (CONSP ,x) + ,@(if (eq car-type '*) '() `((TYPEP (CAR ,x) ',car-type))) + ,@(if (eq cdr-type '*) '() `((TYPEP (CDR ,x) ',cdr-type))) + ) +) + +(fmakunbound 'def-compound-type) + +;; ---------------------------------------------------------------------------- + +; Typtest ohne Gefahr einer Fehlermeldung. F??r SIGNAL und HANDLER-BIND. +(defun safe-typep (x y &optional env) + (let ((*error-handler* + #'(lambda (&rest error-args) + (declare (ignore error-args)) + (return-from safe-typep (values nil nil)) + )) ) + (values (typep x y env) t) +) ) + +; Umwandlung eines "type for declaration" in einen "type for discrimination". +(defun type-for-discrimination (y &optional (notp nil) &aux f) + (cond ((symbolp y) + (cond ((get y 'TYPE-SYMBOL) y) + ((get y 'TYPE-LIST) y) + ((setq f (get y 'DEFTYPE-EXPANDER)) + (let* ((z (funcall f (list y))) + (zx (type-for-discrimination z notp))) + (if (eql zx z) y zx) + )) + (t y) + ) ) + ((and (consp y) (symbolp (first y))) + (case (first y) + ((SATISFIES MEMBER EQL) y) + (NOT + (let* ((z (second y)) + (zx (type-for-discrimination z (not notp)))) + (if (eql zx z) y `(NOT ,zx)) + )) + ((AND OR COMPLEX VALUES) + (let* ((z (rest y)) + (zx (mapcar #'(lambda (x) (type-for-discrimination x notp)) z))) + (if (every #'eql z zx) y (cons (first y) zx)) + )) + (FUNCTION + ;; (FUNCTION arg-types res-type) is somewhere between + ;; NIL and FUNCTION, but undecidable. + (if notp 'NIL 'FUNCTION) + ) + (t (cond ((get (first y) 'TYPE-LIST) y) + ((setq f (get (first y) 'DEFTYPE-EXPANDER)) + (let* ((z (funcall f y)) + (zx (type-for-discrimination z notp))) + (if (eql zx z) y zx) + )) + (t y) + ) ) ) ) + (t y) +) ) + +; Testet eine Liste von Werten auf Erf??llen eines Type-Specifiers. F??r THE. +(defun %the (values type) ; ABI + (macrolet ((near-typep (objform typform) + ;; near-typep ist wie typep, nur dass das Objekt auch ein + ;; Read-Label sein darf. Das tritt z.B. auf bei + ;; (read-from-string "#1=#S(FOO :X #1#)") + ;; im Konstruktor MAKE-FOO. Die Implementation ist aber + ;; nicht gezwungen, bei fehlerhaftem THE zwingend einen + ;; Fehler zu melden, darum ist ein lascherer Typcheck hier + ;; erlaubt. + (let ((g (gensym))) + `(let ((,g ,objform)) + (or (typep ,g ,typform) (eq (type-of ,g) 'READ-LABEL)))))) + (if (and (consp type) (eq (car type) 'VALUES)) + ;; The VALUES type specifier is ill-defined in ANSI CL. + ;; + ;; There are two possibilities to define a VALUES type specifier in a + ;; sane way: + ;; - (EXACT-VALUES type1 ... [&optional ...]) describes the exact shape + ;; of the values list, as received by MULTIPLE-VALUE-LIST. + ;; For example, (EXACT-VALUES SYMBOL) is matched by (values 'a) but not + ;; by (values 'a 'b) or (values). + ;; - (ASSIGNABLE-VALUES type1 ... [&optional ...]) describes the values + ;; as received by a set of variables through MULTIPLE-VALUE-BIND or + ;; MULTIPLE-VALUE-SETQ. For example, (ASSIGNABLE-VALUES SYMBOL) is + ;; defined by whether + ;; (MULTIPLE-VALUE-BIND (var1) values (DECLARE (TYPE SYMBOL var1)) ...) + ;; is valid or not; therefore (ASSIGNABLE-VALUES SYMBOL) is matched by + ;; (values 'a) and (values 'a 'b) and (values). + ;; Note that &OPTIONAL is actually redundant here: + ;; (ASSIGNABLE-VALUES type1 ... &optional otype1 ...) + ;; is equivalent to + ;; (ASSIGNABLE-VALUES type1 ... (OR NULL otype1) ...) + ;; HyperSpec/Body/typspe_values.html indicates that VALUES means + ;; EXACT-VALUES; however, HyperSpec/Body/speope_the.html indicates that + ;; VALUES means ASSIGNABLE-VALUES. + ;; + ;; SBCL interprets the VALUES type specifier to mean EXACT-VALUES when + ;; it contains &OPTIONAL or &REST, but ASSIGNABLE-VALUES when it has + ;; only a tuple of type specifiers. This is utter nonsense, in particular + ;; because it makes (VALUES type1 ... typek &OPTIONAL) + ;; different from (VALUES type1 ... typek). + ;; + ;; Here we use the ASSIGNABLE-VALUES interpretation. + ;; In SUBTYPEP we just punt and don't assume any interpretation. + (let ((vals values) (types (cdr type))) + ;; required: + (loop + (when (or (atom types) (atom vals)) (return-from %the t)) + (when (memq (car types) lambda-list-keywords) (return)) + (unless (near-typep (pop vals) (pop types)) + (return-from %the nil))) + ;; &optional: + (when (and (consp types) (eq (car types) '&optional)) + (setq types (cdr types)) + (loop + (when (or (atom types) (atom vals)) (return-from %the t)) + (when (memq (car types) lambda-list-keywords) (return)) + (unless (near-typep (pop vals) (pop types)) + (return-from %the nil)))) + ;; &rest &key: + (case (car types) + (&rest + (setq types (cdr types)) + (when (atom types) (typespec-error 'the type)) + (unless (near-typep (pop vals) (pop types)) + (return-from %the nil))) + (&key) + (t (typespec-error 'the type))) + (if (eq (car types) '&key) + (progn + (setq types (cdr types)) + (when (oddp (length vals)) (return-from %the nil)) + (let ((keywords nil)) + (loop + (when (or (atom types) (atom vals)) (return-from %the t)) + (when (memq (car types) lambda-list-keywords) (return)) + (let ((item (pop types))) + (unless (and (listp item) (eql (length item) 2) + (symbolp (first item))) + (typespec-error 'the type)) + (let ((kw (symbol-to-keyword (first item)))) + (unless (near-typep (getf vals kw) (second item)) + (return-from %the nil)) + (push kw keywords)))) + (if (and (consp types) (eq (car types) '&allow-other-keys)) + (setq types (cdr types)) + (unless (getf vals ':allow-other-keys) + (do ((L vals (cddr L))) + ((atom L)) + (unless (memq (car L) keywords) + (return-from %the nil))))))) + (when (consp types) (typespec-error 'the type))) + t) + (near-typep (if (consp values) (car values) nil) type)))) + +;;; =========================================================================== + +;; SUBTYPEP +(load "subtypep") + + +;; Returns the number of bytes that are needed to represent #\Null in a +;; given encoding. +(defun encoding-zeroes (encoding) + #+UNICODE + ;; this should use min_bytes_per_char for cache, not the hash table + (let ((name (ext:encoding-charset encoding)) + (table #.(make-hash-table :key-type '(or string symbol) :value-type 'fixnum + :test 'stablehash-equal :warn-if-needs-rehash-after-gc t + :initial-contents '(("UTF-7" . 1)))) + (tester #.(make-string 2 :initial-element (code-char 0)))) + (or (gethash name table) + (setf (gethash name table) + (- (length (ext:convert-string-to-bytes tester encoding)) + (length (ext:convert-string-to-bytes tester encoding + :end 1)))))) + #-UNICODE 1) + +;; Determines two values low,high such that +;; (subtypep type `(INTEGER ,low ,high)) +;; holds and low is as large as possible and high is as small as possible. +;; low = * means -infinity, high = * means infinity. +;; When (subtypep type 'INTEGER) is false, the values NIL,NIL are returned. +;; We need this function only for MAKE-ARRAY, UPGRADED-ARRAY-ELEMENT-TYPE and +;; OPEN and can therefore w.l.o.g. replace +;; type with `(OR ,type (MEMBER 0)) +#| ;; The original implementation calls canonicalize-type and then applies + ;; a particular SUBTYPE variant: + (defun subtype-integer (type) + (macrolet ((yes () '(return-from subtype-integer (values low high))) + (no () '(return-from subtype-integer nil)) + (unknown () '(return-from subtype-integer nil))) + (setq type (canonicalize-type type)) + (if (consp type) + (case (first type) + (MEMBER ; (MEMBER &rest objects) + ;; All elements must be of type INTEGER. + (let ((low 0) (high 0)) ; wlog! + (dolist (x (rest type) (yes)) + (unless (typep x 'INTEGER) (return (no))) + (setq low (min low x) high (max high x))))) + (OR ; (OR type*) + ;; Every type must be subtype of INTEGER. + (let ((low 0) (high 0)) ; wlog! + (dolist (type1 (rest type) (yes)) + (multiple-value-bind (low1 high1) (subtype-integer type1) + (unless low1 (return (no))) + (setq low (if (or (eq low '*) (eq low1 '*)) '* (min low low1)) + high (if (or (eq high '*) (eq high1 '*)) + '* (max high high1))))))) + (AND ; (AND type*) + ;; If one of the types is subtype of INTEGER, then yes, + ;; otherwise unknown. + (let ((low nil) (high nil)) + (dolist (type1 (rest type)) + (multiple-value-bind (low1 high1) (subtype-integer type1) + (when low1 + (if low + (setq low (if (eq low '*) low1 (if (eq low1 '*) low (max low low1))) + high (if (eq high '*) high1 (if (eq high1 '*) high (min high high1)))) + (setq low low1 high high1))))) + (if low + (progn + (when (and (numberp low) (numberp high) (not (<= low high))) + (setq low 0 high 0) ; type equivalent to NIL) + (yes)) + (unknown))))) + (setq type (list type))) + (if (eq (first type) 'INTEGER) + (let ((low (if (rest type) (second type) '*)) + (high (if (cddr type) (third type) '*))) + (when (consp low) + (setq low (first low)) + (when (numberp low) (incf low))) + (when (consp high) + (setq high (first high)) + (when (numberp high) (decf high))) + (when (and (numberp low) (numberp high) (not (<= low high))) ; type leer? + (setq low 0 high 0)) + (yes)) + (if (and (eq (first type) 'INTERVALS) (eq (second type) 'INTEGER)) + (let ((low (third type)) + (high (car (last type)))) + (when (consp low) + (setq low (first low)) + (when (numberp low) (incf low))) + (when (consp high) + (setq high (first high)) + (when (numberp high) (decf high))) + (yes)) + (unknown))))) +|# ;; This implementation inlines the (tail-recursive) canonicalize-type + ;; function. Its advantage is that it doesn't cons as much. + ;; (For example, (subtype-integer '(UNSIGNED-BYTE 8)) doesn't cons.) +(defun subtype-integer (type) + (macrolet ((yes () '(return-from subtype-integer (values low high))) + (no () '(return-from subtype-integer nil)) + (unknown () '(return-from subtype-integer nil))) + (setq type (expand-deftype type)) + (cond ((symbolp type) + (case type + (BIT (let ((low 0) (high 1)) (yes))) + (FIXNUM + (let ((low '#,most-negative-fixnum) + (high '#,most-positive-fixnum)) + (yes))) + ((INTEGER BIGNUM SIGNED-BYTE) + (let ((low '*) (high '*)) (yes))) + (UNSIGNED-BYTE + (let ((low 0) (high '*)) (yes))) + ((NIL) + (let ((low 0) (high 0)) (yes))) ; wlog! + (t (no)))) + ((and (consp type) (symbolp (first type))) + (unless (and (list-length type) (null (cdr (last type)))) + (typespec-error 'subtypep type)) + (case (first type) + (MEMBER ; (MEMBER &rest objects) + ;; All elements must be of type INTEGER. + (let ((low 0) (high 0)) ; wlog! + (dolist (x (rest type) (yes)) + (unless (typep x 'INTEGER) (return (no))) + (setq low (min low x) high (max high x))))) + (EQL ; (EQL object) + (let ((x (second type))) + (if (typep x 'INTEGER) + (let ((low (min 0 x)) (high (max 0 x))) (yes)) + (no)))) + (OR ; (OR type*) + ;; Every type must be subtype of INTEGER. + (let ((low 0) (high 0)) ; wlog! + (dolist (type1 (rest type) (yes)) + (multiple-value-bind (low1 high1) (subtype-integer type1) + (unless low1 (return (no))) + (setq low (if (or (eq low '*) (eq low1 '*)) + '* (min low low1)) + high (if (or (eq high '*) (eq high1 '*)) + '* (max high high1))))))) + (AND ; (AND type*) + ;; If one of the types is subtype of INTEGER, then yes, + ;; otherwise unknown. + (let ((low nil) (high nil)) + (dolist (type1 (rest type)) + (multiple-value-bind (low1 high1) (subtype-integer type1) + (when low1 + (if low + (setq low (if (eq low '*) low1 + (if (eq low1 '*) low + (max low low1))) + high (if (eq high '*) high1 + (if (eq high1 '*) high + (min high high1)))) + (setq low low1 + high high1))))) + (if low + (progn + (when (and (numberp low) (numberp high) + (not (<= low high))) + (setq low 0 high 0)) ; type equivalent to NIL + (yes)) + (unknown)))) + (INTEGER + (let ((low (if (rest type) (second type) '*)) + (high (if (cddr type) (third type) '*))) + (when (consp low) + (setq low (first low)) + (when (numberp low) (incf low))) + (when (consp high) + (setq high (first high)) + (when (numberp high) (decf high))) + (when (and (numberp low) (numberp high) (not (<= low high))) + (setq low 0 high 0)) ; type equivalent to NIL + (yes))) + (INTERVALS + (if (eq (second type) 'INTEGER) + (let ((low (third type)) + (high (car (last type)))) + (when (consp low) + (setq low (first low)) + (when (numberp low) (incf low))) + (when (consp high) + (setq high (first high)) + (when (numberp high) (decf high))) + (yes)) + (unknown))) + (MOD ; (MOD n) + (let ((n (second type))) + (unless (and (integerp n) (>= n 0)) + (typespec-error 'subtypep type)) + (if (eql n 0) + (no) + (let ((low 0) (high (1- n))) + (yes))))) + (SIGNED-BYTE ; (SIGNED-BYTE &optional s) + (let ((s (if (cdr type) (second type) '*))) + (if (eq s '*) + (let ((low '*) (high '*)) (yes)) + (progn + (unless (and (integerp s) (plusp s)) + (typespec-error 'subtypep type)) + (let ((n (ash 1 (1- s)))) ; (ash 1 *) == (expt 2 *) + (let ((low (- n)) (high (1- n))) + (yes))))))) + (UNSIGNED-BYTE ; (UNSIGNED-BYTE &optional s) + (let ((s (if (cdr type) (second type) '*))) + (if (eq s '*) + (let ((low 0) (high '*)) (yes)) + (progn + (unless (and (integerp s) (>= s 0)) + (typespec-error 'subtypep type)) + (let ((n (ash 1 s))) ; (ash 1 *) == (expt 2 *) + (let ((low 0) (high (1- n))) + (yes))))))) + (t (no)))) + ((clos::defined-class-p type) + (if (and (clos::built-in-class-p type) + (eq (get (clos:class-name type) 'CLOS::CLOSCLASS) type)) + (return-from subtype-integer + (subtype-integer (clos:class-name type))) + (no))) + ((clos::eql-specializer-p type) + (let ((x (clos::eql-specializer-singleton type))) + (if (typep x 'INTEGER) + (let ((low (min 0 x)) (high (max 0 x))) (yes)) + (no)))) + ((encodingp type) (no)) + (t (typespec-error 'subtypep type))))) + +#| TODO: Fix subtype-integer such that this works. +Henry Baker: + (defun type-null (x) + (values (and (eq 'bit (upgraded-array-element-type `(or bit ,x))) + (not (typep 0 x)) + (not (typep 1 x))) + t)) + (type-null '(and symbol number)) + (type-null '(and integer symbol)) + (type-null '(and integer character)) +|# + +;; Determines a sequence kind (an atom, as defined in defseq.lisp: one of +;; LIST - stands for LIST +;; VECTOR - stands for (VECTOR T) +;; STRING - stands for (VECTOR CHARACTER) +;; 1, 2, 4, 8, 16, 32 - stands for (VECTOR (UNSIGNED-BYTE n)) +;; 0 - stands for (VECTOR NIL)) +;; that indicates the sequence type meant by the given type. Other possible +;; return values are +;; SEQUENCE - denoting a type whose intersection with (OR LIST VECTOR) is not +;; subtype of LIST or VECTOR, or +;; NIL - indicating a type whose intersection with (OR LIST VECTOR) is empty. +;; When the type is (OR (VECTOR eltype1) ... (VECTOR eltypeN)), the chosen +;; element type is the smallest element type that contains all of eltype1 ... +;; eltypeN. +;; +;; User-defined sequence types are not supported here. +;; +;; This implementation inlines the (tail-recursive) canonicalize-type +;; function. Its advantage is that it doesn't cons as much. Also it employs +;; some heuristics and does not have the full power of SUBTYPEP. +(defun subtype-sequence (type) + (setq type (expand-deftype type)) + (cond ((symbolp type) + (case type + ((LIST CONS NULL) 'LIST) + ((NIL) 'NIL) + ((BIT-VECTOR SIMPLE-BIT-VECTOR) '1) + ((STRING SIMPLE-STRING BASE-STRING SIMPLE-BASE-STRING) 'STRING) + ((VECTOR SIMPLE-VECTOR ARRAY SIMPLE-ARRAY) 'VECTOR) + ((SEQUENCE) 'SEQUENCE) + (t 'NIL))) + ((and (consp type) (symbolp (first type))) + (unless (and (list-length type) (null (cdr (last type)))) + (typespec-error 'subtypep type)) + (case (first type) + (MEMBER ; (MEMBER &rest objects) + (let ((kind 'NIL)) + (dolist (x (rest type)) + (setq kind (sequence-type-union kind (type-of-sequence x)))) + kind)) + (EQL ; (EQL object) + (unless (eql (length type) 2) + (typespec-error 'subtypep type)) + (type-of-sequence (second type))) + (OR ; (OR type*) + (let ((kind 'NIL)) + (dolist (x (rest type)) + (setq kind (sequence-type-union kind (subtype-sequence x)))) + kind)) + (AND ; (AND type*) + (let ((kind 'SEQUENCE)) + (dolist (x (rest type)) + (setq kind (sequence-type-intersection kind (subtype-sequence x)))) + kind)) + ((SIMPLE-BIT-VECTOR BIT-VECTOR) ; (SIMPLE-BIT-VECTOR &optional size) + (when (cddr type) + (typespec-error 'subtypep type)) + '1) + ((SIMPLE-STRING STRING SIMPLE-BASE-STRING BASE-STRING) ; (SIMPLE-STRING &optional size) + (when (cddr type) + (typespec-error 'subtypep type)) + 'STRING) + (SIMPLE-VECTOR ; (SIMPLE-VECTOR &optional size) + (when (cddr type) + (typespec-error 'subtypep type)) + 'VECTOR) + ((VECTOR ARRAY SIMPLE-ARRAY) ; (VECTOR &optional el-type size), (ARRAY &optional el-type dimensions) + (when (cdddr type) + (typespec-error 'subtypep type)) + (let ((el-type (if (cdr type) (second type) '*))) + (if (eq el-type '*) + 'VECTOR + (let ((eltype (upgraded-array-element-type el-type))) + (cond ((eq eltype 'T) 'VECTOR) + ((eq eltype 'CHARACTER) 'STRING) + ((eq eltype 'BIT) '1) + ((and (consp eltype) (eq (first eltype) 'UNSIGNED-BYTE)) (second eltype)) + ((eq eltype 'NIL) '0) + (t (error (TEXT "~S is not up-to-date with ~S for element type ~S") + 'subtypep-sequence 'upgraded-array-element-type eltype))))))) + ((CONS) ; (CONS &optional cartype cdrtype) + (when (cdddr type) + (typespec-error 'subtypep type)) + 'LIST) + (t 'NIL))) + ((clos::defined-class-p type) + (if (and (clos::built-in-class-p type) + (eq (get (clos:class-name type) 'CLOS::CLOSCLASS) type)) + (subtype-sequence (clos:class-name type)) + 'NIL)) + ((clos::eql-specializer-p type) + (type-of-sequence (clos::eql-specializer-singleton type))) + (t 'NIL))) +(defun type-of-sequence (x) + (cond ((listp x) 'LIST) + ((vectorp x) + (let ((eltype (array-element-type x))) + (cond ((eq eltype 'T) 'VECTOR) + ((eq eltype 'CHARACTER) 'STRING) + ((eq eltype 'BIT) '1) + ((and (consp eltype) (eq (first eltype) 'UNSIGNED-BYTE)) (second eltype)) + ((eq eltype 'NIL) '0) + (t (error (TEXT "~S is not up-to-date with ~S for element type ~S") + 'type-of-sequence 'array-element-type eltype))))) + (t 'NIL))) +(defun sequence-type-union (t1 t2) + (cond ; Simple general rules. + ((eql t1 t2) t1) + ((eq t1 'NIL) t2) + ((eq t2 'NIL) t1) + ; Now the union of two different types. + ((or (eq t1 'SEQUENCE) (eq t2 'SEQUENCE)) 'SEQUENCE) + ((or (eq t1 'LIST) (eq t2 'LIST)) + ; union of LIST and a vector type + 'SEQUENCE) + ((or (eq t1 'VECTOR) (eq t2 'VECTOR)) 'VECTOR) + ((eql t1 0) t2) + ((eql t2 0) t1) + ((or (eq t1 'STRING) (eq t2 'STRING)) + ; union of STRING and an integer-vector type + 'VECTOR) + (t (max t1 t2)))) +(defun sequence-type-intersection (t1 t2) + (cond ; Simple general rules. + ((eql t1 t2) t1) + ((or (eq t1 'NIL) (eq t2 'NIL)) 'NIL) + ; Now the intersection of two different types. + ((eq t1 'SEQUENCE) t2) + ((eq t2 'SEQUENCE) t1) + ((or (eq t1 'LIST) (eq t2 'LIST)) + ; intersection of LIST and a vector type + 'NIL) + ((eq t1 'VECTOR) t2) + ((eq t2 'VECTOR) t1) + ((or (eql t1 0) (eql t2 0)) '0) + ((or (eq t1 'STRING) (eq t2 'STRING)) + ; intersection of STRING and an integer-vector type + '0) + (t (min t1 t2)))) + +;; ============================================================================ + +(defun type-expand (typespec &optional once-p) + (multiple-value-bind (expanded user-defined-p) + (expand-deftype typespec once-p) + (if user-defined-p (values expanded user-defined-p) + (cond ((symbolp typespec) + (cond ((or (get typespec 'TYPE-SYMBOL) (get typespec 'TYPE-LIST)) + (values typespec nil)) + ((or (get typespec 'DEFSTRUCT-DESCRIPTION) + (clos-class typespec)) + (values typespec nil)) + (t (typespec-error 'type-expand typespec)))) + ((and (consp typespec) (symbolp (first typespec))) + (case (first typespec) + ((SATISFIES MEMBER EQL NOT AND OR) (values typespec nil)) + (t (cond ((get (first typespec) 'TYPE-LIST) + (values typespec nil)) + (t (typespec-error 'type-expand typespec)))))) + ((clos::defined-class-p typespec) (values typespec nil)) + (t (typespec-error 'type-expand typespec)))))) + +;; ============================================================================ + +(unless (clos::funcallable-instance-p #'clos::class-name) + (fmakunbound 'clos::class-name)) Added: external/Pygments-0.9/tests/run.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/run.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,143 @@ +# -*- coding: utf-8 -*- +""" + Pygments unit tests + ~~~~~~~~~~~~~~~~~~ + + Usage:: + + python run.py [testfile ...] + + + :copyright: 2006-2007 by Georg Brandl. + :license: GNU GPL, see LICENSE for more details. +""" + +import sys, os, new +import unittest +import __builtin__ + +from os.path import dirname, basename, join, abspath + +import pygments + +try: + import coverage +except ImportError: + coverage = None + +testdir = abspath(dirname(__file__)) + +# useful for all tests +__builtin__.testdir = testdir + +failed = [] +total_test_count = 0 +error_test_count = 0 + + +def err(file, what, exc): + print >>sys.stderr, file, 'failed %s:' % what, + print >>sys.stderr, exc + failed.append(file[:-3]) + + +class QuietTestRunner(object): + """Customized test runner for relatively quiet output""" + + def __init__(self, testname, stream=sys.stderr): + self.testname = testname + self.stream = unittest._WritelnDecorator(stream) + + def run(self, test): + global total_test_count + global error_test_count + result = unittest._TextTestResult(self.stream, True, 1) + test(result) + if not result.wasSuccessful(): + self.stream.write(' FAIL:') + result.printErrors() + failed.append(self.testname) + else: + self.stream.write(' ok\n') + total_test_count += result.testsRun + error_test_count += len(result.errors) + len(result.failures) + return result + + +def run_tests(with_coverage=False): + # needed to avoid confusion involving atexit handlers + import logging + + if sys.argv[1:]: + # test only files given on cmdline + files = [entry + '.py' for entry in sys.argv[1:] if entry.startswith('test_')] + else: + files = [entry for entry in os.listdir(testdir) + if (entry.startswith('test_') and entry.endswith('.py'))] + files.sort() + + WIDTH = 85 + + print >>sys.stderr, \ + ('Pygments %s Test Suite running%s, stand by...' % + (pygments.__version__, + with_coverage and " with coverage analysis" or "")).center(WIDTH) + print >>sys.stderr, ('(using Python %s)' % sys.version.split()[0]).center(WIDTH) + print >>sys.stderr, '='*WIDTH + + if with_coverage: + coverage.erase() + coverage.start() + + for testfile in files: + globs = {} + try: + __builtin__.testfile = testfile + execfile(join(testdir, testfile), globs) + except Exception, exc: + raise + err(testfile, 'execfile', exc) + continue + sys.stderr.write(testfile[:-3] + ': ') + try: + runner = QuietTestRunner(testfile[:-3]) + # make a test suite of all TestCases in the file + tests = [] + for name, thing in globs.iteritems(): + if name.endswith('Test'): + tests.append((name, unittest.makeSuite(thing))) + tests.sort() + suite = unittest.TestSuite() + suite.addTests([x[1] for x in tests]) + runner.run(suite) + except Exception, exc: + err(testfile, 'running test', exc) + + print >>sys.stderr, '='*WIDTH + if failed: + print >>sys.stderr, '%d of %d tests failed.' % \ + (error_test_count, total_test_count) + print >>sys.stderr, 'Tests failed in:', ', '.join(failed) + ret = 1 + else: + if total_test_count == 1: + print >>sys.stderr, '1 test happy.' + else: + print >>sys.stderr, 'All %d tests happy.' % total_test_count + ret = 0 + + if with_coverage: + coverage.stop() + modules = [mod for name, mod in sys.modules.iteritems() + if name.startswith('pygments.') and mod] + coverage.report(modules) + + return ret + + +if __name__ == '__main__': + with_coverage = False + if sys.argv[1:2] == ['-C']: + with_coverage = bool(coverage) + del sys.argv[1] + sys.exit(run_tests(with_coverage)) Added: external/Pygments-0.9/tests/test_basic_api.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/test_basic_api.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,187 @@ +# -*- coding: utf-8 -*- +""" + Pygments basic API tests + ~~~~~~~~~~~~~~~~~~~~~~~~ + + :copyright: 2006-2007 by Georg Brandl. + :license: BSD, see LICENSE for more details. +""" + +import os +import unittest +import StringIO +import random + +from pygments import lexers, formatters, filters, format +from pygments.token import _TokenType, Text +from pygments.lexer import RegexLexer + +test_content = [chr(i) for i in xrange(33, 128)] * 5 +random.shuffle(test_content) +test_content = ''.join(test_content) + '\n' + +class LexersTest(unittest.TestCase): + + def test_import_all(self): + # instantiate every lexer, to see if the token type defs are correct + for x in lexers.LEXERS.keys(): + c = getattr(lexers, x)() + + def test_lexer_classes(self): + a = self.assert_ + ae = self.assertEquals + # test that every lexer class has the correct public API + for lexer in lexers._iter_lexerclasses(): + a(type(lexer.name) is str) + for attr in 'aliases', 'filenames', 'alias_filenames', 'mimetypes': + a(hasattr(lexer, attr)) + a(type(getattr(lexer, attr)) is list, "%s: %s attribute wrong" % + (lexer, attr)) + result = lexer.analyse_text("abc") + a(isinstance(result, float) and 0.0 <= result <= 1.0) + + inst = lexer(opt1="val1", opt2="val2") + if issubclass(lexer, RegexLexer): + if not hasattr(lexer, '_tokens'): + # if there's no "_tokens", the lexer has to be one with + # multiple tokendef variants + a(lexer.token_variants) + for variant in lexer.tokens: + a('root' in lexer.tokens[variant]) + else: + a('root' in lexer._tokens, '%s has no root state' % lexer) + + tokens = list(inst.get_tokens(test_content)) + txt = "" + for token in tokens: + a(isinstance(token, tuple)) + a(isinstance(token[0], _TokenType)) + if isinstance(token[1], str): + print repr(token[1]) + a(isinstance(token[1], unicode)) + txt += token[1] + ae(txt, test_content, "%s lexer roundtrip failed: %r != %r" % + (lexer.name, test_content, txt)) + + def test_get_lexers(self): + a = self.assert_ + ae = self.assertEquals + # test that the lexers functions work + + for func, args in [(lexers.get_lexer_by_name, ("python",)), + (lexers.get_lexer_for_filename, ("test.py",)), + (lexers.get_lexer_for_mimetype, ("text/x-python",)), + (lexers.guess_lexer, ("#!/usr/bin/python -O\nprint",)), + (lexers.guess_lexer_for_filename, ("a.py", "<%= @foo %>")) + ]: + x = func(opt="val", *args) + a(isinstance(x, lexers.PythonLexer)) + ae(x.options["opt"], "val") + + +class FiltersTest(unittest.TestCase): + + def test_basic(self): + filter_args = { + 'whitespace': {'spaces': True, 'tabs': True, 'newlines': True}, + 'highlight': {'names': ['isinstance', 'lexers', 'x']}, + } + for x in filters.FILTERS.keys(): + lx = lexers.PythonLexer() + lx.add_filter(x, **filter_args.get(x, {})) + text = file(os.path.join(testdir, testfile)).read().decode('utf-8') + tokens = list(lx.get_tokens(text)) + roundtext = ''.join([t[1] for t in tokens]) + if x not in ('whitespace', 'keywordcase'): + # these filters change the text + self.assertEquals(roundtext, text, + "lexer roundtrip with %s filter failed" % x) + + def test_raiseonerror(self): + lx = lexers.PythonLexer() + lx.add_filter('raiseonerror', excclass=RuntimeError) + self.assertRaises(RuntimeError, list, lx.get_tokens('$')) + + def test_whitespace(self): + lx = lexers.PythonLexer() + lx.add_filter('whitespace', spaces='%') + text = file(os.path.join(testdir, testfile)).read().decode('utf-8') + lxtext = ''.join([t[1] for t in list(lx.get_tokens(text))]) + self.failIf(' ' in lxtext) + + def test_keywordcase(self): + lx = lexers.PythonLexer() + lx.add_filter('keywordcase', case='capitalize') + text = file(os.path.join(testdir, testfile)).read().decode('utf-8') + lxtext = ''.join([t[1] for t in list(lx.get_tokens(text))]) + self.assert_('Def' in lxtext and 'Class' in lxtext) + + +class FormattersTest(unittest.TestCase): + + def test_public_api(self): + a = self.assert_ + ae = self.assertEquals + ts = list(lexers.PythonLexer().get_tokens("def f(): pass")) + out = StringIO.StringIO() + # test that every formatter class has the correct public API + for formatter, info in formatters.FORMATTERS.iteritems(): + a(len(info) == 4) + a(info[0], "missing formatter name") # name + a(info[1], "missing formatter aliases") # aliases + a(info[3], "missing formatter docstring") # doc + + inst = formatter(opt1="val1") + inst.get_style_defs() + inst.format(ts, out) + + def test_encodings(self): + from pygments.formatters import HtmlFormatter + + # unicode output + fmt = HtmlFormatter() + tokens = [(Text, u"??")] + out = format(tokens, fmt) + self.assert_(type(out) is unicode) + self.assert_(u"??" in out) + + # encoding option + fmt = HtmlFormatter(encoding="latin1") + tokens = [(Text, u"??")] + self.assert_(u"??".encode("latin1") in format(tokens, fmt)) + + # encoding and outencoding option + fmt = HtmlFormatter(encoding="latin1", outencoding="utf8") + tokens = [(Text, u"??")] + self.assert_(u"??".encode("utf8") in format(tokens, fmt)) + + def test_styles(self): + from pygments.formatters import HtmlFormatter + fmt = HtmlFormatter(style="pastie") + + def test_unicode_handling(self): + # test that the formatter supports encoding and Unicode + tokens = list(lexers.PythonLexer(encoding='utf-8').get_tokens("def f(): '??'")) + for formatter, info in formatters.FORMATTERS.iteritems(): + inst = formatter(encoding=None) + out = format(tokens, inst) + if formatter.unicodeoutput: + self.assert_(type(out) is unicode) + + inst = formatter(encoding='utf-8') + out = format(tokens, inst) + self.assert_(type(out) is str) + # Cannot test for encoding, since formatters may have to escape + # non-ASCII characters. + + def test_get_formatters(self): + a = self.assert_ + ae = self.assertEquals + # test that the formatters functions work + x = formatters.get_formatter_by_name("html", opt="val") + a(isinstance(x, formatters.HtmlFormatter)) + ae(x.options["opt"], "val") + + x = formatters.get_formatter_for_filename("a.html", opt="val") + a(isinstance(x, formatters.HtmlFormatter)) + ae(x.options["opt"], "val") Added: external/Pygments-0.9/tests/test_clexer.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/test_clexer.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +""" + Basic CLexer Test + ~~~~~~~~~~~~~~~~~ + + :copyright: 2006-2007 by Armin Ronacher. + :license: BSD, see LICENSE for more details. +""" + +import unittest +import os + +from pygments.token import Text, Number +from pygments.lexers import CLexer + + +class CLexerTest(unittest.TestCase): + + def setUp(self): + self.lexer = CLexer() + + def testNumbers(self): + code = '42 23.42 23. .42 023 0xdeadbeef 23e+42 42e-23' + wanted = [] + for item in zip([Number.Integer, Number.Float, Number.Float, + Number.Float, Number.Oct, Number.Hex, + Number.Float, Number.Float], code.split()): + wanted.append(item) + wanted.append((Text, ' ')) + wanted = [(Text, '')] + wanted[:-1] + [(Text, '\n')] + self.assertEqual(list(self.lexer.get_tokens(code)), wanted) + + +if __name__ == '__main__': + unittest.main() Added: external/Pygments-0.9/tests/test_cmdline.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/test_cmdline.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,98 @@ +# -*- coding: utf-8 -*- +""" + Command line test + ~~~~~~~~~~~~~~~~~ + + :copyright: 2006-2007 by Georg Brandl. + :license: BSD, see LICENSE for more details. +""" + +# Test the command line interface + +import sys, os +import unittest +import StringIO + +from pygments import highlight +from pygments.cmdline import main as cmdline_main + + +def run_cmdline(*args): + saved_stdout = sys.stdout + saved_stderr = sys.stderr + new_stdout = sys.stdout = StringIO.StringIO() + new_stderr = sys.stderr = StringIO.StringIO() + try: + ret = cmdline_main(["pygmentize"] + list(args)) + finally: + sys.stdout = saved_stdout + sys.stderr = saved_stderr + return (ret, new_stdout.getvalue(), new_stderr.getvalue()) + + +class CmdLineTest(unittest.TestCase): + + def test_L_opt(self): + c, o, e = run_cmdline("-L") + self.assertEquals(c, 0) + self.assert_("Lexers" in o and "Formatters" in o and + "Filters" in o and "Styles" in o) + c, o, e = run_cmdline("-L", "lexer") + self.assertEquals(c, 0) + self.assert_("Lexers" in o and "Formatters" not in o) + c, o, e = run_cmdline("-L", "lexers") + self.assertEquals(c, 0) + + def test_O_opt(self): + filename = os.path.join(testdir, testfile) + c, o, e = run_cmdline("-Ofull=1,linenos=true,foo=bar", "-fhtml", filename) + self.assertEquals(c, 0) + self.assert_("foo, bar=baz=," in o) + + def test_F_opt(self): + filename = os.path.join(testdir, testfile) + c, o, e = run_cmdline("-Fhighlight:tokentype=Name.Blubb,names=testfile testdir", + "-fhtml", filename) + self.assertEquals(c, 0) + self.assert_('', '', houtfile.getvalue()) + escaped_text = escape_html(noutfile.getvalue()) + self.assertEquals(stripped_html, escaped_text) + + def test_external_css(self): + # test correct behavior + # CSS should be in /tmp directory + fmt1 = HtmlFormatter(full=True, cssfile='fmt1.css') + # CSS should be in testdir (testdir is absolute) + fmt2 = HtmlFormatter(full=True, cssfile=join(testdir, 'fmt2.css')) + tfile = tempfile.NamedTemporaryFile(suffix='.html') + fmt1.format(tokensource, tfile) + try: + fmt2.format(tokensource, tfile) + self.assert_(isfile(join(testdir, 'fmt2.css'))) + except IOError: + # test directory not writable + pass + tfile.close() + + self.assert_(isfile(join(dirname(tfile.name), 'fmt1.css'))) + os.unlink(join(dirname(tfile.name), 'fmt1.css')) + try: + os.unlink(join(testdir, 'fmt2.css')) + except OSError: + pass + + def test_all_options(self): + for optdict in [dict(nowrap=True), + dict(linenos=True), + dict(linenos=True, full=True), + dict(linenos=True, full=True, noclasses=True)]: + + outfile = StringIO.StringIO() + fmt = HtmlFormatter(**optdict) + fmt.format(tokensource, outfile) + + def test_valid_output(self): + # test all available wrappers + fmt = HtmlFormatter(full=True, linenos=True, noclasses=True) + + handle, pathname = tempfile.mkstemp('.html') + tfile = os.fdopen(handle, 'w+b') + fmt.format(tokensource, tfile) + tfile.close() + catname = os.path.join(testdir, 'dtds', 'HTML4.soc') + try: + try: + import subprocess + ret = subprocess.Popen(['nsgmls', '-s', '-c', catname, pathname], + stdout=subprocess.PIPE).wait() + except ImportError: + # Python 2.3 - no subprocess module + ret = os.popen('nsgmls -s -c "%s" "%s"' % (catname, pathname)).close() + if ret == 32512: raise OSError # not found + except OSError: + # latex not available + pass + else: + self.failIf(ret, 'nsgmls run reported errors') + + os.unlink(pathname) + + def test_get_style_defs(self): + fmt = HtmlFormatter() + sd = fmt.get_style_defs() + self.assert_(sd.startswith('.')) + + fmt = HtmlFormatter(cssclass='foo') + sd = fmt.get_style_defs() + self.assert_(sd.startswith('.foo')) + sd = fmt.get_style_defs('.bar') + self.assert_(sd.startswith('.bar')) + sd = fmt.get_style_defs(['.bar', '.baz']) + fl = sd.splitlines()[0] + self.assert_('.bar' in fl and '.baz' in fl) Added: external/Pygments-0.9/tests/test_latex_formatter.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/test_latex_formatter.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +""" + Pygments LaTeX formatter tests + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + :copyright: 2006-2007 by Georg Brandl. + :license: BSD, see LICENSE for more details. +""" + +import os +import unittest +import tempfile + +from pygments.formatters import LatexFormatter +from pygments.lexers import PythonLexer + + +class LatexFormatterTest(unittest.TestCase): + + def test_valid_output(self): + tokensource = list(PythonLexer().get_tokens(file( + os.path.join(testdir, testfile)).read())) + fmt = LatexFormatter(full=True) + + handle, pathname = tempfile.mkstemp('.tex') + # place all output files in /tmp too + old_wd = os.getcwd() + os.chdir(os.path.dirname(pathname)) + tfile = os.fdopen(handle, 'w+b') + fmt.format(tokensource, tfile) + tfile.close() + try: + try: + import subprocess + ret = subprocess.Popen(['latex', '-interaction=nonstopmode', pathname], + stdout=subprocess.PIPE).wait() + except ImportError: + # Python 2.3 - no subprocess module + ret = os.popen('latex -interaction=nonstopmode "%s"' % pathname).close() + if ret == 32512: raise OSError # not found + except OSError: + # latex not available + pass + else: + self.failIf(ret, 'latex run reported errors') + + os.unlink(pathname) + os.chdir(old_wd) Added: external/Pygments-0.9/tests/test_regexlexer.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/test_regexlexer.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +""" + Pygments regex lexer tests + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + + :copyright: 2007 by Georg Brandl. + :license: BSD, see LICENSE for more details. +""" + +import unittest + +from pygments.token import Text +from pygments.lexer import RegexLexer + +class TestLexer(RegexLexer): + """Test tuple state transitions including #pop.""" + tokens = { + 'root': [ + ('a', Text.Root, 'rag'), + ('e', Text.Root), + ], + 'beer': [ + ('d', Text.Beer, ('#pop', '#pop')), + ], + 'rag': [ + ('b', Text.Rag, '#push'), + ('c', Text.Rag, ('#pop', 'beer')), + ], + } + +class TupleTransTest(unittest.TestCase): + def test(self): + lx = TestLexer() + toks = list(lx.get_tokens_unprocessed('abcde')) + self.assertEquals(toks, + [(0, Text.Root, 'a'), (1, Text.Rag, 'b'), (2, Text.Rag, 'c'), + (3, Text.Beer, 'd'), (4, Text.Root, 'e')]) Added: external/Pygments-0.9/tests/test_token.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/test_token.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +""" + Test suite for the token module + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + :copyright: 2006-2007 by Georg Brandl. + :license: BSD, see LICENSE for more details. +""" + +import unittest +import StringIO +import sys + +from pygments import token + + +class TokenTest(unittest.TestCase): + + def test_tokentype(self): + e = self.assertEquals + r = self.assertRaises + + t = token.String + + e(t.split(), [token.Token, token.Literal, token.String]) + + e(t.__class__, token._TokenType) + + def test_functions(self): + self.assert_(token.is_token_subtype(token.String, token.String)) + self.assert_(token.is_token_subtype(token.String, token.Literal)) + self.failIf(token.is_token_subtype(token.Literal, token.String)) + + self.assert_(token.string_to_tokentype(token.String) is token.String) + self.assert_(token.string_to_tokentype('') is token.Token) + self.assert_(token.string_to_tokentype('String') is token.String) + + def test_sanity_check(self): + try: + try: + old_stdout = sys.stdout + sys.stdout = StringIO.StringIO() + execfile(token.__file__.rstrip('c'), {'__name__': '__main__'}) + finally: + sys.stdout = old_stdout + except SystemExit: + pass + + +if __name__ == '__main__': + unittest.main() Added: external/Pygments-0.9/tests/test_using_api.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/test_using_api.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,31 @@ +import unittest +from pygments.lexer import using, bygroups, this, RegexLexer +from pygments.token import String, Text, Keyword + +class TestLexer(RegexLexer): + tokens = { + 'root': [ + (r'#.*', using(this, state='invalid')), + (r'(")(.+?)(")', bygroups(String, using(this, state='string'), String)), + (r'[^"]+', Text), + ], + 'string': [ + (r'.+', Keyword), + ], + } + +class UsingStateTest(unittest.TestCase): + def test_basic(self): + expected = [(Text, 'a'), (String, '"'), (Keyword, 'bcd'), + (String, '"'), (Text, 'e\n')] + t = list(TestLexer().get_tokens('a"bcd"e')) + self.assertEquals(t, expected) + def test_error(self): + def gen(): + x = list(TestLexer().get_tokens('#a')) + #XXX: should probably raise a more specific exception if the state + # doesn't exist. + self.assertRaises(Exception, gen) + +if __name__ == "__main__": + unittest.main() Added: external/Pygments-0.9/tests/test_util.py ============================================================================== --- (empty file) +++ external/Pygments-0.9/tests/test_util.py Tue Oct 23 20:20:22 2007 @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +""" + Test suite for the util module + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + :copyright: 2006-2007 by Georg Brandl. + :license: BSD, see LICENSE for more details. +""" + +import unittest +import os + +from pygments import util + + +class UtilTest(unittest.TestCase): + + def test_getoptions(self): + raises = self.assertRaises + equals = self.assertEquals + + equals(util.get_bool_opt({}, 'a', True), True) + equals(util.get_bool_opt({}, 'a', 1), True) + equals(util.get_bool_opt({}, 'a', 'true'), True) + equals(util.get_bool_opt({}, 'a', 'no'), False) + raises(util.OptionError, util.get_bool_opt, {}, 'a', []) + raises(util.OptionError, util.get_bool_opt, {}, 'a', 'foo') + + equals(util.get_int_opt({}, 'a', 1), 1) + raises(util.OptionError, util.get_int_opt, {}, 'a', []) + raises(util.OptionError, util.get_int_opt, {}, 'a', 'bar') + + equals(util.get_list_opt({}, 'a', [1]), [1]) + equals(util.get_list_opt({}, 'a', '1 2'), ['1', '2']) + raises(util.OptionError, util.get_list_opt, {}, 'a', 1) + + + def test_docstring_headline(self): + def f1(): + """ + docstring headline + + other text + """ + def f2(): + """ + docstring + headline + + other text + """ + + self.assertEquals(util.docstring_headline(f1), "docstring headline") + self.assertEquals(util.docstring_headline(f2), "docstring headline") + + def test_analysator(self): + class X(object): + def analyse(text): + return 0.5 + analyse = util.make_analysator(analyse) + self.assertEquals(X.analyse(''), 0.5) + + def test_shebang_matches(self): + self.assert_(util.shebang_matches('#!/usr/bin/env python', r'python(2\.\d)?')) + self.assert_(util.shebang_matches('#!/usr/bin/python2.4', r'python(2\.\d)?')) + self.assert_(util.shebang_matches('#!/usr/bin/startsomethingwith python', + r'python(2\.\d)?')) + self.assert_(util.shebang_matches('#!C:\\Python2.4\\Python.exe', + r'python(2\.\d)?')) + + self.failIf(util.shebang_matches('#!/usr/bin/python-ruby', r'python(2\.\d)?')) + self.failIf(util.shebang_matches('#!/usr/bin/python/ruby', r'python(2\.\d)?')) + self.failIf(util.shebang_matches('#!', r'python')) + + def test_doctype_matches(self): + self.assert_(util.doctype_matches(' ', + 'html.*')) + self.failIf(util.doctype_matches(' ', + 'html.*')) + self.assert_(util.html_doctype_matches( + '')) + + def test_xml(self): + self.assert_(util.looks_like_xml( + '')) + self.assert_(util.looks_like_xml('abc')) + self.failIf(util.looks_like_xml('')) + +if __name__ == '__main__': + unittest.main() From python-checkins at python.org Tue Oct 23 20:21:36 2007 From: python-checkins at python.org (georg.brandl) Date: Tue, 23 Oct 2007 20:21:36 +0200 (CEST) Subject: [Python-checkins] r58609 - python/trunk/Doc/Makefile Message-ID: <20071023182136.2E9231E4018@bag.python.org> Author: georg.brandl Date: Tue Oct 23 20:21:35 2007 New Revision: 58609 Modified: python/trunk/Doc/Makefile Log: Update Pygments version from externals. Modified: python/trunk/Doc/Makefile ============================================================================== --- python/trunk/Doc/Makefile (original) +++ python/trunk/Doc/Makefile Tue Oct 23 20:21:35 2007 @@ -29,7 +29,7 @@ fi @if [ ! -d tools/pygments ]; then \ echo "Checking out Pygments..."; \ - svn checkout $(SVNROOT)/external/Pygments-0.8.1/pygments tools/pygments; \ + svn checkout $(SVNROOT)/external/Pygments-0.9/pygments tools/pygments; \ fi update: checkout From python-checkins at python.org Tue Oct 23 20:23:43 2007 From: python-checkins at python.org (thomas.heller) Date: Tue, 23 Oct 2007 20:23:43 +0200 (CEST) Subject: [Python-checkins] r58611 - in python/branches/ctypes-branch: Lib/ctypes/test/test_callbacks.py Modules/_ctypes/cfield.c Message-ID: <20071023182343.0E8BE1E4018@bag.python.org> Author: thomas.heller Date: Tue Oct 23 20:23:42 2007 New Revision: 58611 Modified: python/branches/ctypes-branch/Lib/ctypes/test/test_callbacks.py python/branches/ctypes-branch/Modules/_ctypes/cfield.c Log: Remove the debug prints, they do not help to find the bugs. Modified: python/branches/ctypes-branch/Lib/ctypes/test/test_callbacks.py ============================================================================== --- python/branches/ctypes-branch/Lib/ctypes/test/test_callbacks.py (original) +++ python/branches/ctypes-branch/Lib/ctypes/test/test_callbacks.py Tue Oct 23 20:23:42 2007 @@ -1,5 +1,4 @@ import unittest -import sys from ctypes import * import _ctypes_test @@ -79,14 +78,8 @@ self.check_type(c_double, -3.14) def test_longdouble(self): - print >> sys.stderr, "First Test Start" self.check_type(c_longdouble, 3.14) - print >> sys.stderr, "First Test Done" - print >> sys.stderr - - print >> sys.stderr, "Second Test Start" - self.check_type(c_longdouble, 2.78) - print >> sys.stderr, "Second Test Done" + self.check_type(c_longdouble, -3.14) def test_char(self): self.check_type(c_char, "x") Modified: python/branches/ctypes-branch/Modules/_ctypes/cfield.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/cfield.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/cfield.c Tue Oct 23 20:23:42 2007 @@ -993,7 +993,7 @@ D_set(void *ptr, PyObject *value, Py_ssize_t size) { long double x; - int i; + x = PyFloat_AsDouble(value); if (x == -1 && PyErr_Occurred()) { PyErr_Format(PyExc_TypeError, @@ -1002,10 +1002,6 @@ return NULL; } memcpy(ptr, &x, sizeof(long double)); - fprintf(stderr, "D_set(%p, %f) (", ptr, (float)x); - for (i = 0; i < sizeof(long double); ++i) - fprintf(stderr, "%02x ", ((char *)ptr)[i] & 0xFF); - fprintf(stderr, ")\n"); _RET(value); } @@ -1013,12 +1009,7 @@ D_get(void *ptr, Py_ssize_t size) { long double val; - int i; memcpy(&val, ptr, sizeof(long double)); - fprintf(stderr, "D_get(%p) %f (", ptr, (float)val); - for (i = 0; i < sizeof(long double); ++i) - fprintf(stderr, "%02x ", ((char *)ptr)[i] & 0xFF); - fprintf(stderr, ")\n"); return PyFloat_FromDouble(val); } From python-checkins at python.org Tue Oct 23 20:35:43 2007 From: python-checkins at python.org (thomas.heller) Date: Tue, 23 Oct 2007 20:35:43 +0200 (CEST) Subject: [Python-checkins] r58614 - python/branches/ctypes-branch Message-ID: <20071023183543.C6D6E1E5370@bag.python.org> Author: thomas.heller Date: Tue Oct 23 20:35:43 2007 New Revision: 58614 Modified: python/branches/ctypes-branch/ (props changed) Log: Initialized merge tracking via "svnmerge" with revisions "1-58392" from svn+ssh://pythondev at svn.python.org/python/trunk From python-checkins at python.org Tue Oct 23 20:47:54 2007 From: python-checkins at python.org (thomas.heller) Date: Tue, 23 Oct 2007 20:47:54 +0200 (CEST) Subject: [Python-checkins] r58615 - in python/branches/ctypes-branch: Doc/ACKS.txt Doc/Makefile Doc/c-api/abstract.rst Doc/c-api/index.rst Doc/contents.rst Doc/distutils/apiref.rst Doc/distutils/builtdist.rst Doc/documenting/markup.rst Doc/extending/newtypes.rst Doc/glossary.rst Doc/howto/functional.rst Doc/howto/index.rst Doc/howto/pythonmac.rst Doc/howto/regex.rst Doc/includes/email-unpack.py Doc/library/_ast.rst Doc/library/autogil.rst Doc/library/codecs.rst Doc/library/collections.rst Doc/library/compiler.rst Doc/library/contextlib.rst Doc/library/cookielib.rst Doc/library/csv.rst Doc/library/ctypes.rst Doc/library/difflib.rst Doc/library/dis.rst Doc/library/exceptions.rst Doc/library/filecmp.rst Doc/library/functions.rst Doc/library/glob.rst Doc/library/heapq.rst Doc/library/inspect.rst Doc/library/itertools.rst Doc/library/logging.rst Doc/library/mailbox.rst Doc/library/mmap.rst Doc/library/os.path.rst Doc/library/os.rst Doc/library/parser.rst Doc/library/pickle.rst Doc/library/pickletools.rst Doc/library/pty.rst Doc/library/pyclbr.rst Doc/library/re.rst Doc/library/sqlite3.rst Doc/library/ssl.rst Doc/library/stdtypes.rst Doc/library/tokenize.rst Doc/library/types.rst Doc/library/urllib.rst Doc/library/weakref.rst Doc/library/wsgiref.rst Doc/library/xml.etree.elementtree.rst Doc/library/xmlrpclib.rst Doc/reference/compound_stmts.rst Doc/reference/datamodel.rst Doc/tutorial/classes.rst Doc/tutorial/interactive.rst Doc/tutorial/modules.rst Doc/using Doc/whatsnew/2.6.rst Lib/bsddb/dbshelve.py Lib/bsddb/dbtables.py Lib/bsddb/test/test_1413192.py Lib/bsddb/test/test_dbshelve.py Lib/bsddb/test/test_dbtables.py Lib/collections.py Lib/ctypes/__init__.py Lib/decimal.py Lib/httplib.py Lib/idlelib/EditorWindow.py Lib/idlelib/NEWS.txt Lib/idlelib/configDialog.py Lib/idlelib/run.py Lib/smtpd.py Lib/test/crashers/file_threads.py Lib/test/crashers/multithreaded_close.py Lib/test/test_collections.py Lib/test/test_decimal.py Lib/test/test_deque.py Lib/test/test_httplib.py Lib/test/test_itertools.py Lib/test/test_list.py Lib/test/test_mmap.py Lib/test/test_support.py Lib/test/test_zlib.py Makefile.pre.in Misc/NEWS Misc/developers.txt Modules/_bsddb.c Modules/_collectionsmodule.c Modules/_ctypes/cfield.c Modules/_ctypes/libffi/src/alpha/ffi.c Modules/_ctypes/libffi/src/ia64/ffi.c Modules/_ctypes/libffi/src/mips/ffi.c Modules/_ctypes/libffi/src/pa/ffi.c Modules/_ctypes/libffi/src/powerpc/ffi.c Modules/_ctypes/libffi/src/s390/ffi.c Modules/_ctypes/libffi/src/sparc/ffi.c Modules/main.c Modules/mmapmodule.c Objects/dictobject.c Objects/listobject.c PC/pyconfig.h Parser/pgen.c Parser/tokenizer.c Python/marshal.c setup.py Message-ID: <20071023184754.883ED1E401A@bag.python.org> Author: thomas.heller Date: Tue Oct 23 20:47:50 2007 New Revision: 58615 Added: python/branches/ctypes-branch/Doc/using/ - copied from r58609, python/trunk/Doc/using/ python/branches/ctypes-branch/Lib/test/crashers/multithreaded_close.py - copied unchanged from r58609, python/trunk/Lib/test/crashers/multithreaded_close.py Removed: python/branches/ctypes-branch/Doc/howto/pythonmac.rst python/branches/ctypes-branch/Lib/test/crashers/file_threads.py Modified: python/branches/ctypes-branch/ (props changed) python/branches/ctypes-branch/Doc/ACKS.txt python/branches/ctypes-branch/Doc/Makefile python/branches/ctypes-branch/Doc/c-api/abstract.rst python/branches/ctypes-branch/Doc/c-api/index.rst python/branches/ctypes-branch/Doc/contents.rst python/branches/ctypes-branch/Doc/distutils/apiref.rst python/branches/ctypes-branch/Doc/distutils/builtdist.rst python/branches/ctypes-branch/Doc/documenting/markup.rst python/branches/ctypes-branch/Doc/extending/newtypes.rst python/branches/ctypes-branch/Doc/glossary.rst python/branches/ctypes-branch/Doc/howto/functional.rst python/branches/ctypes-branch/Doc/howto/index.rst python/branches/ctypes-branch/Doc/howto/regex.rst python/branches/ctypes-branch/Doc/includes/email-unpack.py python/branches/ctypes-branch/Doc/library/_ast.rst python/branches/ctypes-branch/Doc/library/autogil.rst python/branches/ctypes-branch/Doc/library/codecs.rst python/branches/ctypes-branch/Doc/library/collections.rst python/branches/ctypes-branch/Doc/library/compiler.rst python/branches/ctypes-branch/Doc/library/contextlib.rst python/branches/ctypes-branch/Doc/library/cookielib.rst python/branches/ctypes-branch/Doc/library/csv.rst python/branches/ctypes-branch/Doc/library/ctypes.rst python/branches/ctypes-branch/Doc/library/difflib.rst python/branches/ctypes-branch/Doc/library/dis.rst python/branches/ctypes-branch/Doc/library/exceptions.rst python/branches/ctypes-branch/Doc/library/filecmp.rst python/branches/ctypes-branch/Doc/library/functions.rst python/branches/ctypes-branch/Doc/library/glob.rst python/branches/ctypes-branch/Doc/library/heapq.rst python/branches/ctypes-branch/Doc/library/inspect.rst python/branches/ctypes-branch/Doc/library/itertools.rst python/branches/ctypes-branch/Doc/library/logging.rst python/branches/ctypes-branch/Doc/library/mailbox.rst python/branches/ctypes-branch/Doc/library/mmap.rst python/branches/ctypes-branch/Doc/library/os.path.rst python/branches/ctypes-branch/Doc/library/os.rst python/branches/ctypes-branch/Doc/library/parser.rst python/branches/ctypes-branch/Doc/library/pickle.rst python/branches/ctypes-branch/Doc/library/pickletools.rst python/branches/ctypes-branch/Doc/library/pty.rst python/branches/ctypes-branch/Doc/library/pyclbr.rst python/branches/ctypes-branch/Doc/library/re.rst python/branches/ctypes-branch/Doc/library/sqlite3.rst python/branches/ctypes-branch/Doc/library/ssl.rst python/branches/ctypes-branch/Doc/library/stdtypes.rst python/branches/ctypes-branch/Doc/library/tokenize.rst python/branches/ctypes-branch/Doc/library/types.rst python/branches/ctypes-branch/Doc/library/urllib.rst python/branches/ctypes-branch/Doc/library/weakref.rst python/branches/ctypes-branch/Doc/library/wsgiref.rst python/branches/ctypes-branch/Doc/library/xml.etree.elementtree.rst python/branches/ctypes-branch/Doc/library/xmlrpclib.rst python/branches/ctypes-branch/Doc/reference/compound_stmts.rst python/branches/ctypes-branch/Doc/reference/datamodel.rst python/branches/ctypes-branch/Doc/tutorial/classes.rst python/branches/ctypes-branch/Doc/tutorial/interactive.rst python/branches/ctypes-branch/Doc/tutorial/modules.rst python/branches/ctypes-branch/Doc/whatsnew/2.6.rst python/branches/ctypes-branch/Lib/bsddb/dbshelve.py python/branches/ctypes-branch/Lib/bsddb/dbtables.py python/branches/ctypes-branch/Lib/bsddb/test/test_1413192.py python/branches/ctypes-branch/Lib/bsddb/test/test_dbshelve.py python/branches/ctypes-branch/Lib/bsddb/test/test_dbtables.py python/branches/ctypes-branch/Lib/collections.py python/branches/ctypes-branch/Lib/ctypes/__init__.py python/branches/ctypes-branch/Lib/decimal.py python/branches/ctypes-branch/Lib/httplib.py python/branches/ctypes-branch/Lib/idlelib/EditorWindow.py python/branches/ctypes-branch/Lib/idlelib/NEWS.txt python/branches/ctypes-branch/Lib/idlelib/configDialog.py python/branches/ctypes-branch/Lib/idlelib/run.py python/branches/ctypes-branch/Lib/smtpd.py python/branches/ctypes-branch/Lib/test/test_collections.py python/branches/ctypes-branch/Lib/test/test_decimal.py python/branches/ctypes-branch/Lib/test/test_deque.py python/branches/ctypes-branch/Lib/test/test_httplib.py python/branches/ctypes-branch/Lib/test/test_itertools.py python/branches/ctypes-branch/Lib/test/test_list.py python/branches/ctypes-branch/Lib/test/test_mmap.py python/branches/ctypes-branch/Lib/test/test_support.py python/branches/ctypes-branch/Lib/test/test_zlib.py python/branches/ctypes-branch/Makefile.pre.in python/branches/ctypes-branch/Misc/NEWS python/branches/ctypes-branch/Misc/developers.txt python/branches/ctypes-branch/Modules/_bsddb.c python/branches/ctypes-branch/Modules/_collectionsmodule.c python/branches/ctypes-branch/Modules/_ctypes/cfield.c python/branches/ctypes-branch/Modules/_ctypes/libffi/src/alpha/ffi.c python/branches/ctypes-branch/Modules/_ctypes/libffi/src/ia64/ffi.c python/branches/ctypes-branch/Modules/_ctypes/libffi/src/mips/ffi.c python/branches/ctypes-branch/Modules/_ctypes/libffi/src/pa/ffi.c python/branches/ctypes-branch/Modules/_ctypes/libffi/src/powerpc/ffi.c python/branches/ctypes-branch/Modules/_ctypes/libffi/src/s390/ffi.c python/branches/ctypes-branch/Modules/_ctypes/libffi/src/sparc/ffi.c python/branches/ctypes-branch/Modules/main.c python/branches/ctypes-branch/Modules/mmapmodule.c python/branches/ctypes-branch/Objects/dictobject.c python/branches/ctypes-branch/Objects/listobject.c python/branches/ctypes-branch/PC/pyconfig.h python/branches/ctypes-branch/Parser/pgen.c python/branches/ctypes-branch/Parser/tokenizer.c python/branches/ctypes-branch/Python/marshal.c python/branches/ctypes-branch/setup.py Log: Merged revisions 58393-58614 via svnmerge from svn+ssh://pythondev at svn.python.org/python/trunk ........ r58394 | gregory.p.smith | 2007-10-09 20:26:02 +0200 (Di, 09 Okt 2007) | 2 lines remove another sleepycat reference ........ r58396 | kurt.kaiser | 2007-10-09 21:31:30 +0200 (Di, 09 Okt 2007) | 3 lines Allow interrupt only when executing user code in subprocess Patch 1225 Tal Einat modified from IDLE-Spoon. ........ r58399 | brett.cannon | 2007-10-10 02:07:50 +0200 (Mi, 10 Okt 2007) | 5 lines Remove file-level typedefs that were inconsistently used throughout the file. Just move over to the public API names. Closes issue1238. ........ r58401 | raymond.hettinger | 2007-10-10 02:26:46 +0200 (Mi, 10 Okt 2007) | 1 line Accept Jim Jewett's api suggestion to use None instead of -1 to indicate unbounded deques. ........ r58403 | kurt.kaiser | 2007-10-10 02:55:40 +0200 (Mi, 10 Okt 2007) | 2 lines Allow cursor color change w/o restart. Patch 1725576 Tal Einat. ........ r58404 | kurt.kaiser | 2007-10-10 03:06:47 +0200 (Mi, 10 Okt 2007) | 2 lines show paste if > 80 columns. Patch 1659326 Tal Einat. ........ r58415 | thomas.heller | 2007-10-11 21:51:32 +0200 (Do, 11 Okt 2007) | 5 lines On OS X, use os.uname() instead of gestalt.sysv(...) to get the operating system version. This allows to use ctypes when Python was configured with --disable-toolbox-glue. ........ r58419 | neal.norwitz | 2007-10-12 05:01:01 +0200 (Fr, 12 Okt 2007) | 1 line Get rid of warning about not being able to create an existing directory. ........ r58420 | neal.norwitz | 2007-10-12 05:01:30 +0200 (Fr, 12 Okt 2007) | 1 line Get rid of warnings on a bunch of platforms by using a proper prototype. ........ r58421 | neal.norwitz | 2007-10-12 05:01:54 +0200 (Fr, 12 Okt 2007) | 4 lines Get rid of compiler warning about retval being used (returned) without being initialized. (gcc warning and Coverity 202) ........ r58422 | neal.norwitz | 2007-10-12 05:03:23 +0200 (Fr, 12 Okt 2007) | 1 line Fix Coverity 168: Close the file before returning (exiting). ........ r58423 | neal.norwitz | 2007-10-12 05:04:18 +0200 (Fr, 12 Okt 2007) | 4 lines Fix Coverity 180: Don't overallocate. We don't need structs, but pointers. Also fix a memory leak. ........ r58424 | neal.norwitz | 2007-10-12 05:05:19 +0200 (Fr, 12 Okt 2007) | 5 lines Fix Coverity 185-186: If the passed in FILE is NULL, uninitialized memory would be accessed. Will backport. ........ r58425 | neal.norwitz | 2007-10-12 05:52:34 +0200 (Fr, 12 Okt 2007) | 1 line Get this module to compile with bsddb versions prior to 4.3 ........ r58430 | martin.v.loewis | 2007-10-12 10:56:52 +0200 (Fr, 12 Okt 2007) | 3 lines Bug #1216: Restore support for Visual Studio 2002. Will backport to 2.5. ........ r58433 | raymond.hettinger | 2007-10-12 19:53:11 +0200 (Fr, 12 Okt 2007) | 1 line Fix test of count.__repr__() to ignore the 'L' if the count is a long ........ r58434 | gregory.p.smith | 2007-10-12 20:44:06 +0200 (Fr, 12 Okt 2007) | 4 lines Fixes http://bugs.python.org/issue1233 - bsddb.dbshelve.DBShelf.append was useless due to inverted logic. Also adds a test case for RECNO dbs to test_dbshelve. ........ r58445 | georg.brandl | 2007-10-13 15:20:03 +0200 (Sa, 13 Okt 2007) | 2 lines Fix email example. ........ r58450 | gregory.p.smith | 2007-10-14 01:02:05 +0200 (So, 14 Okt 2007) | 2 lines Fix an uncollectable reference leak in bsddb.db.DBShelf.append ........ r58453 | neal.norwitz | 2007-10-14 02:18:40 +0200 (So, 14 Okt 2007) | 8 lines Let the O/S supply a port if none of the default ports can be used. This should make the tests more robust at the expense of allowing tests to be sloppier by not requiring them to cleanup after themselves. (It will legitamitely help when running two test suites simultaneously or if another process is already using one of the predefined ports.) Also simplifies (slightLy) the exception handling elsewhere. ........ r58459 | neal.norwitz | 2007-10-14 20:30:21 +0200 (So, 14 Okt 2007) | 2 lines Don't raise a string exception, they don't work anymore. ........ r58460 | neal.norwitz | 2007-10-14 20:40:37 +0200 (So, 14 Okt 2007) | 1 line Use unittest for assertions ........ r58468 | armin.rigo | 2007-10-15 09:48:35 +0200 (Mo, 15 Okt 2007) | 2 lines test_bigbits was not testing what it seemed to. ........ r58471 | guido.van.rossum | 2007-10-15 17:54:11 +0200 (Mo, 15 Okt 2007) | 3 lines Change a PyErr_Print() into a PyErr_Clear(), per discussion in issue 1031213. ........ r58500 | raymond.hettinger | 2007-10-16 21:18:30 +0200 (Di, 16 Okt 2007) | 1 line Improve error messages ........ r58506 | raymond.hettinger | 2007-10-16 23:28:32 +0200 (Di, 16 Okt 2007) | 1 line More docs, error messages, and tests ........ r58507 | andrew.kuchling | 2007-10-17 00:58:03 +0200 (Mi, 17 Okt 2007) | 1 line Add items ........ r58508 | brett.cannon | 2007-10-17 01:24:06 +0200 (Mi, 17 Okt 2007) | 3 lines Remove ``:const:`` notation on None in parameter list. Since the markup is not rendered for parameters it just showed up as ``:const:`None` `` in the output. ........ r58509 | brett.cannon | 2007-10-17 01:26:45 +0200 (Mi, 17 Okt 2007) | 3 lines Re-order some functions whose parameters differ between PyObject and const char * so that they are next to each other. ........ r58522 | armin.rigo | 2007-10-17 20:46:37 +0200 (Mi, 17 Okt 2007) | 5 lines Fix the overflow checking of list_repeat. Introduce overflow checking into list_inplace_repeat. Backport candidate, possibly. ........ r58530 | facundo.batista | 2007-10-18 05:16:03 +0200 (Do, 18 Okt 2007) | 7 lines Issue #1580738. When HTTPConnection reads the whole stream with read(), it closes itself. When the stream is read in several calls to read(n), it should behave in the same way if HTTPConnection knows where the end of the stream is (through self.length). Added a test case for this behaviour. ........ r58531 | facundo.batista | 2007-10-18 05:44:48 +0200 (Do, 18 Okt 2007) | 3 lines Issue 1289, just a typo. ........ r58532 | gregory.p.smith | 2007-10-18 09:56:54 +0200 (Do, 18 Okt 2007) | 4 lines cleanup test_dbtables to use mkdtemp. cleanup dbtables to pass txn as a keyword argument whenever possible to avoid bugs and confusion. (dbtables.py line 447 self.db.get using txn as a non-keyword was an actual bug due to this) ........ r58533 | gregory.p.smith | 2007-10-18 10:34:20 +0200 (Do, 18 Okt 2007) | 4 lines Fix a weird bug in dbtables: if it chose a random rowid string that contained NULL bytes it would cause the database all sorts of problems in the future leading to very strange random failures and corrupt dbtables.bsdTableDb dbs. ........ r58534 | gregory.p.smith | 2007-10-18 18:32:02 +0200 (Do, 18 Okt 2007) | 3 lines A cleaner fix than the one committed last night. Generate random rowids that do not contain null bytes. ........ r58537 | gregory.p.smith | 2007-10-18 19:17:57 +0200 (Do, 18 Okt 2007) | 2 lines mention bsddb fixes. ........ r58538 | raymond.hettinger | 2007-10-18 23:13:06 +0200 (Do, 18 Okt 2007) | 1 line Remove useless warning ........ r58539 | gregory.p.smith | 2007-10-19 09:31:20 +0200 (Fr, 19 Okt 2007) | 2 lines squelch the warning that this test is supposed to trigger. ........ r58542 | georg.brandl | 2007-10-19 14:32:39 +0200 (Fr, 19 Okt 2007) | 2 lines Clarify wording for apply(). ........ r58544 | mark.summerfield | 2007-10-19 14:48:17 +0200 (Fr, 19 Okt 2007) | 3 lines Added a cross-ref to each other. ........ r58545 | georg.brandl | 2007-10-19 19:38:49 +0200 (Fr, 19 Okt 2007) | 2 lines #1284: "S" means "seen", not unread. ........ r58548 | thomas.heller | 2007-10-19 20:11:41 +0200 (Fr, 19 Okt 2007) | 4 lines Fix ctypes on 32-bit systems when Python is configured --with-system-ffi. See also https://bugs.launchpad.net/bugs/72505. Ported from release25-maint branch. ........ r58550 | facundo.batista | 2007-10-19 21:25:57 +0200 (Fr, 19 Okt 2007) | 8 lines The constructor from tuple was way too permissive: it allowed bad coefficient numbers, floats in the sign, and other details that generated directly the wrong number in the best case, or triggered misfunctionality in the alorithms. Test cases added for these issues. Thanks Mark Dickinson. ........ r58559 | georg.brandl | 2007-10-20 15:22:53 +0200 (Sa, 20 Okt 2007) | 2 lines Fix code being interpreted as a target. ........ r58561 | georg.brandl | 2007-10-20 15:36:24 +0200 (Sa, 20 Okt 2007) | 2 lines Document new "cmdoption" directive. ........ r58562 | georg.brandl | 2007-10-20 17:21:22 +0200 (Sa, 20 Okt 2007) | 2 lines Make a path more Unix-standardy. ........ r58564 | georg.brandl | 2007-10-20 19:51:39 +0200 (Sa, 20 Okt 2007) | 2 lines Document new directive "envvar". ........ r58567 | georg.brandl | 2007-10-20 20:08:14 +0200 (Sa, 20 Okt 2007) | 6 lines * Add new toplevel chapter, "Using Python." (how to install, configure and setup python on different platforms -- at least in theory.) * Move the Python on Mac docs in that chapter. * Add a new chapter about the command line invocation, by stargaming. ........ r58568 | georg.brandl | 2007-10-20 20:33:20 +0200 (Sa, 20 Okt 2007) | 2 lines Change title, for now. ........ r58569 | georg.brandl | 2007-10-20 20:39:25 +0200 (Sa, 20 Okt 2007) | 2 lines Add entry to ACKS. ........ r58570 | georg.brandl | 2007-10-20 21:05:45 +0200 (Sa, 20 Okt 2007) | 2 lines Clarify -E docs. ........ r58571 | georg.brandl | 2007-10-20 21:08:36 +0200 (Sa, 20 Okt 2007) | 2 lines Even more clarification. ........ r58572 | andrew.kuchling | 2007-10-20 21:25:37 +0200 (Sa, 20 Okt 2007) | 1 line Fix protocol name ........ r58573 | andrew.kuchling | 2007-10-20 21:35:18 +0200 (Sa, 20 Okt 2007) | 1 line Various items ........ r58574 | andrew.kuchling | 2007-10-20 21:39:35 +0200 (Sa, 20 Okt 2007) | 1 line Use correct header line ........ r58576 | armin.rigo | 2007-10-21 11:14:15 +0200 (So, 21 Okt 2007) | 3 lines Add a crasher for the long-standing issue with closing a file while another thread uses it. ........ r58577 | georg.brandl | 2007-10-21 12:01:56 +0200 (So, 21 Okt 2007) | 2 lines Remove duplicate crasher. ........ r58578 | georg.brandl | 2007-10-21 12:24:20 +0200 (So, 21 Okt 2007) | 2 lines Unify "byte code" to "bytecode". Also sprinkle :term: markup for it. ........ r58579 | georg.brandl | 2007-10-21 12:32:54 +0200 (So, 21 Okt 2007) | 2 lines Add markup to new function descriptions. ........ r58580 | georg.brandl | 2007-10-21 12:45:46 +0200 (So, 21 Okt 2007) | 2 lines Add :term:s for descriptors. ........ r58581 | georg.brandl | 2007-10-21 12:46:24 +0200 (So, 21 Okt 2007) | 2 lines Unify "file-descriptor" to "file descriptor". ........ r58582 | georg.brandl | 2007-10-21 12:52:38 +0200 (So, 21 Okt 2007) | 2 lines Add :term: for generators. ........ r58583 | georg.brandl | 2007-10-21 14:10:28 +0200 (So, 21 Okt 2007) | 2 lines Add :term:s for iterator. ........ r58584 | georg.brandl | 2007-10-21 14:15:05 +0200 (So, 21 Okt 2007) | 2 lines Add :term:s for "new-style class". ........ r58588 | neal.norwitz | 2007-10-22 06:47:54 +0200 (Mo, 22 Okt 2007) | 1 line Add Chris Monson so he can edit PEPs. ........ r58594 | guido.van.rossum | 2007-10-22 18:27:19 +0200 (Mo, 22 Okt 2007) | 4 lines Issue #1307, patch by Derek Shockey. When "MAIL" is received without args, an exception happens instead of sending a 501 syntax error response. ........ r58598 | travis.oliphant | 2007-10-23 04:40:56 +0200 (Di, 23 Okt 2007) | 1 line Add phuang patch from Issue 708374 which adds offset parameter to mmap module. ........ r58601 | neal.norwitz | 2007-10-23 07:44:27 +0200 (Di, 23 Okt 2007) | 2 lines Bug #1313, fix typo (wrong variable name) in example. ........ r58609 | georg.brandl | 2007-10-23 20:21:35 +0200 (Di, 23 Okt 2007) | 2 lines Update Pygments version from externals. ........ Modified: python/branches/ctypes-branch/Doc/ACKS.txt ============================================================================== --- python/branches/ctypes-branch/Doc/ACKS.txt (original) +++ python/branches/ctypes-branch/Doc/ACKS.txt Tue Oct 23 20:47:50 2007 @@ -103,6 +103,7 @@ * Detlef Lannert * Piers Lauder * Glyph Lefkowitz +* Robert Lehmann * Marc-Andr? Lemburg * Ulf A. Lindgren * Everett Lipman Modified: python/branches/ctypes-branch/Doc/Makefile ============================================================================== --- python/branches/ctypes-branch/Doc/Makefile (original) +++ python/branches/ctypes-branch/Doc/Makefile Tue Oct 23 20:47:50 2007 @@ -29,7 +29,7 @@ fi @if [ ! -d tools/pygments ]; then \ echo "Checking out Pygments..."; \ - svn checkout $(SVNROOT)/external/Pygments-0.8.1/pygments tools/pygments; \ + svn checkout $(SVNROOT)/external/Pygments-0.9/pygments tools/pygments; \ fi update: checkout Modified: python/branches/ctypes-branch/Doc/c-api/abstract.rst ============================================================================== --- python/branches/ctypes-branch/Doc/c-api/abstract.rst (original) +++ python/branches/ctypes-branch/Doc/c-api/abstract.rst Tue Oct 23 20:47:50 2007 @@ -31,21 +31,14 @@ instead of the :func:`repr`. -.. cfunction:: int PyObject_HasAttrString(PyObject *o, const char *attr_name) +.. cfunction:: int PyObject_HasAttr(PyObject *o, PyObject *attr_name) Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. This is equivalent to the Python expression ``hasattr(o, attr_name)``. This function always succeeds. -.. cfunction:: PyObject* PyObject_GetAttrString(PyObject *o, const char *attr_name) - - Retrieve an attribute named *attr_name* from object *o*. Returns the attribute - value on success, or *NULL* on failure. This is the equivalent of the Python - expression ``o.attr_name``. - - -.. cfunction:: int PyObject_HasAttr(PyObject *o, PyObject *attr_name) +.. cfunction:: int PyObject_HasAttrString(PyObject *o, const char *attr_name) Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. This is equivalent to the Python expression ``hasattr(o, attr_name)``. This function @@ -59,27 +52,34 @@ expression ``o.attr_name``. -.. cfunction:: int PyObject_SetAttrString(PyObject *o, const char *attr_name, PyObject *v) +.. cfunction:: PyObject* PyObject_GetAttrString(PyObject *o, const char *attr_name) + + Retrieve an attribute named *attr_name* from object *o*. Returns the attribute + value on success, or *NULL* on failure. This is the equivalent of the Python + expression ``o.attr_name``. + + +.. cfunction:: int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v) Set the value of the attribute named *attr_name*, for object *o*, to the value *v*. Returns ``-1`` on failure. This is the equivalent of the Python statement ``o.attr_name = v``. -.. cfunction:: int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v) +.. cfunction:: int PyObject_SetAttrString(PyObject *o, const char *attr_name, PyObject *v) Set the value of the attribute named *attr_name*, for object *o*, to the value *v*. Returns ``-1`` on failure. This is the equivalent of the Python statement ``o.attr_name = v``. -.. cfunction:: int PyObject_DelAttrString(PyObject *o, const char *attr_name) +.. cfunction:: int PyObject_DelAttr(PyObject *o, PyObject *attr_name) Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on failure. - This is the equivalent of the Python statement: ``del o.attr_name``. + This is the equivalent of the Python statement ``del o.attr_name``. -.. cfunction:: int PyObject_DelAttr(PyObject *o, PyObject *attr_name) +.. cfunction:: int PyObject_DelAttrString(PyObject *o, const char *attr_name) Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on failure. This is the equivalent of the Python statement ``del o.attr_name``. @@ -351,7 +351,7 @@ .. cfunction:: int PyObject_AsFileDescriptor(PyObject *o) - Derives a file-descriptor from a Python object. If the object is an integer or + Derives a file descriptor from a Python object. If the object is an integer or long integer, its value is returned. If not, the object's :meth:`fileno` method is called if it exists; the method must return an integer or long integer, which is returned as the file descriptor value. Returns ``-1`` on failure. Modified: python/branches/ctypes-branch/Doc/c-api/index.rst ============================================================================== --- python/branches/ctypes-branch/Doc/c-api/index.rst (original) +++ python/branches/ctypes-branch/Doc/c-api/index.rst Tue Oct 23 20:47:50 2007 @@ -12,12 +12,6 @@ which describes the general principles of extension writing but does not document the API functions in detail. -.. warning:: - - The current version of this document is somewhat incomplete. However, most of - the important functions, types and structures are described. - - .. toctree:: :maxdepth: 2 Modified: python/branches/ctypes-branch/Doc/contents.rst ============================================================================== --- python/branches/ctypes-branch/Doc/contents.rst (original) +++ python/branches/ctypes-branch/Doc/contents.rst Tue Oct 23 20:47:50 2007 @@ -6,6 +6,7 @@ whatsnew/2.6.rst tutorial/index.rst + using/index.rst reference/index.rst library/index.rst extending/index.rst Modified: python/branches/ctypes-branch/Doc/distutils/apiref.rst ============================================================================== --- python/branches/ctypes-branch/Doc/distutils/apiref.rst (original) +++ python/branches/ctypes-branch/Doc/distutils/apiref.rst Tue Oct 23 20:47:50 2007 @@ -1199,7 +1199,7 @@ If *force* is true, all files are recompiled regardless of timestamps. - The source filename encoded in each bytecode file defaults to the filenames + The source filename encoded in each :term:`bytecode` file defaults to the filenames listed in *py_files*; you can modify these with *prefix* and *basedir*. *prefix* is a string that will be stripped off of each source filename, and *base_dir* is a directory name that will be prepended (after *prefix* is Modified: python/branches/ctypes-branch/Doc/distutils/builtdist.rst ============================================================================== --- python/branches/ctypes-branch/Doc/distutils/builtdist.rst (original) +++ python/branches/ctypes-branch/Doc/distutils/builtdist.rst Tue Oct 23 20:47:50 2007 @@ -311,7 +311,7 @@ have to create a separate installer for every Python version you want to support. -The installer will try to compile pure modules into bytecode after installation +The installer will try to compile pure modules into :term:`bytecode` after installation on the target system in normal and optimizing mode. If you don't want this to happen for some reason, you can run the :command:`bdist_wininst` command with the :option:`--no-target-compile` and/or the :option:`--no-target-optimize` Modified: python/branches/ctypes-branch/Doc/documenting/markup.rst ============================================================================== --- python/branches/ctypes-branch/Doc/documenting/markup.rst (original) +++ python/branches/ctypes-branch/Doc/documenting/markup.rst Tue Oct 23 20:47:50 2007 @@ -210,7 +210,20 @@ .. describe:: opcode - Describes a Python bytecode instruction. + Describes a Python :term:`bytecode` instruction. + +.. describe:: cmdoption + + Describes a command line option or switch. Option argument names should be + enclosed in angle brackets. Example:: + + .. cmdoption:: -m + + Run a module as a script. + +.. describe:: envvar + + Describes an environment variable that Python uses or defines. There is also a generic version of these directives: Modified: python/branches/ctypes-branch/Doc/extending/newtypes.rst ============================================================================== --- python/branches/ctypes-branch/Doc/extending/newtypes.rst (original) +++ python/branches/ctypes-branch/Doc/extending/newtypes.rst Tue Oct 23 20:47:50 2007 @@ -1149,7 +1149,7 @@ attributes, when the values are computed, or how relevant data is stored. When :cfunc:`PyType_Ready` is called, it uses three tables referenced by the -type object to create *descriptors* which are placed in the dictionary of the +type object to create :term:`descriptor`\s which are placed in the dictionary of the type object. Each descriptor controls access to one attribute of the instance object. Each of the tables is optional; if all three are *NULL*, instances of the type will only have attributes that are inherited from their base type, and @@ -1193,7 +1193,7 @@ char *doc; } PyMemberDef; -For each entry in the table, a descriptor will be constructed and added to the +For each entry in the table, a :term:`descriptor` will be constructed and added to the type which will be able to extract a value from the instance structure. The :attr:`type` field should contain one of the type codes defined in the :file:`structmember.h` header; the value will be used to determine how to Modified: python/branches/ctypes-branch/Doc/glossary.rst ============================================================================== --- python/branches/ctypes-branch/Doc/glossary.rst (original) +++ python/branches/ctypes-branch/Doc/glossary.rst Tue Oct 23 20:47:50 2007 @@ -20,13 +20,13 @@ Benevolent Dictator For Life, a.k.a. `Guido van Rossum `_, Python's creator. - byte code - The internal representation of a Python program in the interpreter. The - byte code is also cached in ``.pyc`` and ``.pyo`` files so that executing - the same file is faster the second time (recompilation from source to byte - code can be avoided). This "intermediate language" is said to run on a - "virtual machine" that calls the subroutines corresponding to each - bytecode. + bytecode + Python source code is compiled into bytecode, the internal representation + of a Python program in the interpreter. The bytecode is also cached in + ``.pyc`` and ``.pyo`` files so that executing the same file is faster the + second time (recompilation from source to bytecode can be avoided). This + "intermediate language" is said to run on a "virtual machine" that calls + the subroutines corresponding to each bytecode. classic class Any class which does not inherit from :class:`object`. See @@ -59,14 +59,16 @@ descriptor Any *new-style* object that defines the methods :meth:`__get__`, - :meth:`__set__`, or :meth:`__delete__`. When a class attribute is a + :meth:`__set__`, or :meth:`__delete__`. When a class attribute is a descriptor, its special binding behavior is triggered upon attribute - lookup. Normally, writing *a.b* looks up the object *b* in the class - dictionary for *a*, but if *b* is a descriptor, the defined method gets - called. Understanding descriptors is a key to a deep understanding of - Python because they are the basis for many features including functions, - methods, properties, class methods, static methods, and reference to super - classes. + lookup. Normally, using *a.b* to get, set or delete an attribute looks up + the object named *b* in the class dictionary for *a*, but if *b* is a + descriptor, the respective descriptor method gets called. Understanding + descriptors is a key to a deep understanding of Python because they are + the basis for many features including functions, methods, properties, + class methods, static methods, and reference to super classes. + + For more information about descriptors' methods, see :ref:`descriptors`. dictionary An associative array, where arbitrary keys are mapped to values. The use @@ -223,6 +225,8 @@ with an iterator will just return the same exhausted iterator object used in the previous iteration pass, making it appear like an empty container. + More information can be found in :ref:`typeiter`. + LBYL Look before you leap. This coding style explicitly tests for pre-conditions before making calls or lookups. This style contrasts with @@ -251,6 +255,8 @@ powerful, elegant solutions. They have been used for logging attribute access, adding thread-safety, tracking object creation, implementing singletons, and many other tasks. + + More information can be found in :ref:`metaclasses`. mutable Mutable objects can change their value but keep their :func:`id`. See @@ -282,6 +288,8 @@ use Python's newer, versatile features like :attr:`__slots__`, descriptors, properties, :meth:`__getattribute__`, class methods, and static methods. + + More information can be found in :ref:`newstyle`. Python 3000 Nickname for the next major Python version, 3.0 (coined long ago when the Modified: python/branches/ctypes-branch/Doc/howto/functional.rst ============================================================================== --- python/branches/ctypes-branch/Doc/howto/functional.rst (original) +++ python/branches/ctypes-branch/Doc/howto/functional.rst Tue Oct 23 20:47:50 2007 @@ -13,8 +13,8 @@ In this document, we'll take a tour of Python's features suitable for implementing programs in a functional style. After an introduction to the concepts of functional programming, we'll look at language features such as -iterators and generators and relevant library modules such as :mod:`itertools` -and :mod:`functools`. +:term:`iterator`\s and :term:`generator`\s and relevant library modules such as +:mod:`itertools` and :mod:`functools`. Introduction @@ -448,8 +448,8 @@ yield i Any function containing a ``yield`` keyword is a generator function; this is -detected by Python's bytecode compiler which compiles the function specially as -a result. +detected by Python's :term:`bytecode` compiler which compiles the function +specially as a result. When you call a generator function, it doesn't return a single value; instead it returns a generator object that supports the iterator protocol. On executing Modified: python/branches/ctypes-branch/Doc/howto/index.rst ============================================================================== --- python/branches/ctypes-branch/Doc/howto/index.rst (original) +++ python/branches/ctypes-branch/Doc/howto/index.rst Tue Oct 23 20:47:50 2007 @@ -14,7 +14,6 @@ :maxdepth: 1 advocacy.rst - pythonmac.rst curses.rst doanddont.rst functional.rst Deleted: /python/branches/ctypes-branch/Doc/howto/pythonmac.rst ============================================================================== --- /python/branches/ctypes-branch/Doc/howto/pythonmac.rst Tue Oct 23 20:47:50 2007 +++ (empty file) @@ -1,202 +0,0 @@ - -.. _using-on-mac: - -*************************** -Using Python on a Macintosh -*************************** - -:Author: Bob Savage - - -Python on a Macintosh running Mac OS X is in principle very similar to Python on -any other Unix platform, but there are a number of additional features such as -the IDE and the Package Manager that are worth pointing out. - -The Mac-specific modules are documented in :ref:`mac-specific-services`. - -Python on Mac OS 9 or earlier can be quite different from Python on Unix or -Windows, but is beyond the scope of this manual, as that platform is no longer -supported, starting with Python 2.4. See http://www.cwi.nl/~jack/macpython for -installers for the latest 2.3 release for Mac OS 9 and related documentation. - - -.. _getting-osx: - -Getting and Installing MacPython -================================ - -Mac OS X 10.4 comes with Python 2.3 pre-installed by Apple. However, you are -encouraged to install the most recent version of Python from the Python website -(http://www.python.org). A "universal binary" build of Python 2.5, which runs -natively on the Mac's new Intel and legacy PPC CPU's, is available there. - -What you get after installing is a number of things: - -* A :file:`MacPython 2.5` folder in your :file:`Applications` folder. In here - you find IDLE, the development environment that is a standard part of official - Python distributions; PythonLauncher, which handles double-clicking Python - scripts from the Finder; and the "Build Applet" tool, which allows you to - package Python scripts as standalone applications on your system. - -* A framework :file:`/Library/Frameworks/Python.framework`, which includes the - Python executable and libraries. The installer adds this location to your shell - path. To uninstall MacPython, you can simply remove these three things. A - symlink to the Python executable is placed in /usr/local/bin/. - -The Apple-provided build of Python is installed in -:file:`/System/Library/Frameworks/Python.framework` and :file:`/usr/bin/python`, -respectively. You should never modify or delete these, as they are -Apple-controlled and are used by Apple- or third-party software. - -IDLE includes a help menu that allows you to access Python documentation. If you -are completely new to Python you should start reading the tutorial introduction -in that document. - -If you are familiar with Python on other Unix platforms you should read the -section on running Python scripts from the Unix shell. - - -How to run a Python script --------------------------- - -Your best way to get started with Python on Mac OS X is through the IDLE -integrated development environment, see section :ref:`ide` and use the Help menu -when the IDE is running. - -If you want to run Python scripts from the Terminal window command line or from -the Finder you first need an editor to create your script. Mac OS X comes with a -number of standard Unix command line editors, :program:`vim` and -:program:`emacs` among them. If you want a more Mac-like editor, -:program:`BBEdit` or :program:`TextWrangler` from Bare Bones Software (see -http://www.barebones.com/products/bbedit/index.shtml) are good choices, as is -:program:`TextMate` (see http://macromates.com/). Other editors include -:program:`Gvim` (http://macvim.org) and :program:`Aquamacs` -(http://aquamacs.org). - -To run your script from the Terminal window you must make sure that -:file:`/usr/local/bin` is in your shell search path. - -To run your script from the Finder you have two options: - -* Drag it to :program:`PythonLauncher` - -* Select :program:`PythonLauncher` as the default application to open your - script (or any .py script) through the finder Info window and double-click it. - :program:`PythonLauncher` has various preferences to control how your script is - launched. Option-dragging allows you to change these for one invocation, or use - its Preferences menu to change things globally. - - -.. _osx-gui-scripts: - -Running scripts with a GUI --------------------------- - -With older versions of Python, there is one Mac OS X quirk that you need to be -aware of: programs that talk to the Aqua window manager (in other words, -anything that has a GUI) need to be run in a special way. Use :program:`pythonw` -instead of :program:`python` to start such scripts. - -With Python 2.5, you can use either :program:`python` or :program:`pythonw`. - - -Configuration -------------- - -Python on OS X honors all standard Unix environment variables such as -:envvar:`PYTHONPATH`, but setting these variables for programs started from the -Finder is non-standard as the Finder does not read your :file:`.profile` or -:file:`.cshrc` at startup. You need to create a file :file:`~ -/.MacOSX/environment.plist`. See Apple's Technical Document QA1067 for details. - -For more information on installation Python packages in MacPython, see section -:ref:`mac-package-manager`. - - -.. _ide: - -The IDE -======= - -MacPython ships with the standard IDLE development environment. A good -introduction to using IDLE can be found at http://hkn.eecs.berkeley.edu/ -dyoo/python/idle_intro/index.html. - - -.. _mac-package-manager: - -Installing Additional Python Packages -===================================== - -There are several methods to install additional Python packages: - -* http://pythonmac.org/packages/ contains selected compiled packages for Python - 2.5, 2.4, and 2.3. - -* Packages can be installed via the standard Python distutils mode (``python - setup.py install``). - -* Many packages can also be installed via the :program:`setuptools` extension. - - -GUI Programming on the Mac -========================== - -There are several options for building GUI applications on the Mac with Python. - -*PyObjC* is a Python binding to Apple's Objective-C/Cocoa framework, which is -the foundation of most modern Mac development. Information on PyObjC is -available from http://pyobjc.sourceforge.net. - -The standard Python GUI toolkit is :mod:`Tkinter`, based on the cross-platform -Tk toolkit (http://www.tcl.tk). An Aqua-native version of Tk is bundled with OS -X by Apple, and the latest version can be downloaded and installed from -http://www.activestate.com; it can also be built from source. - -*wxPython* is another popular cross-platform GUI toolkit that runs natively on -Mac OS X. Packages and documentation are available from http://www.wxpython.org. - -*PyQt* is another popular cross-platform GUI toolkit that runs natively on Mac -OS X. More information can be found at -http://www.riverbankcomputing.co.uk/pyqt/. - - -Distributing Python Applications on the Mac -=========================================== - -The "Build Applet" tool that is placed in the MacPython 2.5 folder is fine for -packaging small Python scripts on your own machine to run as a standard Mac -application. This tool, however, is not robust enough to distribute Python -applications to other users. - -The standard tool for deploying standalone Python applications on the Mac is -:program:`py2app`. More information on installing and using py2app can be found -at http://undefined.org/python/#py2app. - - -Application Scripting -===================== - -Python can also be used to script other Mac applications via Apple's Open -Scripting Architecture (OSA); see http://appscript.sourceforge.net. Appscript is -a high-level, user-friendly Apple event bridge that allows you to control -scriptable Mac OS X applications using ordinary Python scripts. Appscript makes -Python a serious alternative to Apple's own *AppleScript* language for -automating your Mac. A related package, *PyOSA*, is an OSA language component -for the Python scripting language, allowing Python code to be executed by any -OSA-enabled application (Script Editor, Mail, iTunes, etc.). PyOSA makes Python -a full peer to AppleScript. - - -Other Resources -=============== - -The MacPython mailing list is an excellent support resource for Python users and -developers on the Mac: - -http://www.python.org/community/sigs/current/pythonmac-sig/ - -Another useful resource is the MacPython wiki: - -http://wiki.python.org/moin/MacPython - Modified: python/branches/ctypes-branch/Doc/howto/regex.rst ============================================================================== --- python/branches/ctypes-branch/Doc/howto/regex.rst (original) +++ python/branches/ctypes-branch/Doc/howto/regex.rst Tue Oct 23 20:47:50 2007 @@ -354,7 +354,7 @@ | | returns them as a list. | +------------------+-----------------------------------------------+ | ``finditer()`` | Find all substrings where the RE matches, and | -| | returns them as an iterator. | +| | returns them as an :term:`iterator`. | +------------------+-----------------------------------------------+ :meth:`match` and :meth:`search` return ``None`` if no match can be found. If @@ -460,7 +460,7 @@ :meth:`findall` has to create the entire list before it can be returned as the result. The :meth:`finditer` method returns a sequence of :class:`MatchObject` -instances as an iterator. [#]_ :: +instances as an :term:`iterator`. [#]_ :: >>> iterator = p.finditer('12 drummers drumming, 11 ... 10 ...') >>> iterator Modified: python/branches/ctypes-branch/Doc/includes/email-unpack.py ============================================================================== --- python/branches/ctypes-branch/Doc/includes/email-unpack.py (original) +++ python/branches/ctypes-branch/Doc/includes/email-unpack.py Tue Oct 23 20:47:50 2007 @@ -53,7 +53,7 @@ # email message can't be used to overwrite important files filename = part.get_filename() if not filename: - ext = mimetypes.guess_extension(part.get_type()) + ext = mimetypes.guess_extension(part.get_content_type()) if not ext: # Use a generic bag-of-bits extension ext = '.bin' Modified: python/branches/ctypes-branch/Doc/library/_ast.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/_ast.rst (original) +++ python/branches/ctypes-branch/Doc/library/_ast.rst Tue Oct 23 20:47:50 2007 @@ -14,7 +14,7 @@ The ``_ast`` module helps Python applications to process trees of the Python abstract syntax grammar. The Python compiler currently provides read-only access to such trees, meaning that applications can only create a tree for a given -piece of Python source code; generating byte code from a (potentially modified) +piece of Python source code; generating :term:`bytecode` from a (potentially modified) tree is not supported. The abstract syntax itself might change with each Python release; this module helps to find out programmatically what the current grammar looks like. Modified: python/branches/ctypes-branch/Doc/library/autogil.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/autogil.rst (original) +++ python/branches/ctypes-branch/Doc/library/autogil.rst Tue Oct 23 20:47:50 2007 @@ -9,8 +9,8 @@ The :mod:`autoGIL` module provides a function :func:`installAutoGIL` that -automatically locks and unlocks Python's Global Interpreter Lock when running an -event loop. +automatically locks and unlocks Python's :term:`Global Interpreter Lock` when +running an event loop. .. exception:: AutoGILError Modified: python/branches/ctypes-branch/Doc/library/codecs.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/codecs.rst (original) +++ python/branches/ctypes-branch/Doc/library/codecs.rst Tue Oct 23 20:47:50 2007 @@ -242,8 +242,8 @@ .. function:: iterencode(iterable, encoding[, errors]) Uses an incremental encoder to iteratively encode the input provided by - *iterable*. This function is a generator. *errors* (as well as any other keyword - argument) is passed through to the incremental encoder. + *iterable*. This function is a :term:`generator`. *errors* (as well as any + other keyword argument) is passed through to the incremental encoder. .. versionadded:: 2.5 @@ -251,8 +251,8 @@ .. function:: iterdecode(iterable, encoding[, errors]) Uses an incremental decoder to iteratively decode the input provided by - *iterable*. This function is a generator. *errors* (as well as any other keyword - argument) is passed through to the incremental decoder. + *iterable*. This function is a :term:`generator`. *errors* (as well as any + other keyword argument) is passed through to the incremental decoder. .. versionadded:: 2.5 Modified: python/branches/ctypes-branch/Doc/library/collections.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/collections.rst (original) +++ python/branches/ctypes-branch/Doc/library/collections.rst Tue Oct 23 20:47:50 2007 @@ -51,7 +51,7 @@ .. versionadded:: 2.4 - If *maxlen* is not specified or is *-1*, deques may grow to an + If *maxlen* is not specified or is *None*, deques may grow to an arbitrary length. Otherwise, the deque is bounded to the specified maximum length. Once a bounded length deque is full, when new items are added, a corresponding number of items are discarded from the opposite end. Bounded @@ -365,9 +365,13 @@ The *fieldnames* are a single string with each fieldname separated by whitespace and/or commas (for example 'x y' or 'x, y'). Alternatively, the *fieldnames* - can be specified as a list of strings (such as ['x', 'y']). Any valid - Python identifier may be used for a fieldname except for names starting and - ending with double underscores. + can be specified as a list of strings (such as ['x', 'y']). + + Any valid Python identifier may be used for a fieldname except for names + starting and ending with double underscores. Valid identifiers consist of + letters, digits, and underscores but do not start with a digit and cannot be + a :mod:`keyword` such as *class*, *for*, *return*, *global*, *pass*, *print*, + or *raise*. If *verbose* is true, will print the class definition. Modified: python/branches/ctypes-branch/Doc/library/compiler.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/compiler.rst (original) +++ python/branches/ctypes-branch/Doc/library/compiler.rst Tue Oct 23 20:47:50 2007 @@ -10,8 +10,8 @@ The Python compiler package is a tool for analyzing Python source code and generating Python bytecode. The compiler contains libraries to generate an -abstract syntax tree from Python source code and to generate Python bytecode -from the tree. +abstract syntax tree from Python source code and to generate Python +:term:`bytecode` from the tree. The :mod:`compiler` package is a Python source to bytecode translator written in Python. It uses the built-in parser and standard :mod:`parser` module to @@ -640,5 +640,5 @@ call the :meth:`emit` method to emit a new bytecode. The basic code generator is specialized for modules, classes, and functions. An assembler converts that emitted instructions to the low-level bytecode format. It handles things like -generator of constant lists of code objects and calculation of jump offsets. +generation of constant lists of code objects and calculation of jump offsets. Modified: python/branches/ctypes-branch/Doc/library/contextlib.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/contextlib.rst (original) +++ python/branches/ctypes-branch/Doc/library/contextlib.rst Tue Oct 23 20:47:50 2007 @@ -39,9 +39,9 @@ foo - The function being decorated must return a generator-iterator when called. This - iterator must yield exactly one value, which will be bound to the targets in the - :keyword:`with` statement's :keyword:`as` clause, if any. + The function being decorated must return a :term:`generator`-iterator when + called. This iterator must yield exactly one value, which will be bound to + the targets in the :keyword:`with` statement's :keyword:`as` clause, if any. At the point where the generator yields, the block nested in the :keyword:`with` statement is executed. The generator is then resumed after the block is exited. Modified: python/branches/ctypes-branch/Doc/library/cookielib.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/cookielib.rst (original) +++ python/branches/ctypes-branch/Doc/library/cookielib.rst Tue Oct 23 20:47:50 2007 @@ -144,7 +144,7 @@ CookieJar and FileCookieJar Objects ----------------------------------- -:class:`CookieJar` objects support the iterator protocol for iterating over +:class:`CookieJar` objects support the :term:`iterator` protocol for iterating over contained :class:`Cookie` objects. :class:`CookieJar` has the following methods: Modified: python/branches/ctypes-branch/Doc/library/csv.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/csv.rst (original) +++ python/branches/ctypes-branch/Doc/library/csv.rst Tue Oct 23 20:47:50 2007 @@ -62,7 +62,7 @@ .. function:: reader(csvfile[, dialect='excel'][, fmtparam]) Return a reader object which will iterate over lines in the given *csvfile*. - *csvfile* can be any object which supports the iterator protocol and returns a + *csvfile* can be any object which supports the :term:`iterator` protocol and returns a string each time its :meth:`next` method is called --- file objects and list objects are both suitable. If *csvfile* is a file object, it must be opened with the 'b' flag on platforms where that makes a difference. An optional @@ -143,7 +143,7 @@ The :mod:`csv` module defines the following classes: -.. class:: DictReader(csvfile[, fieldnames=:const:None,[, restkey=:const:None[, restval=None[, dialect='excel'[, *args, **kwds]]]]]) +.. class:: DictReader(csvfile[, fieldnames=None[, restkey=None[, restval=None[, dialect='excel'[, *args, **kwds]]]]]) Create an object which operates like a regular reader but maps the information read into a dict whose keys are given by the optional *fieldnames* parameter. @@ -442,9 +442,9 @@ write functions or classes that handle the encoding and decoding for you as long as you avoid encodings like UTF-16 that use NULs. UTF-8 is recommended. -:func:`unicode_csv_reader` below is a generator that wraps :class:`csv.reader` +:func:`unicode_csv_reader` below is a :term:`generator` that wraps :class:`csv.reader` to handle Unicode CSV data (a list of Unicode strings). :func:`utf_8_encoder` -is a generator that encodes the Unicode strings as UTF-8, one string (or row) at +is a :term:`generator` that encodes the Unicode strings as UTF-8, one string (or row) at a time. The encoded strings are parsed by the CSV reader, and :func:`unicode_csv_reader` decodes the UTF-8-encoded cells back into Unicode:: Modified: python/branches/ctypes-branch/Doc/library/ctypes.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/ctypes.rst (original) +++ python/branches/ctypes-branch/Doc/library/ctypes.rst Tue Oct 23 20:47:50 2007 @@ -586,8 +586,8 @@ >>> r = RECT(POINT(1, 2), POINT(3, 4)) >>> r = RECT((1, 2), (3, 4)) -Fields descriptors can be retrieved from the *class*, they are useful for -debugging because they can provide useful information:: +Field :term:`descriptor`\s can be retrieved from the *class*, they are useful +for debugging because they can provide useful information:: >>> print POINT.x @@ -1197,10 +1197,10 @@ >>> Why is it printing ``False``? ctypes instances are objects containing a memory -block plus some descriptors accessing the contents of the memory. Storing a -Python object in the memory block does not store the object itself, instead the -``contents`` of the object is stored. Accessing the contents again constructs a -new Python each time! +block plus some :term:`descriptor`\s accessing the contents of the memory. +Storing a Python object in the memory block does not store the object itself, +instead the ``contents`` of the object is stored. Accessing the contents again +constructs a new Python object each time! .. _ctypes-variable-sized-data-types: @@ -1368,8 +1368,8 @@ :class:`WinDLL` and :class:`OleDLL` use the standard calling convention on this platform. -The Python GIL is released before calling any function exported by these -libraries, and reacquired afterwards. +The Python :term:`global interpreter lock` is released before calling any +function exported by these libraries, and reacquired afterwards. .. class:: PyDLL(name, mode=DEFAULT_MODE, handle=None) @@ -1950,7 +1950,7 @@ in case the memory block contains pointers. Common methods of ctypes data types, these are all class methods (to be exact, -they are methods of the metaclass): +they are methods of the :term:`metaclass`): .. method:: _CData.from_address(address) @@ -2267,7 +2267,7 @@ Concrete structure and union types must be created by subclassing one of these types, and at least define a :attr:`_fields_` class variable. ``ctypes`` will -create descriptors which allow reading and writing the fields by direct +create :term:`descriptor`\s which allow reading and writing the fields by direct attribute accesses. These are the Modified: python/branches/ctypes-branch/Doc/library/difflib.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/difflib.rst (original) +++ python/branches/ctypes-branch/Doc/library/difflib.rst Tue Oct 23 20:47:50 2007 @@ -12,6 +12,10 @@ .. versionadded:: 2.1 +This module provides classes and functions for comparing sequences. It +can be used for example, for comparing files, and can produce difference +information in various formats, including HTML and context and unified +diffs. For comparing directories and files, see also, the :mod:`filecmp` module. .. class:: SequenceMatcher @@ -122,8 +126,8 @@ .. function:: context_diff(a, b[, fromfile][, tofile][, fromfiledate][, tofiledate][, n][, lineterm]) - Compare *a* and *b* (lists of strings); return a delta (a generator generating - the delta lines) in context diff format. + Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` + generating the delta lines) in context diff format. Context diffs are a compact way of showing just the lines that have changed plus a few lines of context. The changes are shown in a before/after style. The @@ -177,8 +181,8 @@ .. function:: ndiff(a, b[, linejunk][, charjunk]) - Compare *a* and *b* (lists of strings); return a :class:`Differ`\ -style delta - (a generator generating the delta lines). + Compare *a* and *b* (lists of strings); return a :class:`Differ`\ -style + delta (a :term:`generator` generating the delta lines). Optional keyword parameters *linejunk* and *charjunk* are for filter functions (or ``None``): @@ -238,8 +242,8 @@ .. function:: unified_diff(a, b[, fromfile][, tofile][, fromfiledate][, tofiledate][, n][, lineterm]) - Compare *a* and *b* (lists of strings); return a delta (a generator generating - the delta lines) in unified diff format. + Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` + generating the delta lines) in unified diff format. Unified diffs are a compact way of showing just the lines that have changed plus a few lines of context. The changes are shown in a inline style (instead of @@ -438,7 +442,7 @@ .. method:: SequenceMatcher.get_grouped_opcodes([n]) - Return a generator of groups with up to *n* lines of context. + Return a :term:`generator` of groups with up to *n* lines of context. Starting with the groups returned by :meth:`get_opcodes`, this method splits out smaller change clusters and eliminates intervening ranges which have no changes. Modified: python/branches/ctypes-branch/Doc/library/dis.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/dis.rst (original) +++ python/branches/ctypes-branch/Doc/library/dis.rst Tue Oct 23 20:47:50 2007 @@ -1,14 +1,14 @@ -:mod:`dis` --- Disassembler for Python byte code -================================================ +:mod:`dis` --- Disassembler for Python bytecode +=============================================== .. module:: dis - :synopsis: Disassembler for Python byte code. + :synopsis: Disassembler for Python bytecode. -The :mod:`dis` module supports the analysis of Python byte code by disassembling +The :mod:`dis` module supports the analysis of Python :term:`bytecode` by disassembling it. Since there is no Python assembler, this module defines the Python assembly -language. The Python byte code which this module takes as an input is defined +language. The Python bytecode which this module takes as an input is defined in the file :file:`Include/opcode.h` and used by the compiler and the interpreter. @@ -35,7 +35,7 @@ Disassemble the *bytesource* object. *bytesource* can denote either a module, a class, a method, a function, or a code object. For a module, it disassembles all functions. For a class, it disassembles all methods. For a single code - sequence, it prints one line per byte code instruction. If no object is + sequence, it prints one line per bytecode instruction. If no object is provided, it disassembles the last traceback. @@ -70,12 +70,12 @@ .. data:: opname - Sequence of operation names, indexable using the byte code. + Sequence of operation names, indexable using the bytecode. .. data:: opmap - Dictionary mapping byte codes to operation names. + Dictionary mapping bytecodes to operation names. .. data:: cmp_op @@ -85,45 +85,45 @@ .. data:: hasconst - Sequence of byte codes that have a constant parameter. + Sequence of bytecodes that have a constant parameter. .. data:: hasfree - Sequence of byte codes that access a free variable. + Sequence of bytecodes that access a free variable. .. data:: hasname - Sequence of byte codes that access an attribute by name. + Sequence of bytecodes that access an attribute by name. .. data:: hasjrel - Sequence of byte codes that have a relative jump target. + Sequence of bytecodes that have a relative jump target. .. data:: hasjabs - Sequence of byte codes that have an absolute jump target. + Sequence of bytecodes that have an absolute jump target. .. data:: haslocal - Sequence of byte codes that access a local variable. + Sequence of bytecodes that access a local variable. .. data:: hascompare - Sequence of byte codes of Boolean operations. + Sequence of bytecodes of Boolean operations. .. _bytecodes: -Python Byte Code Instructions ------------------------------ +Python Bytecode Instructions +---------------------------- -The Python compiler currently generates the following byte code instructions. +The Python compiler currently generates the following bytecode instructions. .. opcode:: STOP_CODE () @@ -482,7 +482,7 @@ .. opcode:: YIELD_VALUE () - Pops ``TOS`` and yields it from a generator. + Pops ``TOS`` and yields it from a :term:`generator`. .. opcode:: IMPORT_STAR () @@ -523,9 +523,9 @@ context manager's :meth:`__exit__` bound method. Below that are 1--3 values indicating how/why the finally clause was entered: - * SECOND = None - * (SECOND, THIRD) = (WHY_{RETURN,CONTINUE}), retval - * SECOND = WHY_\*; no retval below it + * SECOND = ``None`` + * (SECOND, THIRD) = (``WHY_{RETURN,CONTINUE}``), retval + * SECOND = ``WHY_*``; no retval below it * (SECOND, THIRD, FOURTH) = exc_info() In the last case, ``TOS(SECOND, THIRD, FOURTH)`` is called, otherwise @@ -535,6 +535,8 @@ returns a 'true' value, this information is "zapped", to prevent ``END_FINALLY`` from re-raising the exception. (But non-local gotos should still be resumed.) + .. XXX explain the WHY stuff! + All of the following opcodes expect arguments. An argument is two bytes, with the more significant byte last. @@ -650,32 +652,32 @@ .. opcode:: JUMP_FORWARD (delta) - Increments byte code counter by *delta*. + Increments bytecode counter by *delta*. .. opcode:: JUMP_IF_TRUE (delta) - If TOS is true, increment the byte code counter by *delta*. TOS is left on the + If TOS is true, increment the bytecode counter by *delta*. TOS is left on the stack. .. opcode:: JUMP_IF_FALSE (delta) - If TOS is false, increment the byte code counter by *delta*. TOS is not + If TOS is false, increment the bytecode counter by *delta*. TOS is not changed. .. opcode:: JUMP_ABSOLUTE (target) - Set byte code counter to *target*. + Set bytecode counter to *target*. .. opcode:: FOR_ITER (delta) - ``TOS`` is an iterator. Call its :meth:`next` method. If this yields a new - value, push it on the stack (leaving the iterator below it). If the iterator - indicates it is exhausted ``TOS`` is popped, and the byte code counter is - incremented by *delta*. + ``TOS`` is an :term:`iterator`. Call its :meth:`next` method. If this + yields a new value, push it on the stack (leaving the iterator below it). If + the iterator indicates it is exhausted ``TOS`` is popped, and the bytecode + counter is incremented by *delta*. .. % \begin{opcodedesc}{FOR_LOOP}{delta} .. % This opcode is obsolete. Modified: python/branches/ctypes-branch/Doc/library/exceptions.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/exceptions.rst (original) +++ python/branches/ctypes-branch/Doc/library/exceptions.rst Tue Oct 23 20:47:50 2007 @@ -152,9 +152,9 @@ .. exception:: GeneratorExit - Raise when a generator's :meth:`close` method is called. It directly inherits - from :exc:`Exception` instead of :exc:`StandardError` since it is technically - not an error. + Raise when a :term:`generator`\'s :meth:`close` method is called. It + directly inherits from :exc:`Exception` instead of :exc:`StandardError` since + it is technically not an error. .. versionadded:: 2.5 @@ -285,9 +285,10 @@ .. exception:: StopIteration - Raised by an iterator's :meth:`next` method to signal that there are no further - values. This is derived from :exc:`Exception` rather than :exc:`StandardError`, - since this is not considered an error in its normal application. + Raised by an :term:`iterator`\'s :meth:`next` method to signal that there are + no further values. This is derived from :exc:`Exception` rather than + :exc:`StandardError`, since this is not considered an error in its normal + application. .. versionadded:: 2.2 Modified: python/branches/ctypes-branch/Doc/library/filecmp.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/filecmp.rst (original) +++ python/branches/ctypes-branch/Doc/library/filecmp.rst Tue Oct 23 20:47:50 2007 @@ -8,7 +8,8 @@ The :mod:`filecmp` module defines functions to compare files and directories, -with various optional time/correctness trade-offs. +with various optional time/correctness trade-offs. For comparing files, +see also the :mod:`difflib` module. The :mod:`filecmp` module defines the following functions: Modified: python/branches/ctypes-branch/Doc/library/functions.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/functions.rst (original) +++ python/branches/ctypes-branch/Doc/library/functions.rst Tue Oct 23 20:47:50 2007 @@ -43,7 +43,7 @@ top-level package (the name up till the first dot) is returned, *not* the module named by *name*. However, when a non-empty *fromlist* argument is given, the module named by *name* is returned. This is done for - compatibility with the bytecode generated for the different kinds of import + compatibility with the :term:`bytecode` generated for the different kinds of import statement; when using ``import spam.ham.eggs``, the top-level package :mod:`spam` must be placed in the importing namespace, but when using ``from spam.ham import eggs``, the ``spam.ham`` subpackage must be used to find the @@ -322,7 +322,7 @@ .. function:: enumerate(iterable) - Return an enumerate object. *iterable* must be a sequence, an iterator, or some + Return an enumerate object. *iterable* must be a sequence, an :term:`iterator`, or some other object which supports iteration. The :meth:`next` method of the iterator returned by :func:`enumerate` returns a tuple containing a count (from zero) and the corresponding value obtained from iterating over *iterable*. @@ -350,7 +350,7 @@ The *expression* argument is parsed and evaluated as a Python expression (technically speaking, a condition list) using the *globals* and *locals* - dictionaries as global and local name space. If the *globals* dictionary is + dictionaries as global and local namespace. If the *globals* dictionary is present and lacks '__builtins__', the current globals are copied into *globals* before *expression* is parsed. This means that *expression* normally has full access to the standard :mod:`__builtin__` module and restricted environments are @@ -420,7 +420,7 @@ Construct a list from those elements of *iterable* for which *function* returns true. *iterable* may be either a sequence, a container which supports - iteration, or an iterator, If *iterable* is a string or a tuple, the result + iteration, or an iterator. If *iterable* is a string or a tuple, the result also has that type; otherwise it is always a list. If *function* is ``None``, the identity function is assumed, that is, all elements of *iterable* that are false are removed. @@ -590,7 +590,7 @@ .. function:: iter(o[, sentinel]) - Return an iterator object. The first argument is interpreted very differently + Return an :term:`iterator` object. The first argument is interpreted very differently depending on the presence of the second argument. Without a second argument, *o* must be a collection object which supports the iteration protocol (the :meth:`__iter__` method), or it must support the sequence protocol (the @@ -808,8 +808,8 @@ .. function:: property([fget[, fset[, fdel[, doc]]]]) - Return a property attribute for new-style classes (classes that derive from - :class:`object`). + Return a property attribute for :term:`new-style class`\es (classes that + derive from :class:`object`). *fget* is a function for getting an attribute value, likewise *fset* is a function for setting, and *fdel* a function for del'ing, an attribute. Typical @@ -973,9 +973,9 @@ .. function:: reversed(seq) - Return a reverse iterator. *seq* must be an object which supports the sequence - protocol (the :meth:`__len__` method and the :meth:`__getitem__` method with - integer arguments starting at ``0``). + Return a reverse :term:`iterator`. *seq* must be an object which supports + the sequence protocol (the :meth:`__len__` method and the :meth:`__getitem__` + method with integer arguments starting at ``0``). .. versionadded:: 2.4 @@ -1112,8 +1112,8 @@ Return the superclass of *type*. If the second argument is omitted the super object returned is unbound. If the second argument is an object, ``isinstance(obj, type)`` must be true. If the second argument is a type, - ``issubclass(type2, type)`` must be true. :func:`super` only works for new-style - classes. + ``issubclass(type2, type)`` must be true. :func:`super` only works for + :term:`new-style class`\es. A typical use for calling a cooperative superclass method is:: @@ -1292,12 +1292,11 @@ present, it must be a dictionary whose keys are strings. It specifies keyword arguments to be added to the end of the argument list. Calling :func:`apply` is different from just calling ``function(args)``, since in that case there is - always exactly one argument. The use of :func:`apply` is equivalent to - ``function(*args, **keywords)``. Use of :func:`apply` is not necessary since the - "extended call syntax," as used in the last example, is completely equivalent. + always exactly one argument. The use of :func:`apply` is exactly equivalent to + ``function(*args, **keywords)``. .. deprecated:: 2.3 - Use the extended call syntax instead, as described above. + Use the extended call syntax with ``*args`` and ``**keywords`` instead. .. function:: buffer(object[, offset[, size]]) Modified: python/branches/ctypes-branch/Doc/library/glob.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/glob.rst (original) +++ python/branches/ctypes-branch/Doc/library/glob.rst Tue Oct 23 20:47:50 2007 @@ -28,8 +28,8 @@ .. function:: iglob(pathname) - Return an iterator which yields the same values as :func:`glob` without actually - storing them all simultaneously. + Return an :term:`iterator` which yields the same values as :func:`glob` + without actually storing them all simultaneously. .. versionadded:: 2.5 Modified: python/branches/ctypes-branch/Doc/library/heapq.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/heapq.rst (original) +++ python/branches/ctypes-branch/Doc/library/heapq.rst Tue Oct 23 20:47:50 2007 @@ -92,8 +92,8 @@ .. function:: merge(*iterables) Merge multiple sorted inputs into a single sorted output (for example, merge - timestamped entries from multiple log files). Returns an iterator over over the - sorted values. + timestamped entries from multiple log files). Returns an :term:`iterator` + over over the sorted values. Similar to ``sorted(itertools.chain(*iterables))`` but returns an iterable, does not pull the data into memory all at once, and assumes that each of the input Modified: python/branches/ctypes-branch/Doc/library/inspect.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/inspect.rst (original) +++ python/branches/ctypes-branch/Doc/library/inspect.rst Tue Oct 23 20:47:50 2007 @@ -69,7 +69,7 @@ +-----------+-----------------+---------------------------+-------+ | | func_code | code object containing | | | | | compiled function | | -| | | bytecode | | +| | | :term:`bytecode` | | +-----------+-----------------+---------------------------+-------+ | | func_defaults | tuple of any default | | | | | values for arguments | | @@ -265,30 +265,31 @@ .. function:: ismethoddescriptor(object) - Return true if the object is a method descriptor, but not if ismethod() or - isclass() or isfunction() are true. + Return true if the object is a method descriptor, but not if :func:`ismethod` + or :func:`isclass` or :func:`isfunction` are true. - This is new as of Python 2.2, and, for example, is true of int.__add__. An - object passing this test has a __get__ attribute but not a __set__ attribute, - but beyond that the set of attributes varies. __name__ is usually sensible, and - __doc__ often is. - - Methods implemented via descriptors that also pass one of the other tests return - false from the ismethoddescriptor() test, simply because the other tests promise - more -- you can, e.g., count on having the im_func attribute (etc) when an - object passes ismethod(). + This is new as of Python 2.2, and, for example, is true of + ``int.__add__``. An object passing this test has a :attr:`__get__` attribute + but not a :attr:`__set__` attribute, but beyond that the set of attributes + varies. :attr:`__name__` is usually sensible, and :attr:`__doc__` often is. + + Methods implemented via descriptors that also pass one of the other tests + return false from the :func:`ismethoddescriptor` test, simply because the + other tests promise more -- you can, e.g., count on having the + :attr:`im_func` attribute (etc) when an object passes :func:`ismethod`. .. function:: isdatadescriptor(object) Return true if the object is a data descriptor. - Data descriptors have both a __get__ and a __set__ attribute. Examples are - properties (defined in Python), getsets, and members. The latter two are - defined in C and there are more specific tests available for those types, which - is robust across Python implementations. Typically, data descriptors will also - have __name__ and __doc__ attributes (properties, getsets, and members have both - of these attributes), but this is not guaranteed. + Data descriptors have both a :attr:`__get__` and a :attr:`__set__` attribute. + Examples are properties (defined in Python), getsets, and members. The + latter two are defined in C and there are more specific tests available for + those types, which is robust across Python implementations. Typically, data + descriptors will also have :attr:`__name__` and :attr:`__doc__` attributes + (properties, getsets, and members have both of these attributes), but this is + not guaranteed. .. versionadded:: 2.3 @@ -309,8 +310,8 @@ Return true if the object is a member descriptor. Member descriptors are attributes defined in extension modules via - ``PyMemberDef`` structures. For Python implementations without such types, this - method will always return ``False``. + ``PyMemberDef`` structures. For Python implementations without such types, + this method will always return ``False``. .. versionadded:: 2.5 Modified: python/branches/ctypes-branch/Doc/library/itertools.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/itertools.rst (original) +++ python/branches/ctypes-branch/Doc/library/itertools.rst Tue Oct 23 20:47:50 2007 @@ -10,7 +10,7 @@ .. versionadded:: 2.3 -This module implements a number of iterator building blocks inspired by +This module implements a number of :term:`iterator` building blocks inspired by constructs from the Haskell and SML programming languages. Each has been recast in a form suitable for Python. @@ -460,8 +460,8 @@ rather than bringing the whole iterable into memory all at once. Code volume is kept small by linking the tools together in a functional style which helps eliminate temporary variables. High speed is retained by preferring -"vectorized" building blocks over the use of for-loops and generators which -incur interpreter overhead. :: +"vectorized" building blocks over the use of for-loops and :term:`generator`\s +which incur interpreter overhead. :: def take(n, seq): return list(islice(seq, n)) Modified: python/branches/ctypes-branch/Doc/library/logging.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/logging.rst (original) +++ python/branches/ctypes-branch/Doc/library/logging.rst Tue Oct 23 20:47:50 2007 @@ -22,7 +22,7 @@ Logging is performed by calling methods on instances of the :class:`Logger` class (hereafter called :dfn:`loggers`). Each instance has a name, and they are -conceptually arranged in a name space hierarchy using dots (periods) as +conceptually arranged in a namespace hierarchy using dots (periods) as separators. For example, a logger named "scan" is the parent of loggers "scan.text", "scan.html" and "scan.pdf". Logger names can be anything you want, and indicate the area of an application in which a logged message originates. @@ -438,7 +438,7 @@ FORMAT = "%(asctime)-15s %(clientip)s %(user)-8s %(message)s" logging.basicConfig(format=FORMAT) - dict = { 'clientip' : '192.168.0.1', 'user' : 'fbloggs' } + d = { 'clientip' : '192.168.0.1', 'user' : 'fbloggs' } logger = logging.getLogger("tcpserver") logger.warning("Protocol problem: %s", "connection reset", extra=d) Modified: python/branches/ctypes-branch/Doc/library/mailbox.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/mailbox.rst (original) +++ python/branches/ctypes-branch/Doc/library/mailbox.rst Tue Oct 23 20:47:50 2007 @@ -806,7 +806,7 @@ A message is typically moved from :file:`new` to :file:`cur` after its mailbox has been accessed, whether or not the message is has been read. A message - ``msg`` has been read if ``"S" not in msg.get_flags()`` is ``True``. + ``msg`` has been read if ``"S" in msg.get_flags()`` is ``True``. .. method:: MaildirMessage.set_subdir(subdir) Modified: python/branches/ctypes-branch/Doc/library/mmap.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/mmap.rst (original) +++ python/branches/ctypes-branch/Doc/library/mmap.rst Tue Oct 23 20:47:50 2007 @@ -40,7 +40,7 @@ length. -.. function:: mmap(fileno, length[, tagname[, access]]) +.. function:: mmap(fileno, length[, tagname[, access[, offset]]]) **(Windows version)** Maps *length* bytes from the file specified by the file handle *fileno*, and returns a mmap object. If *length* is larger than the @@ -56,8 +56,12 @@ the mapping is created without a name. Avoiding the use of the tag parameter will assist in keeping your code portable between Unix and Windows. + *offset* may be specified as a non-negative integer offset. mmap references will + be relative to the offset from the beginning of the file. *offset* defaults to 0. + *offset* must be a multiple of the ALLOCATIONGRANULARITY. -.. function:: mmap(fileno, length[, flags[, prot[, access]]]) + +.. function:: mmap(fileno, length[, flags[, prot[, access[, offset]]]]) :noindex: **(Unix version)** Maps *length* bytes from the file specified by the file @@ -79,6 +83,10 @@ parameter. It is an error to specify both *flags*, *prot* and *access*. See the description of *access* above for information on how to use this parameter. + *offset* may be specified as a non-negative integer offset. mmap references will + be relative to the offset from the beginning of the file. *offset* defaults to 0. + *offset* must be a multiple of the PAGESIZE or ALLOCATIONGRANULARITY. + Memory-mapped file objects support the following methods: @@ -171,3 +179,4 @@ created with :const:`ACCESS_READ`, then writing to it will throw a :exc:`TypeError` exception. + Modified: python/branches/ctypes-branch/Doc/library/os.path.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/os.path.rst (original) +++ python/branches/ctypes-branch/Doc/library/os.path.rst Tue Oct 23 20:47:50 2007 @@ -303,8 +303,8 @@ .. note:: - The newer :func:`os.walk` generator supplies similar functionality and can be - easier to use. + The newer :func:`os.walk` :term:`generator` supplies similar functionality + and can be easier to use. .. data:: supports_unicode_filenames Modified: python/branches/ctypes-branch/Doc/library/os.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/os.rst (original) +++ python/branches/ctypes-branch/Doc/library/os.rst Tue Oct 23 20:47:50 2007 @@ -651,7 +651,7 @@ .. function:: ttyname(fd) Return a string which specifies the terminal device associated with - file-descriptor *fd*. If *fd* is not associated with a terminal device, an + file descriptor *fd*. If *fd* is not associated with a terminal device, an exception is raised. Availability:Macintosh, Unix. Modified: python/branches/ctypes-branch/Doc/library/parser.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/parser.rst (original) +++ python/branches/ctypes-branch/Doc/library/parser.rst Tue Oct 23 20:47:50 2007 @@ -319,7 +319,7 @@ .. index:: builtin: compile The parser modules allows operations to be performed on the parse tree of Python -source code before the bytecode is generated, and provides for inspection of the +source code before the :term:`bytecode` is generated, and provides for inspection of the parse tree for information gathering purposes. Two examples are presented. The simple example demonstrates emulation of the :func:`compile` built-in function and the complex example shows the use of a parse tree for information discovery. Modified: python/branches/ctypes-branch/Doc/library/pickle.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/pickle.rst (original) +++ python/branches/ctypes-branch/Doc/library/pickle.rst Tue Oct 23 20:47:50 2007 @@ -122,7 +122,7 @@ earlier versions of Python. * Protocol version 2 was introduced in Python 2.3. It provides much more - efficient pickling of new-style classes. + efficient pickling of :term:`new-style class`\es. Refer to :pep:`307` for more information. @@ -430,8 +430,8 @@ protocol 2. Implementing this method is needed if the type establishes some internal invariants when the instance is created, or if the memory allocation is affected by the values passed to the :meth:`__new__` method for the type (as it -is for tuples and strings). Instances of a new-style type :class:`C` are -created using :: +is for tuples and strings). Instances of a :term:`new-style class` :class:`C` +are created using :: obj = C.__new__(C, *args) @@ -459,8 +459,8 @@ .. warning:: - For new-style classes, if :meth:`__getstate__` returns a false value, the - :meth:`__setstate__` method will not be called. + For :term:`new-style class`\es, if :meth:`__getstate__` returns a false + value, the :meth:`__setstate__` method will not be called. Pickling and unpickling extension types Modified: python/branches/ctypes-branch/Doc/library/pickletools.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/pickletools.rst (original) +++ python/branches/ctypes-branch/Doc/library/pickletools.rst Tue Oct 23 20:47:50 2007 @@ -29,9 +29,9 @@ .. function:: genops(pickle) - Provides an iterator over all of the opcodes in a pickle, returning a sequence - of ``(opcode, arg, pos)`` triples. *opcode* is an instance of an - :class:`OpcodeInfo` class; *arg* is the decoded value, as a Python object, of - the opcode's argument; *pos* is the position at which this opcode is located. + Provides an :term:`iterator` over all of the opcodes in a pickle, returning a + sequence of ``(opcode, arg, pos)`` triples. *opcode* is an instance of an + :class:`OpcodeInfo` class; *arg* is the decoded value, as a Python object, of + the opcode's argument; *pos* is the position at which this opcode is located. *pickle* can be a string or a file-like object. Modified: python/branches/ctypes-branch/Doc/library/pty.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/pty.rst (original) +++ python/branches/ctypes-branch/Doc/library/pty.rst Tue Oct 23 20:47:50 2007 @@ -43,6 +43,6 @@ reading from the controlling terminal. The functions *master_read* and *stdin_read* should be functions which read from - a file-descriptor. The defaults try to read 1024 bytes each time they are + a file descriptor. The defaults try to read 1024 bytes each time they are called. Modified: python/branches/ctypes-branch/Doc/library/pyclbr.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/pyclbr.rst (original) +++ python/branches/ctypes-branch/Doc/library/pyclbr.rst Tue Oct 23 20:47:50 2007 @@ -19,10 +19,10 @@ .. function:: readmodule(module[, path]) Read a module and return a dictionary mapping class names to class descriptor - objects. The parameter *module* should be the name of a module as a string; it - may be the name of a module within a package. The *path* parameter should be a - sequence, and is used to augment the value of ``sys.path``, which is used to - locate module source code. + objects. The parameter *module* should be the name of a module as a string; + it may be the name of a module within a package. The *path* parameter should + be a sequence, and is used to augment the value of ``sys.path``, which is + used to locate module source code. .. % The 'inpackage' parameter appears to be for internal use only.... Modified: python/branches/ctypes-branch/Doc/library/re.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/re.rst (original) +++ python/branches/ctypes-branch/Doc/library/re.rst Tue Oct 23 20:47:50 2007 @@ -568,7 +568,7 @@ .. function:: finditer(pattern, string[, flags]) - Return an iterator yielding :class:`MatchObject` instances over all + Return an :term:`iterator` yielding :class:`MatchObject` instances over all non-overlapping matches for the RE *pattern* in *string*. Empty matches are included in the result unless they touch the beginning of another match. Modified: python/branches/ctypes-branch/Doc/library/sqlite3.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/sqlite3.rst (original) +++ python/branches/ctypes-branch/Doc/library/sqlite3.rst Tue Oct 23 20:47:50 2007 @@ -71,10 +71,10 @@ ): c.execute('insert into stocks values (?,?,?,?,?)', t) -To retrieve data after executing a SELECT statement, you can either treat the -cursor as an iterator, call the cursor's :meth:`fetchone` method to retrieve a -single matching row, or call :meth:`fetchall` to get a list of the matching -rows. +To retrieve data after executing a SELECT statement, you can either treat the +cursor as an :term:`iterator`, call the cursor's :meth:`fetchone` method to +retrieve a single matching row, or call :meth:`fetchall` to get a list of the +matching rows. This example uses the iterator form:: @@ -410,13 +410,13 @@ .. method:: Cursor.executemany(sql, seq_of_parameters) - Executes a SQL command against all parameter sequences or mappings found in the - sequence *sql*. The :mod:`sqlite3` module also allows using an iterator yielding - parameters instead of a sequence. + Executes a SQL command against all parameter sequences or mappings found in + the sequence *sql*. The :mod:`sqlite3` module also allows using an + :term:`iterator` yielding parameters instead of a sequence. .. literalinclude:: ../includes/sqlite3/executemany_1.py - Here's a shorter example using a generator: + Here's a shorter example using a :term:`generator`: .. literalinclude:: ../includes/sqlite3/executemany_2.py @@ -549,7 +549,7 @@ .. note:: - The type/class to adapt must be a new-style class, i. e. it must have + The type/class to adapt must be a :term:`new-style class`, i. e. it must have :class:`object` as one of its bases. .. literalinclude:: ../includes/sqlite3/adapter_point_2.py Modified: python/branches/ctypes-branch/Doc/library/ssl.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/ssl.rst (original) +++ python/branches/ctypes-branch/Doc/library/ssl.rst Tue Oct 23 20:47:50 2007 @@ -226,7 +226,7 @@ .. data:: PROTOCOL_TLSv1 - Selects SSL version 2 as the channel encryption protocol. This is + Selects TLS version 1 as the channel encryption protocol. This is the most modern version, and probably the best choice for maximum protection, if both sides can speak it. Modified: python/branches/ctypes-branch/Doc/library/stdtypes.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/stdtypes.rst (original) +++ python/branches/ctypes-branch/Doc/library/stdtypes.rst Tue Oct 23 20:47:50 2007 @@ -479,10 +479,10 @@ constraint was added in Python 2.3; in Python 2.2, various iterators are broken according to this rule.) -Python's generators provide a convenient way to implement the iterator protocol. -If a container object's :meth:`__iter__` method is implemented as a generator, -it will automatically return an iterator object (technically, a generator -object) supplying the :meth:`__iter__` and :meth:`next` methods. +Python's :term:`generator`\s provide a convenient way to implement the iterator +protocol. If a container object's :meth:`__iter__` method is implemented as a +generator, it will automatically return an iterator object (technically, a +generator object) supplying the :meth:`__iter__` and :meth:`next` methods. .. _typesseq: @@ -1899,8 +1899,7 @@ .. method:: file.fileno() .. index:: - single: file descriptor - single: descriptor, file + pair: file; descriptor module: fcntl Return the integer "file descriptor" that is used by the underlying @@ -2160,7 +2159,7 @@ .. method:: contextmanager.__exit__(exc_type, exc_val, exc_tb) - Exit the runtime context and return a Boolean flag indicating if any expection + Exit the runtime context and return a Boolean flag indicating if any exception that occurred should be suppressed. If an exception occurred while executing the body of the :keyword:`with` statement, the arguments contain the exception type, value and traceback information. Otherwise, all three arguments are ``None``. @@ -2184,7 +2183,7 @@ their implementation of the context management protocol. See the :mod:`contextlib` module for some examples. -Python's generators and the ``contextlib.contextfactory`` decorator provide a +Python's :term:`generator`\s and the ``contextlib.contextfactory`` decorator provide a convenient way to implement these protocols. If a generator function is decorated with the ``contextlib.contextfactory`` decorator, it will return a context manager implementing the necessary :meth:`__enter__` and Modified: python/branches/ctypes-branch/Doc/library/tokenize.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/tokenize.rst (original) +++ python/branches/ctypes-branch/Doc/library/tokenize.rst Tue Oct 23 20:47:50 2007 @@ -13,7 +13,7 @@ well, making it useful for implementing "pretty-printers," including colorizers for on-screen displays. -The primary entry point is a generator: +The primary entry point is a :term:`generator`: .. function:: generate_tokens(readline) Modified: python/branches/ctypes-branch/Doc/library/types.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/types.rst (original) +++ python/branches/ctypes-branch/Doc/library/types.rst Tue Oct 23 20:47:50 2007 @@ -128,8 +128,8 @@ .. data:: GeneratorType - The type of generator-iterator objects, produced by calling a generator - function. + The type of :term:`generator`-iterator objects, produced by calling a + generator function. .. versionadded:: 2.2 Modified: python/branches/ctypes-branch/Doc/library/urllib.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/urllib.rst (original) +++ python/branches/ctypes-branch/Doc/library/urllib.rst Tue Oct 23 20:47:50 2007 @@ -29,7 +29,7 @@ :exc:`IOError` exception is raised. If all went well, a file-like object is returned. This supports the following methods: :meth:`read`, :meth:`readline`, :meth:`readlines`, :meth:`fileno`, :meth:`close`, :meth:`info` and - :meth:`geturl`. It also has proper support for the iterator protocol. One + :meth:`geturl`. It also has proper support for the :term:`iterator` protocol. One caveat: the :meth:`read` method, if the size argument is omitted or negative, may not read until the end of the data stream; there is no good way to determine that the entire stream from a socket has been read in the general case. Modified: python/branches/ctypes-branch/Doc/library/weakref.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/weakref.rst (original) +++ python/branches/ctypes-branch/Doc/library/weakref.rst Tue Oct 23 20:47:50 2007 @@ -50,9 +50,9 @@ Not all objects can be weakly referenced; those objects which can include class instances, functions written in Python (but not in C), methods (both bound and -unbound), sets, frozensets, file objects, generators, type objects, DBcursor -objects from the :mod:`bsddb` module, sockets, arrays, deques, and regular -expression pattern objects. +unbound), sets, frozensets, file objects, :term:`generator`\s, type objects, +:class:`DBcursor` objects from the :mod:`bsddb` module, sockets, arrays, deques, +and regular expression pattern objects. .. versionchanged:: 2.4 Added support for files, sockets, arrays, and patterns. @@ -150,7 +150,7 @@ .. method:: WeakKeyDictionary.iterkeyrefs() - Return an iterator that yields the weak references to the keys. + Return an :term:`iterator` that yields the weak references to the keys. .. versionadded:: 2.5 @@ -182,7 +182,7 @@ .. method:: WeakValueDictionary.itervaluerefs() - Return an iterator that yields the weak references to the values. + Return an :term:`iterator` that yields the weak references to the values. .. versionadded:: 2.5 Modified: python/branches/ctypes-branch/Doc/library/wsgiref.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/wsgiref.rst (original) +++ python/branches/ctypes-branch/Doc/library/wsgiref.rst Tue Oct 23 20:47:50 2007 @@ -126,7 +126,7 @@ .. class:: FileWrapper(filelike [, blksize=8192]) - A wrapper to convert a file-like object to an iterator. The resulting objects + A wrapper to convert a file-like object to an :term:`iterator`. The resulting objects support both :meth:`__getitem__` and :meth:`__iter__` iteration styles, for compatibility with Python 2.1 and Jython. As the object is iterated over, the optional *blksize* parameter will be repeatedly passed to the *filelike* Modified: python/branches/ctypes-branch/Doc/library/xml.etree.elementtree.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/xml.etree.elementtree.rst (original) +++ python/branches/ctypes-branch/Doc/library/xml.etree.elementtree.rst Tue Oct 23 20:47:50 2007 @@ -89,7 +89,7 @@ Parses an XML section into an element tree incrementally, and reports what's going on to the user. *source* is a filename or file object containing XML data. *events* is a list of events to report back. If omitted, only "end" events are - reported. Returns an iterator providing ``(event, elem)`` pairs. + reported. Returns an :term:`iterator` providing ``(event, elem)`` pairs. .. function:: parse(source[, parser]) @@ -318,7 +318,7 @@ .. method:: ElementTree.findall(path) Finds all toplevel elements with the given tag. Same as getroot().findall(path). - *path* is the element to look for. Returns a list or iterator containing all + *path* is the element to look for. Returns a list or :term:`iterator` containing all matching elements, in document order. Modified: python/branches/ctypes-branch/Doc/library/xmlrpclib.rst ============================================================================== --- python/branches/ctypes-branch/Doc/library/xmlrpclib.rst (original) +++ python/branches/ctypes-branch/Doc/library/xmlrpclib.rst Tue Oct 23 20:47:50 2007 @@ -113,8 +113,9 @@ The *use_datetime* flag was added. .. versionchanged:: 2.6 - Instances of new-style classes can be passed in if they have an *__dict__* - attribute and don't have a base class that is marshalled in a special way. + Instances of :term:`new-style class`\es can be passed in if they have an + *__dict__* attribute and don't have a base class that is marshalled in a + special way. .. seealso:: @@ -325,7 +326,8 @@ return ``None``, and only store the call name and parameters in the :class:`MultiCall` object. Calling the object itself causes all stored calls to be transmitted as a single ``system.multicall`` request. The result of this call - is a generator; iterating over this generator yields the individual results. + is a :term:`generator`; iterating over this generator yields the individual + results. A usage example of this class is :: Modified: python/branches/ctypes-branch/Doc/reference/compound_stmts.rst ============================================================================== --- python/branches/ctypes-branch/Doc/reference/compound_stmts.rst (original) +++ python/branches/ctypes-branch/Doc/reference/compound_stmts.rst Tue Oct 23 20:47:50 2007 @@ -534,8 +534,9 @@ class and instance variables are accessible through the notation "``self.name``", and an instance variable hides a class variable with the same name when accessed in this way. Class variables with immutable values can be -used as defaults for instance variables. For new-style classes, descriptors can -be used to create instance variables with different implementation details. +used as defaults for instance variables. For :term:`new-style class`\es, +descriptors can be used to create instance variables with different +implementation details. .. rubric:: Footnotes Modified: python/branches/ctypes-branch/Doc/reference/datamodel.rst ============================================================================== --- python/branches/ctypes-branch/Doc/reference/datamodel.rst (original) +++ python/branches/ctypes-branch/Doc/reference/datamodel.rst Tue Oct 23 20:47:50 2007 @@ -884,7 +884,7 @@ single: bytecode object: code - Code objects represent *byte-compiled* executable Python code, or *bytecode*. + Code objects represent *byte-compiled* executable Python code, or :term:`bytecode`. The difference between a code object and a function object is that the function object contains an explicit reference to the function's globals (the module in which it was defined), while a code object contains no context; also the default @@ -905,7 +905,7 @@ used by the bytecode; :attr:`co_names` is a tuple containing the names used by the bytecode; :attr:`co_filename` is the filename from which the code was compiled; :attr:`co_firstlineno` is the first line number of the function; - :attr:`co_lnotab` is a string encoding the mapping from byte code offsets to + :attr:`co_lnotab` is a string encoding the mapping from bytecode offsets to line numbers (for details see the source code of the interpreter); :attr:`co_stacksize` is the required stack size (including local variables); :attr:`co_flags` is an integer encoding a number of flags for the interpreter. @@ -1082,6 +1082,7 @@ .. % Types .. % ========================================================================= +.. _newstyle: New-style and classic classes ============================= Modified: python/branches/ctypes-branch/Doc/tutorial/classes.rst ============================================================================== --- python/branches/ctypes-branch/Doc/tutorial/classes.rst (original) +++ python/branches/ctypes-branch/Doc/tutorial/classes.rst Tue Oct 23 20:47:50 2007 @@ -495,8 +495,8 @@ :class:`Base2`. The depth-first rule makes no differences between direct and inherited attributes of :class:`Base1`.) -For new-style classes, the method resolution order changes dynamically to -support cooperative calls to :func:`super`. This approach is known in some +For :term:`new-style class`\es, the method resolution order changes dynamically +to support cooperative calls to :func:`super`. This approach is known in some other multiple-inheritance languages as call-next-method and is more powerful than the super call found in single-inheritance languages. @@ -711,12 +711,12 @@ Generators ========== -Generators are a simple and powerful tool for creating iterators. They are -written like regular functions but use the :keyword:`yield` statement whenever -they want to return data. Each time :meth:`next` is called, the generator -resumes where it left-off (it remembers all the data values and which statement -was last executed). An example shows that generators can be trivially easy to -create:: +:term:`Generator`\s are a simple and powerful tool for creating iterators. They +are written like regular functions but use the :keyword:`yield` statement +whenever they want to return data. Each time :meth:`next` is called, the +generator resumes where it left-off (it remembers all the data values and which +statement was last executed). An example shows that generators can be trivially +easy to create:: def reverse(data): for index in range(len(data)-1, -1, -1): Modified: python/branches/ctypes-branch/Doc/tutorial/interactive.rst ============================================================================== --- python/branches/ctypes-branch/Doc/tutorial/interactive.rst (original) +++ python/branches/ctypes-branch/Doc/tutorial/interactive.rst Tue Oct 23 20:47:50 2007 @@ -123,7 +123,7 @@ # bound to the Esc key by default (you can change it - see readline docs). # # Store the file in ~/.pystartup, and set an environment variable to point - # to it: "export PYTHONSTARTUP=/max/home/itamar/.pystartup" in bash. + # to it: "export PYTHONSTARTUP=/home/user/.pystartup" in bash. # # Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the # full path to your home directory. Modified: python/branches/ctypes-branch/Doc/tutorial/modules.rst ============================================================================== --- python/branches/ctypes-branch/Doc/tutorial/modules.rst (original) +++ python/branches/ctypes-branch/Doc/tutorial/modules.rst Tue Oct 23 20:47:50 2007 @@ -186,8 +186,8 @@ * When the Python interpreter is invoked with the :option:`-O` flag, optimized code is generated and stored in :file:`.pyo` files. The optimizer currently doesn't help much; it only removes :keyword:`assert` statements. When - :option:`-O` is used, *all* bytecode is optimized; ``.pyc`` files are ignored - and ``.py`` files are compiled to optimized bytecode. + :option:`-O` is used, *all* :term:`bytecode` is optimized; ``.pyc`` files are + ignored and ``.py`` files are compiled to optimized bytecode. * Passing two :option:`-O` flags to the Python interpreter (:option:`-OO`) will cause the bytecode compiler to perform optimizations that could in some rare Modified: python/branches/ctypes-branch/Doc/whatsnew/2.6.rst ============================================================================== --- python/branches/ctypes-branch/Doc/whatsnew/2.6.rst (original) +++ python/branches/ctypes-branch/Doc/whatsnew/2.6.rst Tue Oct 23 20:47:50 2007 @@ -67,7 +67,6 @@ .. % Large, PEP-level features and changes should be described here. .. % Should there be a new section here for 3k migration? .. % Or perhaps a more general section describing module changes/deprecation? -.. % sets module deprecated .. % ====================================================================== Python 3.0 @@ -515,6 +514,12 @@ by module name. Consult the :file:`Misc/NEWS` file in the source tree for a more complete list of changes, or look through the CVS logs for all the details. +* The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol + available, instead of restricting itself to protocol 1. + (Contributed by W. Barnes.) + + .. % Patch 1551443 + * A new data type in the :mod:`collections` module: :class:`named_tuple(typename, fieldnames)` is a factory function that creates subclasses of the standard tuple whose fields are accessible by name as well as index. For example:: @@ -531,17 +536,48 @@ 1 1 >>> print var[2], var.type # Equivalent int int + >>> var.__asdict__() + {'size': 4, 'type': 'int', 'id': 1, 'name': 'frequency'} >>> v2 = var.__replace__('name', 'amplitude') >>> v2 variable(id=1, name='amplitude', type='int', size=4) (Contributed by Raymond Hettinger.) +* Another change to the :mod:`collections` module is that the + :class:`deque` type now supports an optional `maxlen` parameter; + if supplied, the deque's size will be restricted to no more + than ``maxlen`` items. Adding more items to a full deque causes + old items to be discarded. + + :: + + >>> from collections import deque + >>> dq=deque(maxlen=3) + >>> dq + deque([], maxlen=3) + >>> dq.append(1) ; dq.append(2) ; dq.append(3) + >>> dq + deque([1, 2, 3], maxlen=3) + >>> dq.append(4) + >>> dq + deque([2, 3, 4], maxlen=3) + + (Contributed by Raymond Hettinger.) + * The :mod:`ctypes` module now supports a :class:`c_bool` datatype that represents the C99 ``bool`` type. (Contributed by David Remahl.) .. % Patch 1649190 + The :mod:`ctypes` string, buffer and array types also have improved + support for extended slicing syntax, + where various combinations of ``(start, stop, step)`` are supplied. + (Implemented by Thomas Wouters.) + + .. % Revision 57769 + + * A new method in the :mod:`curses` module: for a window, :meth:`chgat` changes the display characters for a certain number of characters on a single line. :: @@ -626,6 +662,12 @@ .. % Patch 1273829 +* The ``os.environ`` object's :meth:`clear` method will now unset the + environment variables using :func:`os.unsetenv` in addition to clearing + the object's keys. (Contributed by Martin Horcicka.) + + .. % Patch #1181 + * In the :mod:`os.path` module, the :func:`splitext` function has been changed to not split on leading period characters. This produces better results when operating on Unix's dot-files. @@ -663,6 +705,9 @@ * The :mod:`rgbimg` module has been removed. +* The :mod:`sets` module has been deprecated; it's better to + use the built-in :class:`set` and :class:`frozenset` types. + * The :mod:`smtplib` module now supports SMTP over SSL thanks to the addition of the :class:`SMTP_SSL` class. This class supports an interface identical to the existing :class:`SMTP` class. Both @@ -778,7 +823,7 @@ (Added by Facundo Batista.) * The XML-RPC classes :class:`SimpleXMLRPCServer` and :class:`DocXMLRPCServer` - classes can now be preventing from immediately opening and binding to + classes can now be prevented from immediately opening and binding to their socket by passing True as the ``bind_and_activate`` constructor parameter. This can be used to modify the instance's :attr:`allow_reuse_address` attribute before calling the @@ -788,8 +833,36 @@ .. % Patch 1599845 + :class:`SimpleXMLRPCServer` also has a :attr:`_send_traceback_header` + attribute; if true, the exception and formatted traceback are returned + as HTTP headers "X-Exception" and "X-Traceback". This feature is + for debugging purposes only and should not be used on production servers + because the tracebacks could possibly reveal passwords or other sensitive + information. (Contributed by Alan McIntyre as part of his + project for Google's Summer of Code 2007.) + .. % ====================================================================== -.. % whole new modules get described in \subsections here +.. % whole new modules get described in subsections here + +Improved SSL Support +-------------------------------------------------- + +Bill Janssen made extensive improvements to Python 2.6's support for +SSL. + +XXX use ssl.sslsocket - subclass of socket.socket. + +XXX Can specify if certificate is required, and obtain certificate info +by calling getpeercert method. + +XXX sslwrap() behaves like socket.ssl + +XXX Certain features require the OpenSSL package to be installed, notably + the 'openssl' binary. + +.. seealso:: + + SSL module documentation. .. % ====================================================================== @@ -799,7 +872,13 @@ Changes to Python's build process and to the C API include: -* Detailed changes will be listed here. +* The BerkeleyDB module now has a C API object, available as + ``bsddb.db.api``. This object can be used by other C extensions + that wish to use the :mod:`bsddb` module for their own purposes. + (Contributed by Duncan Grisby.) + + .. % Patch 1551895 + .. % ====================================================================== @@ -835,8 +914,12 @@ This section lists previously described changes that may require changes to your code: -* The :mod:`socket` module exception :exc:`socket.error` now inherits from - :exc:`IOError`. +* The :mod:`socket` module exception :exc:`socket.error` now inherits + from :exc:`IOError`. Previously it wasn't a subclass of + :exc:`StandardError` but now it is, through :exc:`IOError`. + (Implemented by Gregory P. Smith.) + + .. % http://bugs.python.org/issue1706815 .. % ====================================================================== Modified: python/branches/ctypes-branch/Lib/bsddb/dbshelve.py ============================================================================== --- python/branches/ctypes-branch/Lib/bsddb/dbshelve.py (original) +++ python/branches/ctypes-branch/Lib/bsddb/dbshelve.py Tue Oct 23 20:47:50 2007 @@ -84,12 +84,16 @@ #--------------------------------------------------------------------------- +class DBShelveError(db.DBError): pass + + class DBShelf(DictMixin): """A shelf to hold pickled objects, built upon a bsddb DB object. It automatically pickles/unpickles data objects going to/from the DB. """ def __init__(self, dbenv=None): self.db = db.DB(dbenv) + self._closed = True if HIGHEST_PROTOCOL: self.protocol = HIGHEST_PROTOCOL else: @@ -135,6 +139,23 @@ return self.db.keys() + def open(self, *args, **kwargs): + self.db.open(*args, **kwargs) + self._closed = False + + + def close(self, *args, **kwargs): + self.db.close(*args, **kwargs) + self._closed = True + + + def __repr__(self): + if self._closed: + return '' % (id(self)) + else: + return repr(dict(self.iteritems())) + + def items(self, txn=None): if txn != None: items = self.db.items(txn) @@ -162,10 +183,9 @@ return self.db.append(data, txn) def append(self, value, txn=None): - if self.get_type() != db.DB_RECNO: - self.append = self.__append - return self.append(value, txn=txn) - raise db.DBError, "append() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO" + if self.get_type() == db.DB_RECNO: + return self.__append(value, txn=txn) + raise DBShelveError, "append() only supported when dbshelve opened with filetype=dbshelve.db.DB_RECNO" def associate(self, secondaryDB, callback, flags=0): Modified: python/branches/ctypes-branch/Lib/bsddb/dbtables.py ============================================================================== --- python/branches/ctypes-branch/Lib/bsddb/dbtables.py (original) +++ python/branches/ctypes-branch/Lib/bsddb/dbtables.py Tue Oct 23 20:47:50 2007 @@ -20,8 +20,8 @@ import re import sys import copy -import xdrlib import random +import struct from types import ListType, StringType import cPickle as pickle @@ -255,7 +255,7 @@ flags=DB_RMW)) tablelist.append(table) # delete 1st, in case we opened with DB_DUP - self.db.delete(_table_names_key, txn) + self.db.delete(_table_names_key, txn=txn) self.db.put(_table_names_key, pickle.dumps(tablelist, 1), txn=txn) txn.commit() @@ -329,7 +329,7 @@ # store the table's new extended column list if newcolumnlist != oldcolumnlist : # delete the old one first since we opened with DB_DUP - self.db.delete(columnlist_key, txn) + self.db.delete(columnlist_key, txn=txn) self.db.put(columnlist_key, pickle.dumps(newcolumnlist, 1), txn=txn) @@ -362,10 +362,11 @@ # Generate a random 64-bit row ID string # (note: this code has <64 bits of randomness # but it's plenty for our database id needs!) - p = xdrlib.Packer() - p.pack_int(int(random.random()*2147483647)) - p.pack_int(int(random.random()*2147483647)) - newid = p.get_buffer() + # We must ensure that no null bytes are in the id value. + blist = [] + for x in xrange(_rowid_str_len): + blist.append(random.randint(1,255)) + newid = struct.pack('B'*_rowid_str_len, *blist) # Guarantee uniqueness by adding this key to the database try: @@ -444,10 +445,10 @@ try: dataitem = self.db.get( _data_key(table, column, rowid), - txn) + txn=txn) self.db.delete( _data_key(table, column, rowid), - txn) + txn=txn) except DBNotFoundError: # XXXXXXX row key somehow didn't exist, assume no # error @@ -490,13 +491,13 @@ # delete the data key try: self.db.delete(_data_key(table, column, rowid), - txn) + txn=txn) except DBNotFoundError: # XXXXXXX column may not exist, assume no error pass try: - self.db.delete(_rowid_key(table, rowid), txn) + self.db.delete(_rowid_key(table, rowid), txn=txn) except DBNotFoundError: # XXXXXXX row key somehow didn't exist, assume no error pass @@ -652,7 +653,7 @@ txn = self.env.txn_begin() # delete the column list - self.db.delete(_columns_key(table), txn) + self.db.delete(_columns_key(table), txn=txn) cur = self.db.cursor(txn) @@ -691,7 +692,7 @@ # hmm, it wasn't there, oh well, that's what we want. pass # delete 1st, incase we opened with DB_DUP - self.db.delete(_table_names_key, txn) + self.db.delete(_table_names_key, txn=txn) self.db.put(_table_names_key, pickle.dumps(tablelist, 1), txn=txn) txn.commit() Modified: python/branches/ctypes-branch/Lib/bsddb/test/test_1413192.py ============================================================================== --- python/branches/ctypes-branch/Lib/bsddb/test/test_1413192.py (original) +++ python/branches/ctypes-branch/Lib/bsddb/test/test_1413192.py Tue Oct 23 20:47:50 2007 @@ -5,6 +5,7 @@ import shutil import tempfile +import warnings try: # For Pythons w/distutils and add-on pybsddb from bsddb3 import db @@ -32,8 +33,12 @@ del self.the_txn -context = Context() -del context +warnings.filterwarnings('ignore', 'DBTxn aborted in destructor') +try: + context = Context() + del context +finally: + warnings.resetwarnings() # try not to leave a turd try: Modified: python/branches/ctypes-branch/Lib/bsddb/test/test_dbshelve.py ============================================================================== --- python/branches/ctypes-branch/Lib/bsddb/test/test_dbshelve.py (original) +++ python/branches/ctypes-branch/Lib/bsddb/test/test_dbshelve.py Tue Oct 23 20:47:50 2007 @@ -41,17 +41,22 @@ except os.error: pass + def mk(self, key): + """Turn key into an appropriate key type for this db""" + # override in child class for RECNO + return key + def populateDB(self, d): for x in string.letters: - d['S' + x] = 10 * x # add a string - d['I' + x] = ord(x) # add an integer - d['L' + x] = [x] * 10 # add a list + d[self.mk('S' + x)] = 10 * x # add a string + d[self.mk('I' + x)] = ord(x) # add an integer + d[self.mk('L' + x)] = [x] * 10 # add a list inst = DataClass() # add an instance inst.S = 10 * x inst.I = ord(x) inst.L = [x] * 10 - d['O' + x] = inst + d[self.mk('O' + x)] = inst # overridable in derived classes to affect how the shelf is created/opened @@ -85,14 +90,14 @@ print "keys:", k print "stats:", s - assert 0 == d.has_key('bad key') - assert 1 == d.has_key('IA') - assert 1 == d.has_key('OA') - - d.delete('IA') - del d['OA'] - assert 0 == d.has_key('IA') - assert 0 == d.has_key('OA') + assert 0 == d.has_key(self.mk('bad key')) + assert 1 == d.has_key(self.mk('IA')) + assert 1 == d.has_key(self.mk('OA')) + + d.delete(self.mk('IA')) + del d[self.mk('OA')] + assert 0 == d.has_key(self.mk('IA')) + assert 0 == d.has_key(self.mk('OA')) assert len(d) == l-2 values = [] @@ -115,18 +120,18 @@ for key, value in items: self.checkrec(key, value) - assert d.get('bad key') == None - assert d.get('bad key', None) == None - assert d.get('bad key', 'a string') == 'a string' - assert d.get('bad key', [1, 2, 3]) == [1, 2, 3] + assert d.get(self.mk('bad key')) == None + assert d.get(self.mk('bad key'), None) == None + assert d.get(self.mk('bad key'), 'a string') == 'a string' + assert d.get(self.mk('bad key'), [1, 2, 3]) == [1, 2, 3] d.set_get_returns_none(0) - self.assertRaises(db.DBNotFoundError, d.get, 'bad key') + self.assertRaises(db.DBNotFoundError, d.get, self.mk('bad key')) d.set_get_returns_none(1) - d.put('new key', 'new data') - assert d.get('new key') == 'new data' - assert d['new key'] == 'new data' + d.put(self.mk('new key'), 'new data') + assert d.get(self.mk('new key')) == 'new data' + assert d[self.mk('new key')] == 'new data' @@ -165,14 +170,24 @@ assert count == len(d) - c.set('SS') + c.set(self.mk('SS')) key, value = c.current() self.checkrec(key, value) del c + def test03_append(self): + # NOTE: this is overridden in RECNO subclass, don't change its name. + if verbose: + print '\n', '-=' * 30 + print "Running %s.test03_append..." % self.__class__.__name__ + + self.assertRaises(dbshelve.DBShelveError, + self.d.append, 'unit test was here') + def checkrec(self, key, value): + # override this in a subclass if the key type is different x = key[1] if key[0] == 'S': assert type(value) == StringType @@ -281,7 +296,43 @@ #---------------------------------------------------------------------- -# TODO: Add test cases for a DBShelf in a RECNO DB. +# test cases for a DBShelf in a RECNO DB. + +class RecNoShelveTestCase(BasicShelveTestCase): + dbtype = db.DB_RECNO + dbflags = db.DB_CREATE + + def setUp(self): + BasicShelveTestCase.setUp(self) + + # pool to assign integer key values out of + self.key_pool = list(range(1, 5000)) + self.key_map = {} # map string keys to the number we gave them + self.intkey_map = {} # reverse map of above + + def mk(self, key): + if key not in self.key_map: + self.key_map[key] = self.key_pool.pop(0) + self.intkey_map[self.key_map[key]] = key + return self.key_map[key] + + def checkrec(self, intkey, value): + key = self.intkey_map[intkey] + BasicShelveTestCase.checkrec(self, key, value) + + def test03_append(self): + if verbose: + print '\n', '-=' * 30 + print "Running %s.test03_append..." % self.__class__.__name__ + + self.d[1] = 'spam' + self.d[5] = 'eggs' + self.assertEqual(6, self.d.append('spam')) + self.assertEqual(7, self.d.append('baked beans')) + self.assertEqual('spam', self.d.get(6)) + self.assertEqual('spam', self.d.get(1)) + self.assertEqual('baked beans', self.d.get(7)) + self.assertEqual('eggs', self.d.get(5)) #---------------------------------------------------------------------- @@ -298,6 +349,7 @@ suite.addTest(unittest.makeSuite(EnvHashShelveTestCase)) suite.addTest(unittest.makeSuite(EnvThreadBTreeShelveTestCase)) suite.addTest(unittest.makeSuite(EnvThreadHashShelveTestCase)) + suite.addTest(unittest.makeSuite(RecNoShelveTestCase)) return suite Modified: python/branches/ctypes-branch/Lib/bsddb/test/test_dbtables.py ============================================================================== --- python/branches/ctypes-branch/Lib/bsddb/test/test_dbtables.py (original) +++ python/branches/ctypes-branch/Lib/bsddb/test/test_dbtables.py Tue Oct 23 20:47:50 2007 @@ -21,6 +21,8 @@ # $Id$ import sys, os, re +import tempfile +import shutil try: import cPickle pickle = cPickle @@ -47,8 +49,8 @@ db_name = 'test-table.db' def setUp(self): - homeDir = os.path.join(tempfile.gettempdir(), 'db_home') - self.homeDir = homeDir + homeDir = tempfile.mkdtemp() + self.testHomeDir = homeDir try: os.mkdir(homeDir) except os.error: pass self.tdb = dbtables.bsdTableDB( @@ -56,10 +58,7 @@ def tearDown(self): self.tdb.close() - import glob - files = glob.glob(os.path.join(self.homeDir, '*')) - for file in files: - os.remove(file) + shutil.rmtree(self.testHomeDir) def test01(self): tabname = "test01" @@ -78,7 +77,8 @@ tabname, [colname], conditions={colname: None}) colval = pickle.loads(values[0][colname]) - assert(colval > 3.141 and colval < 3.142) + self.assert_(colval > 3.141) + self.assert_(colval < 3.142) def test02(self): @@ -103,15 +103,15 @@ values = self.tdb.Select(tabname, [col2], conditions={col0: lambda x: pickle.loads(x) >= 8}) - assert len(values) == 2 + self.assertEqual(len(values), 2) if values[0]['Species'] == 'Penguin' : - assert values[1]['Species'] == 'SR-71A Blackbird' + self.assertEqual(values[1]['Species'], 'SR-71A Blackbird') elif values[0]['Species'] == 'SR-71A Blackbird' : - assert values[1]['Species'] == 'Penguin' + self.assertEqual(values[1]['Species'], 'Penguin') else : if verbose: print "values= %r" % (values,) - raise "Wrong values returned!" + raise RuntimeError("Wrong values returned!") def test03(self): tabname = "test03" @@ -137,13 +137,13 @@ {'a': "", 'e': pickle.dumps([{4:5, 6:7}, 'foo'], 1), 'f': "Zero"}) - assert 0 + self.fail('Expected an exception') except dbtables.TableDBError: pass try: self.tdb.Select(tabname, [], conditions={'foo': '123'}) - assert 0 + self.fail('Expected an exception') except dbtables.TableDBError: pass @@ -172,20 +172,20 @@ values = self.tdb.Select(tabname, ['b', 'a', 'd'], conditions={'e': re.compile('wuzzy').search, 'a': re.compile('^[0-9]+$').match}) - assert len(values) == 2 + self.assertEqual(len(values), 2) # now lets delete one of them and try again self.tdb.Delete(tabname, conditions={'b': dbtables.ExactCond('good')}) values = self.tdb.Select( tabname, ['a', 'd', 'b'], conditions={'e': dbtables.PrefixCond('Fuzzy')}) - assert len(values) == 1 - assert values[0]['d'] == None + self.assertEqual(len(values), 1) + self.assertEqual(values[0]['d'], None) values = self.tdb.Select(tabname, ['b'], conditions={'c': lambda c: c == 'meep'}) - assert len(values) == 1 - assert values[0]['b'] == "bad" + self.assertEqual(len(values), 1) + self.assertEqual(values[0]['b'], "bad") def test04_MultiCondSelect(self): @@ -201,7 +201,7 @@ {'a': "", 'e': pickle.dumps([{4:5, 6:7}, 'foo'], 1), 'f': "Zero"}) - assert 0 + self.fail('Expected an exception') except dbtables.TableDBError: pass @@ -225,7 +225,7 @@ 'a': dbtables.ExactCond('A'), 'd': dbtables.PrefixCond('-') } ) - assert len(values) == 0, values + self.assertEqual(len(values), 0, values) def test_CreateOrExtend(self): @@ -238,7 +238,7 @@ {'taste': 'crap', 'filling': 'no', 'is it Guinness?': 'no'}) - assert 0, "Insert should've failed due to bad column name" + self.fail("Insert should've failed due to bad column name") except: pass self.tdb.CreateOrExtendTable(tabname, @@ -272,16 +272,16 @@ values = self.tdb.Select( tabname, ['p', 'e'], conditions={'e': dbtables.PrefixCond('the l')}) - assert len(values) == 2, values - assert values[0]['e'] == values[1]['e'], values - assert values[0]['p'] != values[1]['p'], values + self.assertEqual(len(values), 2, values) + self.assertEqual(values[0]['e'], values[1]['e'], values) + self.assertNotEqual(values[0]['p'], values[1]['p'], values) values = self.tdb.Select( tabname, ['d', 'a'], conditions={'a': dbtables.LikeCond('%aardvark%')}) - assert len(values) == 1, values - assert values[0]['d'] == "is for dog", values - assert values[0]['a'] == "is for aardvark", values + self.assertEqual(len(values), 1, values) + self.assertEqual(values[0]['d'], "is for dog", values) + self.assertEqual(values[0]['a'], "is for aardvark", values) values = self.tdb.Select(tabname, None, {'b': dbtables.Cond(), @@ -290,9 +290,9 @@ 'd':dbtables.ExactCond('is for dog'), 'c':dbtables.PrefixCond('is for'), 'p':lambda s: not s}) - assert len(values) == 1, values - assert values[0]['d'] == "is for dog", values - assert values[0]['a'] == "is for aardvark", values + self.assertEqual(len(values), 1, values) + self.assertEqual(values[0]['d'], "is for dog", values) + self.assertEqual(values[0]['a'], "is for aardvark", values) def test_Delete(self): tabname = "test_Delete" @@ -308,7 +308,7 @@ self.tdb.Delete(tabname, conditions={'x': dbtables.PrefixCond('X')}) values = self.tdb.Select(tabname, ['y'], conditions={'x': dbtables.PrefixCond('X')}) - assert len(values) == 0 + self.assertEqual(len(values), 0) def test_Modify(self): tabname = "test_Modify" @@ -354,24 +354,24 @@ values = self.tdb.Select( tabname, None, conditions={'Type': dbtables.ExactCond('Unknown')}) - assert len(values) == 1, values - assert values[0]['Name'] == None, values - assert values[0]['Access'] == None, values + self.assertEqual(len(values), 1, values) + self.assertEqual(values[0]['Name'], None, values) + self.assertEqual(values[0]['Access'], None, values) # Modify value by select conditions values = self.tdb.Select( tabname, None, conditions={'Name': dbtables.ExactCond('Nifty.MP3')}) - assert len(values) == 1, values - assert values[0]['Type'] == "MP3", values - assert values[0]['Access'] == "2", values + self.assertEqual(len(values), 1, values) + self.assertEqual(values[0]['Type'], "MP3", values) + self.assertEqual(values[0]['Access'], "2", values) # Make sure change applied only to select conditions values = self.tdb.Select( tabname, None, conditions={'Name': dbtables.LikeCond('%doc%')}) - assert len(values) == 1, values - assert values[0]['Type'] == "Word", values - assert values[0]['Access'] == "9", values + self.assertEqual(len(values), 1, values) + self.assertEqual(values[0]['Type'], "Word", values) + self.assertEqual(values[0]['Access'], "9", values) def test_suite(): Modified: python/branches/ctypes-branch/Lib/collections.py ============================================================================== --- python/branches/ctypes-branch/Lib/collections.py (original) +++ python/branches/ctypes-branch/Lib/collections.py Tue Oct 23 20:47:50 2007 @@ -2,6 +2,7 @@ from _collections import deque, defaultdict from operator import itemgetter as _itemgetter +from keyword import iskeyword as _iskeyword import sys as _sys def named_tuple(typename, field_names, verbose=False): @@ -32,16 +33,19 @@ if isinstance(field_names, basestring): field_names = field_names.replace(',', ' ').split() # names separated by whitespace and/or commas field_names = tuple(field_names) - if not ''.join((typename,) + field_names).replace('_', '').isalnum(): - raise ValueError('Type names and field names can only contain alphanumeric characters and underscores') + for name in (typename,) + field_names: + if not name.replace('_', '').isalnum(): + raise ValueError('Type names and field names can only contain alphanumeric characters and underscores: %r' % name) + if _iskeyword(name): + raise ValueError('Type names and field names cannot be a keyword: %r' % name) + if name[0].isdigit(): + raise ValueError('Type names and field names cannot start with a number: %r' % name) seen_names = set() for name in field_names: if name.startswith('__') and name.endswith('__'): - raise ValueError('Field names cannot start and end with double underscores: %s' % name) - if name[:1].isdigit(): - raise ValueError('Field names cannot start with a number: %s' % name) + raise ValueError('Field names cannot start and end with double underscores: %r' % name) if name in seen_names: - raise ValueError('Encountered duplicate field name: %s' % name) + raise ValueError('Encountered duplicate field name: %r' % name) seen_names.add(name) # Create and fill-in the class template Modified: python/branches/ctypes-branch/Lib/ctypes/__init__.py ============================================================================== --- python/branches/ctypes-branch/Lib/ctypes/__init__.py (original) +++ python/branches/ctypes-branch/Lib/ctypes/__init__.py Tue Oct 23 20:47:50 2007 @@ -24,19 +24,12 @@ DEFAULT_MODE = RTLD_LOCAL if _os.name == "posix" and _sys.platform == "darwin": - import gestalt - - # gestalt.gestalt("sysv") returns the version number of the - # currently active system file as BCD. - # On OS X 10.4.6 -> 0x1046 - # On OS X 10.2.8 -> 0x1028 - # See also http://www.rgaros.nl/gestalt/ - # # On OS X 10.3, we use RTLD_GLOBAL as default mode # because RTLD_LOCAL does not work at least on some - # libraries. + # libraries. OS X 10.3 is Darwin 7, so we check for + # that. - if gestalt.gestalt("sysv") < 0x1040: + if int(_os.uname()[2].split('.')[0]) < 8: DEFAULT_MODE = RTLD_GLOBAL from _ctypes import FUNCFLAG_CDECL as _FUNCFLAG_CDECL, \ Modified: python/branches/ctypes-branch/Lib/decimal.py ============================================================================== --- python/branches/ctypes-branch/Lib/decimal.py (original) +++ python/branches/ctypes-branch/Lib/decimal.py Tue Oct 23 20:47:50 2007 @@ -562,20 +562,46 @@ # tuple/list conversion (possibly from as_tuple()) if isinstance(value, (list,tuple)): if len(value) != 3: - raise ValueError('Invalid arguments') - if value[0] not in (0,1): - raise ValueError('Invalid sign') - for digit in value[1]: - if not isinstance(digit, (int,long)) or digit < 0: - raise ValueError("The second value in the tuple must be " - "composed of non negative integer elements.") + raise ValueError('Invalid tuple size in creation of Decimal ' + 'from list or tuple. The list or tuple ' + 'should have exactly three elements.') + # process sign. The isinstance test rejects floats + if not (isinstance(value[0], (int, long)) and value[0] in (0,1)): + raise ValueError("Invalid sign. The first value in the tuple " + "should be an integer; either 0 for a " + "positive number or 1 for a negative number.") self._sign = value[0] - self._int = tuple(value[1]) - if value[2] in ('F','n','N'): + if value[2] == 'F': + # infinity: value[1] is ignored + self._int = (0,) self._exp = value[2] self._is_special = True else: - self._exp = int(value[2]) + # process and validate the digits in value[1] + digits = [] + for digit in value[1]: + if isinstance(digit, (int, long)) and 0 <= digit <= 9: + # skip leading zeros + if digits or digit != 0: + digits.append(digit) + else: + raise ValueError("The second value in the tuple must " + "be composed of integers in the range " + "0 through 9.") + if value[2] in ('n', 'N'): + # NaN: digits form the diagnostic + self._int = tuple(digits) + self._exp = value[2] + self._is_special = True + elif isinstance(value[2], (int, long)): + # finite number: digits give the coefficient + self._int = tuple(digits or [0]) + self._exp = value[2] + self._is_special = False + else: + raise ValueError("The third value in the tuple must " + "be an integer, or one of the " + "strings 'F', 'n', 'N'.") return self if isinstance(value, float): Modified: python/branches/ctypes-branch/Lib/httplib.py ============================================================================== --- python/branches/ctypes-branch/Lib/httplib.py (original) +++ python/branches/ctypes-branch/Lib/httplib.py Tue Oct 23 20:47:50 2007 @@ -530,7 +530,8 @@ s = self.fp.read(amt) if self.length is not None: self.length -= len(s) - + if not self.length: + self.close() return s def _read_chunked(self, amt): Modified: python/branches/ctypes-branch/Lib/idlelib/EditorWindow.py ============================================================================== --- python/branches/ctypes-branch/Lib/idlelib/EditorWindow.py (original) +++ python/branches/ctypes-branch/Lib/idlelib/EditorWindow.py Tue Oct 23 20:47:50 2007 @@ -414,6 +414,7 @@ def paste(self,event): self.text.event_generate("<>") + self.text.see("insert") return "break" def select_all(self, event=None): Modified: python/branches/ctypes-branch/Lib/idlelib/NEWS.txt ============================================================================== --- python/branches/ctypes-branch/Lib/idlelib/NEWS.txt (original) +++ python/branches/ctypes-branch/Lib/idlelib/NEWS.txt Tue Oct 23 20:47:50 2007 @@ -3,6 +3,13 @@ *Release date: XX-XXX-200X* +- Show paste position if > 80 col. Patch 1659326 Tal Einat. + +- Update cursor color without restarting. Patch 1725576 Tal Einat. + +- Allow keyboard interrupt only when user code is executing in subprocess. + Patch 1225 Tal Einat (reworked from IDLE-Spoon). + - configDialog cleanup. Patch 1730217 Tal Einat. - textView cleanup. Patch 1718043 Tal Einat. Modified: python/branches/ctypes-branch/Lib/idlelib/configDialog.py ============================================================================== --- python/branches/ctypes-branch/Lib/idlelib/configDialog.py (original) +++ python/branches/ctypes-branch/Lib/idlelib/configDialog.py Tue Oct 23 20:47:50 2007 @@ -1118,12 +1118,15 @@ def ActivateConfigChanges(self): "Dynamically apply configuration changes" winInstances=self.parent.instance_dict.keys() + theme = idleConf.CurrentTheme() + cursor_color = idleConf.GetHighlight(theme, 'cursor', fgBg='fg') for instance in winInstances: instance.ResetColorizer() instance.ResetFont() instance.set_notabs_indentwidth() instance.ApplyKeybindings() instance.reset_help_menu_entries() + instance.text.configure(insertbackground=cursor_color) def Cancel(self): self.destroy() Modified: python/branches/ctypes-branch/Lib/idlelib/run.py ============================================================================== --- python/branches/ctypes-branch/Lib/idlelib/run.py (original) +++ python/branches/ctypes-branch/Lib/idlelib/run.py Tue Oct 23 20:47:50 2007 @@ -38,10 +38,11 @@ # Thread shared globals: Establish a queue between a subthread (which handles # the socket) and the main thread (which runs user code), plus global -# completion and exit flags: +# completion, exit and interruptable (the main thread) flags: exit_now = False quitting = False +interruptable = False def main(del_exitfunc=False): """Start the Python execution server in a subprocess @@ -280,9 +281,14 @@ self.autocomplete = AutoComplete.AutoComplete() def runcode(self, code): + global interruptable try: self.usr_exc_info = None - exec code in self.locals + interruptable = True + try: + exec code in self.locals + finally: + interruptable = False except: self.usr_exc_info = sys.exc_info() if quitting: @@ -296,7 +302,8 @@ flush_stdout() def interrupt_the_server(self): - thread.interrupt_main() + if interruptable: + thread.interrupt_main() def start_the_debugger(self, gui_adap_oid): return RemoteDebugger.start_debugger(self.rpchandler, gui_adap_oid) Modified: python/branches/ctypes-branch/Lib/smtpd.py ============================================================================== --- python/branches/ctypes-branch/Lib/smtpd.py (original) +++ python/branches/ctypes-branch/Lib/smtpd.py Tue Oct 23 20:47:50 2007 @@ -221,7 +221,7 @@ def smtp_MAIL(self, arg): print >> DEBUGSTREAM, '===> MAIL', arg - address = self.__getaddr('FROM:', arg) + address = self.__getaddr('FROM:', arg) if arg else None if not address: self.push('501 Syntax: MAIL FROM:
    ') return Deleted: /python/branches/ctypes-branch/Lib/test/crashers/file_threads.py ============================================================================== --- /python/branches/ctypes-branch/Lib/test/crashers/file_threads.py Tue Oct 23 20:47:50 2007 +++ (empty file) @@ -1,8 +0,0 @@ -# An example for http://bugs.python.org/issue815646 - -import thread - -while 1: - f = open("/tmp/dupa", "w") - thread.start_new_thread(f.close, ()) - f.close() Modified: python/branches/ctypes-branch/Lib/test/test_collections.py ============================================================================== --- python/branches/ctypes-branch/Lib/test/test_collections.py (original) +++ python/branches/ctypes-branch/Lib/test/test_collections.py Tue Oct 23 20:47:50 2007 @@ -11,11 +11,17 @@ self.assertEqual(Point.__slots__, ()) self.assertEqual(Point.__module__, __name__) self.assertEqual(Point.__getitem__, tuple.__getitem__) - self.assertRaises(ValueError, named_tuple, 'abc%', 'def ghi') - self.assertRaises(ValueError, named_tuple, 'abc', 'def g%hi') - self.assertRaises(ValueError, named_tuple, 'abc', '__def__ ghi') - self.assertRaises(ValueError, named_tuple, 'abc', 'def def ghi') - self.assertRaises(ValueError, named_tuple, 'abc', '8def 9ghi') + + self.assertRaises(ValueError, named_tuple, 'abc%', 'efg ghi') # type has non-alpha char + self.assertRaises(ValueError, named_tuple, 'class', 'efg ghi') # type has keyword + self.assertRaises(ValueError, named_tuple, '9abc', 'efg ghi') # type starts with digit + + self.assertRaises(ValueError, named_tuple, 'abc', 'efg g%hi') # field with non-alpha char + self.assertRaises(ValueError, named_tuple, 'abc', 'abc class') # field has keyword + self.assertRaises(ValueError, named_tuple, 'abc', '8efg 9ghi') # field starts with digit + self.assertRaises(ValueError, named_tuple, 'abc', '__efg__ ghi') # field with double underscores + self.assertRaises(ValueError, named_tuple, 'abc', 'efg efg ghi') # duplicate field + named_tuple('Point0', 'x1 y2') # Verify that numbers are allowed in names def test_instance(self): @@ -66,7 +72,6 @@ self.assertEqual(p.y, y) self.assertRaises(AttributeError, eval, 'p.z', locals()) - def test_odd_sizes(self): Zero = named_tuple('Zero', '') self.assertEqual(Zero(), ()) Modified: python/branches/ctypes-branch/Lib/test/test_decimal.py ============================================================================== --- python/branches/ctypes-branch/Lib/test/test_decimal.py (original) +++ python/branches/ctypes-branch/Lib/test/test_decimal.py Tue Oct 23 20:47:50 2007 @@ -452,13 +452,18 @@ #bad sign self.assertRaises(ValueError, Decimal, (8, (4, 3, 4, 9, 1), 2) ) + self.assertRaises(ValueError, Decimal, (0., (4, 3, 4, 9, 1), 2) ) + self.assertRaises(ValueError, Decimal, (Decimal(1), (4, 3, 4, 9, 1), 2)) #bad exp self.assertRaises(ValueError, Decimal, (1, (4, 3, 4, 9, 1), 'wrong!') ) + self.assertRaises(ValueError, Decimal, (1, (4, 3, 4, 9, 1), 0.) ) + self.assertRaises(ValueError, Decimal, (1, (4, 3, 4, 9, 1), '1') ) #bad coefficients self.assertRaises(ValueError, Decimal, (1, (4, 3, 4, None, 1), 2) ) self.assertRaises(ValueError, Decimal, (1, (4, -3, 4, 9, 1), 2) ) + self.assertRaises(ValueError, Decimal, (1, (4, 10, 4, 9, 1), 2) ) def test_explicit_from_Decimal(self): @@ -1060,6 +1065,28 @@ d = Decimal("Infinity") self.assertEqual(d.as_tuple(), (0, (0,), 'F') ) + #leading zeros in coefficient should be stripped + d = Decimal( (0, (0, 0, 4, 0, 5, 3, 4), -2) ) + self.assertEqual(d.as_tuple(), (0, (4, 0, 5, 3, 4), -2) ) + d = Decimal( (1, (0, 0, 0), 37) ) + self.assertEqual(d.as_tuple(), (1, (0,), 37)) + d = Decimal( (1, (), 37) ) + self.assertEqual(d.as_tuple(), (1, (0,), 37)) + + #leading zeros in NaN diagnostic info should be stripped + d = Decimal( (0, (0, 0, 4, 0, 5, 3, 4), 'n') ) + self.assertEqual(d.as_tuple(), (0, (4, 0, 5, 3, 4), 'n') ) + d = Decimal( (1, (0, 0, 0), 'N') ) + self.assertEqual(d.as_tuple(), (1, (), 'N') ) + d = Decimal( (1, (), 'n') ) + self.assertEqual(d.as_tuple(), (1, (), 'n') ) + + #coefficient in infinity should be ignored + d = Decimal( (0, (4, 5, 3, 4), 'F') ) + self.assertEqual(d.as_tuple(), (0, (0,), 'F')) + d = Decimal( (1, (0, 2, 7, 1), 'F') ) + self.assertEqual(d.as_tuple(), (1, (0,), 'F')) + def test_immutability_operations(self): # Do operations and check that it didn't change change internal objects. Modified: python/branches/ctypes-branch/Lib/test/test_deque.py ============================================================================== --- python/branches/ctypes-branch/Lib/test/test_deque.py (original) +++ python/branches/ctypes-branch/Lib/test/test_deque.py Tue Oct 23 20:47:50 2007 @@ -48,6 +48,7 @@ self.assertEqual(list(d), range(50, 150)) def test_maxlen(self): + self.assertRaises(ValueError, deque, 'abc', -1) self.assertRaises(ValueError, deque, 'abc', -2) d = deque(range(10), maxlen=3) self.assertEqual(repr(d), 'deque([7, 8, 9], maxlen=3)') @@ -73,7 +74,7 @@ fo.close() os.remove(test_support.TESTFN) - d = deque(range(10), maxlen=-1) + d = deque(range(10), maxlen=None) self.assertEqual(repr(d), 'deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])') try: fo = open(test_support.TESTFN, "wb") @@ -489,6 +490,22 @@ self.assertEqual(type(d), type(e)) self.assertEqual(list(d), list(e)) + d = Deque('abcde', maxlen=4) + + e = d.__copy__() + self.assertEqual(type(d), type(e)) + self.assertEqual(list(d), list(e)) + + e = Deque(d) + self.assertEqual(type(d), type(e)) + self.assertEqual(list(d), list(e)) + + s = pickle.dumps(d) + e = pickle.loads(s) + self.assertNotEqual(id(d), id(e)) + self.assertEqual(type(d), type(e)) + self.assertEqual(list(d), list(e)) + ## def test_pickle(self): ## d = Deque('abc') ## d.append(d) Modified: python/branches/ctypes-branch/Lib/test/test_httplib.py ============================================================================== --- python/branches/ctypes-branch/Lib/test/test_httplib.py (original) +++ python/branches/ctypes-branch/Lib/test/test_httplib.py Tue Oct 23 20:47:50 2007 @@ -81,13 +81,25 @@ resp = httplib.HTTPResponse(sock) resp.begin() self.assertEqual(resp.read(), 'Text') - resp.close() + self.assertTrue(resp.isclosed()) body = "HTTP/1.1 400.100 Not Ok\r\n\r\nText" sock = FakeSocket(body) resp = httplib.HTTPResponse(sock) self.assertRaises(httplib.BadStatusLine, resp.begin) + def test_partial_reads(self): + # if we have a lenght, the system knows when to close itself + # same behaviour than when we read the whole thing with read() + body = "HTTP/1.1 200 Ok\r\nContent-Length: 4\r\n\r\nText" + sock = FakeSocket(body) + resp = httplib.HTTPResponse(sock) + resp.begin() + self.assertEqual(resp.read(2), 'Te') + self.assertFalse(resp.isclosed()) + self.assertEqual(resp.read(2), 'xt') + self.assertTrue(resp.isclosed()) + def test_host_port(self): # Check invalid host_port @@ -133,7 +145,6 @@ resp.begin() if resp.read() != "": self.fail("Did not expect response from HEAD request") - resp.close() def test_send_file(self): expected = 'GET /foo HTTP/1.1\r\nHost: example.com\r\n' \ Modified: python/branches/ctypes-branch/Lib/test/test_itertools.py ============================================================================== --- python/branches/ctypes-branch/Lib/test/test_itertools.py (original) +++ python/branches/ctypes-branch/Lib/test/test_itertools.py Tue Oct 23 20:47:50 2007 @@ -67,7 +67,10 @@ c.next() self.assertEqual(c.next(), -8) for i in (-sys.maxint-5, -sys.maxint+5 ,-10, -1, 0, 10, sys.maxint-5, sys.maxint+5): - self.assertEqual(repr(count(i)), 'count(%r)' % i) + # Test repr (ignoring the L in longs) + r1 = repr(count(i)).replace('L', '') + r2 = 'count(%r)'.__mod__(i).replace('L', '') + self.assertEqual(r1, r2) def test_cycle(self): self.assertEqual(take(10, cycle('abc')), list('abcabcabca')) Modified: python/branches/ctypes-branch/Lib/test/test_list.py ============================================================================== --- python/branches/ctypes-branch/Lib/test/test_list.py (original) +++ python/branches/ctypes-branch/Lib/test/test_list.py Tue Oct 23 20:47:50 2007 @@ -1,4 +1,5 @@ import unittest +import sys from test import test_support, list_tests class ListTest(list_tests.CommonTest): @@ -18,6 +19,14 @@ self.assertEqual(len([0]), 1) self.assertEqual(len([0, 1, 2]), 3) + def test_overflow(self): + lst = [4, 5, 6, 7] + n = int((sys.maxint*2+2) // len(lst)) + def mul(a, b): return a * b + def imul(a, b): a *= b + self.assertRaises((MemoryError, OverflowError), mul, lst, n) + self.assertRaises((MemoryError, OverflowError), imul, lst, n) + def test_main(verbose=None): test_support.run_unittest(ListTest) Modified: python/branches/ctypes-branch/Lib/test/test_mmap.py ============================================================================== --- python/branches/ctypes-branch/Lib/test/test_mmap.py (original) +++ python/branches/ctypes-branch/Lib/test/test_mmap.py Tue Oct 23 20:47:50 2007 @@ -340,6 +340,50 @@ m[start:stop:step] = data self.assertEquals(m[:], "".join(L)) + def make_mmap_file (self, f, halfsize): + # Write 2 pages worth of data to the file + f.write ('\0' * halfsize) + f.write ('foo') + f.write ('\0' * (halfsize - 3)) + f.flush () + return mmap.mmap (f.fileno(), 0) + + def test_offset (self): + f = open (TESTFN, 'w+b') + + try: # unlink TESTFN no matter what + halfsize = mmap.ALLOCATIONGRANULARITY + m = self.make_mmap_file (f, halfsize) + m.close () + f.close () + + mapsize = halfsize * 2 + # Try invalid offset + f = open(TESTFN, "r+b") + for offset in [-2, -1, None]: + try: + m = mmap.mmap(f.fileno(), mapsize, offset=offset) + self.assertEqual(0, 1) + except (ValueError, TypeError, OverflowError): + pass + else: + self.assertEqual(0, 0) + f.close() + + # Try valid offset, hopefully 8192 works on all OSes + f = open(TESTFN, "r+b") + m = mmap.mmap(f.fileno(), mapsize - halfsize, offset=halfsize) + self.assertEqual(m[0:3], 'foo') + f.close() + m.close() + + finally: + f.close() + try: + os.unlink(TESTFN) + except OSError: + pass + def test_main(): run_unittest(MmapTests) Modified: python/branches/ctypes-branch/Lib/test/test_support.py ============================================================================== --- python/branches/ctypes-branch/Lib/test/test_support.py (original) +++ python/branches/ctypes-branch/Lib/test/test_support.py Tue Oct 23 20:47:50 2007 @@ -100,10 +100,19 @@ tests and we don't try multiple ports, the test can fails. This makes the test more robust.""" - # some random ports that hopefully no one is listening on. - for port in [preferred_port, 9907, 10243, 32999]: + # Find some random ports that hopefully no one is listening on. + # Ideally each test would clean up after itself and not continue listening + # on any ports. However, this isn't the case. The last port (0) is + # a stop-gap that asks the O/S to assign a port. Whenever the warning + # message below is printed, the test that is listening on the port should + # be fixed to close the socket at the end of the test. + # Another reason why we can't use a port is another process (possibly + # another instance of the test suite) is using the same port. + for port in [preferred_port, 9907, 10243, 32999, 0]: try: sock.bind((host, port)) + if port == 0: + port = sock.getsockname()[1] return port except socket.error, (err, msg): if err != errno.EADDRINUSE: @@ -535,8 +544,7 @@ elif len(result.failures) == 1 and not result.errors: err = result.failures[0][1] else: - msg = "errors occurred; run in verbose mode for details" - raise TestFailed(msg) + err = "errors occurred; run in verbose mode for details" raise TestFailed(err) Modified: python/branches/ctypes-branch/Lib/test/test_zlib.py ============================================================================== --- python/branches/ctypes-branch/Lib/test/test_zlib.py (original) +++ python/branches/ctypes-branch/Lib/test/test_zlib.py Tue Oct 23 20:47:50 2007 @@ -42,14 +42,18 @@ class ExceptionTestCase(unittest.TestCase): # make sure we generate some expected errors - def test_bigbits(self): - # specifying total bits too large causes an error - self.assertRaises(zlib.error, - zlib.compress, 'ERROR', zlib.MAX_WBITS + 1) + def test_badlevel(self): + # specifying compression level out of range causes an error + # (but -1 is Z_DEFAULT_COMPRESSION and apparently the zlib + # accepts 0 too) + self.assertRaises(zlib.error, zlib.compress, 'ERROR', 10) def test_badcompressobj(self): # verify failure on building compress object with bad params self.assertRaises(ValueError, zlib.compressobj, 1, zlib.DEFLATED, 0) + # specifying total bits too large causes an error + self.assertRaises(ValueError, + zlib.compressobj, 1, zlib.DEFLATED, zlib.MAX_WBITS + 1) def test_baddecompressobj(self): # verify failure on building decompress object with bad params Modified: python/branches/ctypes-branch/Makefile.pre.in ============================================================================== --- python/branches/ctypes-branch/Makefile.pre.in (original) +++ python/branches/ctypes-branch/Makefile.pre.in Tue Oct 23 20:47:50 2007 @@ -475,7 +475,7 @@ $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) - -@ mkdir Include + -@$(INSTALL) -d Include -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) $(PGEN): $(PGENOBJS) Modified: python/branches/ctypes-branch/Misc/NEWS ============================================================================== --- python/branches/ctypes-branch/Misc/NEWS (original) +++ python/branches/ctypes-branch/Misc/NEWS Tue Oct 23 20:47:50 2007 @@ -272,6 +272,12 @@ Library ------- +- ctypes will now work correctly on 32-bit systems when Python is + configured with --with-system-ffi. + +- Patch #1203: ctypes now does work on OS X when Python is built with + --disable-toolbox-glue + - collections.deque() now supports a "maxlen" argument. - itertools.count() is no longer bounded to LONG_MAX. Formerly, it raised @@ -802,6 +808,13 @@ - Bug #1721309: prevent bsddb module from freeing random memory. +- Bug #1233: fix bsddb.dbshelve.DBShelf append method to work as + intended for RECNO databases. + +- Fix bsddb.dbtables: Don't randomly corrupt newly inserted rows by + picking a rowid string with null bytes in it. Such rows could not + later be deleted, modified or individually selected. + - Bug #1686475: Support stat'ing open files on Windows again. - Patch #1185447: binascii.b2a_qp() now correctly quotes binary characters @@ -1060,6 +1073,8 @@ - Conditionalize definition of _CRT_SECURE_NO_DEPRECATE and _CRT_NONSTDC_NO_DEPRECATE. +- Bug #1216: Restore support for Visual Studio 2002. + Mac --- Modified: python/branches/ctypes-branch/Misc/developers.txt ============================================================================== --- python/branches/ctypes-branch/Misc/developers.txt (original) +++ python/branches/ctypes-branch/Misc/developers.txt Tue Oct 23 20:47:50 2007 @@ -17,6 +17,9 @@ Permissions History ------------------- +- Chris Monson was given SVN access on 20 October 2007 by NCN, + for his work on editing PEPs. + - Bill Janssen was given SVN access on 28 August 2007 by NCN, for his work on the SSL module and other things related to (SSL) sockets. Modified: python/branches/ctypes-branch/Modules/_bsddb.c ============================================================================== --- python/branches/ctypes-branch/Modules/_bsddb.c (original) +++ python/branches/ctypes-branch/Modules/_bsddb.c Tue Oct 23 20:47:50 2007 @@ -4765,7 +4765,7 @@ { int err; DBT key; - PyObject *retval; + PyObject *retval = NULL; key.flags = DB_DBT_MALLOC; CHECK_SEQUENCE_NOT_CLOSED(self) MYDB_BEGIN_ALLOW_THREADS @@ -5903,7 +5903,9 @@ bsddb_api.dbenv_type = &DBEnv_Type; bsddb_api.dbtxn_type = &DBTxn_Type; bsddb_api.dblock_type = &DBLock_Type; +#if (DBVER >= 43) bsddb_api.dbsequence_type = &DBSequence_Type; +#endif bsddb_api.makeDBError = makeDBError; py_api = PyCObject_FromVoidPtr((void*)&bsddb_api, NULL); Modified: python/branches/ctypes-branch/Modules/_collectionsmodule.c ============================================================================== --- python/branches/ctypes-branch/Modules/_collectionsmodule.c (original) +++ python/branches/ctypes-branch/Modules/_collectionsmodule.c Tue Oct 23 20:47:50 2007 @@ -598,8 +598,11 @@ static PyObject * deque_copy(PyObject *deque) { - return PyObject_CallFunction((PyObject *)(Py_Type(deque)), "Oi", - deque, ((dequeobject *)deque)->maxlen, NULL); + if (((dequeobject *)deque)->maxlen == -1) + return PyObject_CallFunction((PyObject *)(Py_Type(deque)), "O", deque, NULL); + else + return PyObject_CallFunction((PyObject *)(Py_Type(deque)), "Oi", + deque, ((dequeobject *)deque)->maxlen, NULL); } PyDoc_STRVAR(copy_doc, "Return a shallow copy of a deque."); @@ -617,10 +620,17 @@ Py_XDECREF(dict); return NULL; } - if (dict == NULL) - result = Py_BuildValue("O(Oi)", Py_Type(deque), aslist, deque->maxlen); - else - result = Py_BuildValue("O(Oi)O", Py_Type(deque), aslist, deque->maxlen, dict); + if (dict == NULL) { + if (deque->maxlen == -1) + result = Py_BuildValue("O(O)", Py_Type(deque), aslist); + else + result = Py_BuildValue("O(Oi)", Py_Type(deque), aslist, deque->maxlen); + } else { + if (deque->maxlen == -1) + result = Py_BuildValue("O(OO)O", Py_Type(deque), aslist, Py_None, dict); + else + result = Py_BuildValue("O(Oi)O", Py_Type(deque), aslist, deque->maxlen, dict); + } Py_XDECREF(dict); Py_DECREF(aslist); return result; @@ -797,14 +807,20 @@ deque_init(dequeobject *deque, PyObject *args, PyObject *kwdargs) { PyObject *iterable = NULL; + PyObject *maxlenobj = NULL; int maxlen = -1; char *kwlist[] = {"iterable", "maxlen", 0}; - if (!PyArg_ParseTupleAndKeywords(args, kwdargs, "|Oi:deque", kwlist, &iterable, &maxlen)) - return -1; - if (maxlen < -1) { - PyErr_SetString(PyExc_ValueError, "maxlen must be -1 or greater"); + if (!PyArg_ParseTupleAndKeywords(args, kwdargs, "|OO:deque", kwlist, &iterable, &maxlenobj)) return -1; + if (maxlenobj != NULL && maxlenobj != Py_None) { + maxlen = PyInt_AsLong(maxlenobj); + if (maxlen == -1 && PyErr_Occurred()) + return -1; + if (maxlen < 0) { + PyErr_SetString(PyExc_ValueError, "maxlen must be non-negative"); + return -1; + } } deque->maxlen = maxlen; if (iterable != NULL) { Modified: python/branches/ctypes-branch/Modules/_ctypes/cfield.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/cfield.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/cfield.c Tue Oct 23 20:47:50 2007 @@ -1616,17 +1616,21 @@ /* XXX Hm, sizeof(int) == sizeof(long) doesn't hold on every platform */ /* As soon as we can get rid of the type codes, this is no longer a problem */ #if SIZEOF_LONG == 4 - { 'l', l_set, l_get, &ffi_type_sint, l_set_sw, l_get_sw}, - { 'L', L_set, L_get, &ffi_type_uint, L_set_sw, L_get_sw}, + { 'l', l_set, l_get, &ffi_type_sint32, l_set_sw, l_get_sw}, + { 'L', L_set, L_get, &ffi_type_uint32, L_set_sw, L_get_sw}, #elif SIZEOF_LONG == 8 - { 'l', l_set, l_get, &ffi_type_slong, l_set_sw, l_get_sw}, - { 'L', L_set, L_get, &ffi_type_ulong, L_set_sw, L_get_sw}, + { 'l', l_set, l_get, &ffi_type_sint64, l_set_sw, l_get_sw}, + { 'L', L_set, L_get, &ffi_type_uint64, L_set_sw, L_get_sw}, #else # error #endif #ifdef HAVE_LONG_LONG - { 'q', q_set, q_get, &ffi_type_slong, q_set_sw, q_get_sw}, - { 'Q', Q_set, Q_get, &ffi_type_ulong, Q_set_sw, Q_get_sw}, +#if SIZEOF_LONG_LONG == 8 + { 'q', q_set, q_get, &ffi_type_sint64, q_set_sw, q_get_sw}, + { 'Q', Q_set, Q_get, &ffi_type_uint64, Q_set_sw, Q_get_sw}, +#else +# error +#endif #endif { 'P', P_set, P_get, &ffi_type_pointer}, { 'z', z_set, z_get, &ffi_type_pointer}, Modified: python/branches/ctypes-branch/Modules/_ctypes/libffi/src/alpha/ffi.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/libffi/src/alpha/ffi.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/libffi/src/alpha/ffi.c Tue Oct 23 20:47:50 2007 @@ -28,7 +28,7 @@ #include -extern void ffi_call_osf(void *, unsigned long, unsigned, void *, void (*)()); +extern void ffi_call_osf(void *, unsigned long, unsigned, void *, void (*)(void)); extern void ffi_closure_osf(void); @@ -58,7 +58,7 @@ } void -ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue) +ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { unsigned long *stack, *argp; long i, avn; Modified: python/branches/ctypes-branch/Modules/_ctypes/libffi/src/ia64/ffi.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/libffi/src/ia64/ffi.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/libffi/src/ia64/ffi.c Tue Oct 23 20:47:50 2007 @@ -259,10 +259,10 @@ return FFI_OK; } -extern int ffi_call_unix (struct ia64_args *, PTR64, void (*)(), UINT64); +extern int ffi_call_unix (struct ia64_args *, PTR64, void (*)(void), UINT64); void -ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue) +ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { struct ia64_args *stack; long i, avn, gpcount, fpcount; @@ -387,7 +387,7 @@ gp pointer to the closure. This allows the function entry code to both retrieve the user data, and to restire the correct gp pointer. */ -extern void ffi_closure_unix (); +extern void ffi_closure_unix (void); ffi_status ffi_prep_closure (ffi_closure* closure, Modified: python/branches/ctypes-branch/Modules/_ctypes/libffi/src/mips/ffi.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/libffi/src/mips/ffi.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/libffi/src/mips/ffi.c Tue Oct 23 20:47:50 2007 @@ -445,14 +445,14 @@ /* Low level routine for calling O32 functions */ extern int ffi_call_O32(void (*)(char *, extended_cif *, int, int), extended_cif *, unsigned, - unsigned, unsigned *, void (*)()); + unsigned, unsigned *, void (*)(void)); /* Low level routine for calling N32 functions */ extern int ffi_call_N32(void (*)(char *, extended_cif *, int, int), extended_cif *, unsigned, - unsigned, unsigned *, void (*)()); + unsigned, unsigned *, void (*)(void)); -void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue) +void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { extended_cif ecif; Modified: python/branches/ctypes-branch/Modules/_ctypes/libffi/src/pa/ffi.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/libffi/src/pa/ffi.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/libffi/src/pa/ffi.c Tue Oct 23 20:47:50 2007 @@ -345,12 +345,12 @@ /*@out@*/ extended_cif *, unsigned, unsigned, /*@out@*/ unsigned *, - void (*fn)()); + void (*fn)(void)); /*@=declundef@*/ /*@=exportheader@*/ void ffi_call(/*@dependent@*/ ffi_cif *cif, - void (*fn)(), + void (*fn)(void), /*@out@*/ void *rvalue, /*@dependent@*/ void **avalue) { Modified: python/branches/ctypes-branch/Modules/_ctypes/libffi/src/powerpc/ffi.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/libffi/src/powerpc/ffi.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/libffi/src/powerpc/ffi.c Tue Oct 23 20:47:50 2007 @@ -756,17 +756,17 @@ extern void ffi_call_SYSV(/*@out@*/ extended_cif *, unsigned, unsigned, /*@out@*/ unsigned *, - void (*fn)()); + void (*fn)(void)); extern void FFI_HIDDEN ffi_call_LINUX64(/*@out@*/ extended_cif *, unsigned long, unsigned long, /*@out@*/ unsigned long *, - void (*fn)()); + void (*fn)(void)); /*@=declundef@*/ /*@=exportheader@*/ void ffi_call(/*@dependent@*/ ffi_cif *cif, - void (*fn)(), + void (*fn)(void), /*@out@*/ void *rvalue, /*@dependent@*/ void **avalue) { Modified: python/branches/ctypes-branch/Modules/_ctypes/libffi/src/s390/ffi.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/libffi/src/s390/ffi.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/libffi/src/s390/ffi.c Tue Oct 23 20:47:50 2007 @@ -88,7 +88,7 @@ void (*)(unsigned char *, extended_cif *), unsigned, void *, - void (*fn)()); + void (*fn)(void)); extern void ffi_closure_SYSV(void); @@ -480,7 +480,7 @@ void ffi_call(ffi_cif *cif, - void (*fn)(), + void (*fn)(void), void *rvalue, void **avalue) { Modified: python/branches/ctypes-branch/Modules/_ctypes/libffi/src/sparc/ffi.c ============================================================================== --- python/branches/ctypes-branch/Modules/_ctypes/libffi/src/sparc/ffi.c (original) +++ python/branches/ctypes-branch/Modules/_ctypes/libffi/src/sparc/ffi.c Tue Oct 23 20:47:50 2007 @@ -358,13 +358,13 @@ #ifdef SPARC64 extern int ffi_call_v9(void *, extended_cif *, unsigned, - unsigned, unsigned *, void (*fn)()); + unsigned, unsigned *, void (*fn)(void)); #else extern int ffi_call_v8(void *, extended_cif *, unsigned, - unsigned, unsigned *, void (*fn)()); + unsigned, unsigned *, void (*fn)(void)); #endif -void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue) +void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { extended_cif ecif; void *rval = rvalue; Modified: python/branches/ctypes-branch/Modules/main.c ============================================================================== --- python/branches/ctypes-branch/Modules/main.c (original) +++ python/branches/ctypes-branch/Modules/main.c Tue Oct 23 20:47:50 2007 @@ -416,6 +416,7 @@ if (fstat(fileno(fp), &sb) == 0 && S_ISDIR(sb.st_mode)) { fprintf(stderr, "%s: '%s' is a directory, cannot continue\n", argv[0], filename); + fclose(fp); return 1; } } Modified: python/branches/ctypes-branch/Modules/mmapmodule.c ============================================================================== --- python/branches/ctypes-branch/Modules/mmapmodule.c (original) +++ python/branches/ctypes-branch/Modules/mmapmodule.c Tue Oct 23 20:47:50 2007 @@ -3,6 +3,9 @@ / Hacked for Unix by AMK / $Id$ + / Modified to support mmap with offset - to map a 'window' of a file + / Author: Yotam Medini yotamm at mellanox.co.il + / / mmapmodule.cpp -- map a view of a file into memory / / todo: need permission flags, perhaps a 'chsize' analog @@ -31,6 +34,16 @@ GetSystemInfo(&si); return si.dwPageSize; } + +static int +my_getallocationgranularity (void) +{ + + SYSTEM_INFO si; + GetSystemInfo(&si); + return si.dwAllocationGranularity; +} + #endif #ifdef UNIX @@ -43,6 +56,8 @@ { return sysconf(_SC_PAGESIZE); } + +#define my_getallocationgranularity my_getpagesize #else #define my_getpagesize getpagesize #endif @@ -74,7 +89,8 @@ PyObject_HEAD char * data; size_t size; - size_t pos; + size_t pos; /* relative to offset */ + size_t offset; #ifdef MS_WINDOWS HANDLE map_handle; @@ -387,18 +403,22 @@ #ifdef MS_WINDOWS } else { DWORD dwErrCode = 0; - DWORD newSizeLow, newSizeHigh; + DWORD off_hi, off_lo, newSizeLow, newSizeHigh; /* First, unmap the file view */ UnmapViewOfFile(self->data); /* Close the mapping object */ CloseHandle(self->map_handle); /* Move to the desired EOF position */ #if SIZEOF_SIZE_T > 4 - newSizeHigh = (DWORD)(new_size >> 32); - newSizeLow = (DWORD)(new_size & 0xFFFFFFFF); + newSizeHigh = (DWORD)((self->offset + new_size) >> 32); + newSizeLow = (DWORD)((self->offset + new_size) & 0xFFFFFFFF); + off_hi = (DWORD)(self->offset >> 32); + off_lo = (DWORD)(self->offset & 0xFFFFFFFF); #else newSizeHigh = 0; newSizeLow = (DWORD)new_size; + off_hi = 0; + off_lo = (DWORD)self->offset; #endif SetFilePointer(self->file_handle, newSizeLow, &newSizeHigh, FILE_BEGIN); @@ -409,15 +429,15 @@ self->file_handle, NULL, PAGE_READWRITE, - newSizeHigh, - newSizeLow, + 0, + 0, self->tagname); if (self->map_handle != NULL) { self->data = (char *) MapViewOfFile(self->map_handle, FILE_MAP_WRITE, - 0, - 0, - 0); + off_hi, + off_lo, + new_size); if (self->data != NULL) { self->size = new_size; Py_INCREF(Py_None); @@ -962,15 +982,18 @@ Returns -1 on error, with an appropriate Python exception raised. On success, the map size is returned. */ static Py_ssize_t -_GetMapSize(PyObject *o) +_GetMapSize(PyObject *o, const char* param) { + if (o == NULL) + return 0; if (PyIndex_Check(o)) { Py_ssize_t i = PyNumber_AsSsize_t(o, PyExc_OverflowError); if (i==-1 && PyErr_Occurred()) return -1; if (i < 0) { - PyErr_SetString(PyExc_OverflowError, - "memory mapped size must be positive"); + PyErr_Format(PyExc_OverflowError, + "memory mapped %s must be positive", + param); return -1; } return i; @@ -988,22 +1011,25 @@ struct stat st; #endif mmap_object *m_obj; - PyObject *map_size_obj = NULL; - Py_ssize_t map_size; + PyObject *map_size_obj = NULL, *offset_obj = NULL; + Py_ssize_t map_size, offset; int fd, flags = MAP_SHARED, prot = PROT_WRITE | PROT_READ; int devzero = -1; int access = (int)ACCESS_DEFAULT; static char *keywords[] = {"fileno", "length", "flags", "prot", - "access", NULL}; + "access", "offset", NULL}; - if (!PyArg_ParseTupleAndKeywords(args, kwdict, "iO|iii", keywords, + if (!PyArg_ParseTupleAndKeywords(args, kwdict, "iO|iiiO", keywords, &fd, &map_size_obj, &flags, &prot, - &access)) + &access, &offset_obj)) return NULL; - map_size = _GetMapSize(map_size_obj); + map_size = _GetMapSize(map_size_obj, "size"); if (map_size < 0) return NULL; + offset = _GetMapSize(offset_obj, "offset"); + if (offset < 0) + return NULL; if ((access != (int)ACCESS_DEFAULT) && ((flags != MAP_SHARED) || (prot != (PROT_WRITE | PROT_READ)))) @@ -1038,7 +1064,7 @@ if (fstat(fd, &st) == 0 && S_ISREG(st.st_mode)) { if (map_size == 0) { map_size = st.st_size; - } else if ((size_t)map_size > st.st_size) { + } else if ((size_t)offset + (size_t)map_size > st.st_size) { PyErr_SetString(PyExc_ValueError, "mmap length is greater than file size"); return NULL; @@ -1050,6 +1076,7 @@ m_obj->data = NULL; m_obj->size = (size_t) map_size; m_obj->pos = (size_t) 0; + m_obj->offset = offset; if (fd == -1) { m_obj->fd = -1; /* Assume the caller wants to map anonymous memory. @@ -1076,10 +1103,10 @@ return NULL; } } - + m_obj->data = mmap(NULL, map_size, prot, flags, - fd, 0); + fd, offset); if (devzero != -1) { close(devzero); @@ -1101,10 +1128,12 @@ new_mmap_object(PyObject *self, PyObject *args, PyObject *kwdict) { mmap_object *m_obj; - PyObject *map_size_obj = NULL; - Py_ssize_t map_size; - DWORD size_hi; /* upper 32 bits of m_obj->size */ - DWORD size_lo; /* lower 32 bits of m_obj->size */ + PyObject *map_size_obj = NULL, *offset_obj = NULL; + Py_ssize_t map_size, offset; + DWORD off_hi; /* upper 32 bits of offset */ + DWORD off_lo; /* lower 32 bits of offset */ + DWORD size_hi; /* upper 32 bits of size */ + DWORD size_lo; /* lower 32 bits of size */ char *tagname = ""; DWORD dwErr = 0; int fileno; @@ -1113,11 +1142,11 @@ DWORD flProtect, dwDesiredAccess; static char *keywords[] = { "fileno", "length", "tagname", - "access", NULL }; + "access", "offset", NULL }; - if (!PyArg_ParseTupleAndKeywords(args, kwdict, "iO|zi", keywords, + if (!PyArg_ParseTupleAndKeywords(args, kwdict, "iO|ziO", keywords, &fileno, &map_size_obj, - &tagname, &access)) { + &tagname, &access, &offset_obj)) { return NULL; } @@ -1139,9 +1168,12 @@ "mmap invalid access parameter."); } - map_size = _GetMapSize(map_size_obj); + map_size = _GetMapSize(map_size_obj, "size"); if (map_size < 0) return NULL; + offset = _GetMapSize(offset_obj, "offset"); + if (offset < 0) + return NULL; /* assume -1 and 0 both mean invalid filedescriptor to 'anonymously' map memory. @@ -1170,6 +1202,7 @@ m_obj->file_handle = INVALID_HANDLE_VALUE; m_obj->map_handle = INVALID_HANDLE_VALUE; m_obj->tagname = NULL; + m_obj->offset = offset; if (fh) { /* It is necessary to duplicate the handle, so the @@ -1238,12 +1271,18 @@ * right by 32, so we need different code. */ #if SIZEOF_SIZE_T > 4 - size_hi = (DWORD)(m_obj->size >> 32); - size_lo = (DWORD)(m_obj->size & 0xFFFFFFFF); + size_hi = (DWORD)((offset + m_obj->size) >> 32); + size_lo = (DWORD)((offset + m_obj->size) & 0xFFFFFFFF); + off_hi = (DWORD)(offset >> 32); + off_lo = (DWORD)(offset & 0xFFFFFFFF); #else size_hi = 0; - size_lo = (DWORD)m_obj->size; + size_lo = (DWORD)(offset + m_obj->size); + off_hi = 0; + off_lo = (DWORD)offset; #endif + /* For files, it would be sufficient to pass 0 as size. + For anonymous maps, we have to pass the size explicitly. */ m_obj->map_handle = CreateFileMapping(m_obj->file_handle, NULL, flProtect, @@ -1253,8 +1292,8 @@ if (m_obj->map_handle != NULL) { m_obj->data = (char *) MapViewOfFile(m_obj->map_handle, dwDesiredAccess, - 0, - 0, + off_hi, + off_lo, 0); if (m_obj->data != NULL) return (PyObject *)m_obj; @@ -1329,6 +1368,8 @@ setint(dict, "PAGESIZE", (long)my_getpagesize()); + setint(dict, "ALLOCATIONGRANULARITY", (long)my_getallocationgranularity()); + setint(dict, "ACCESS_READ", ACCESS_READ); setint(dict, "ACCESS_WRITE", ACCESS_WRITE); setint(dict, "ACCESS_COPY", ACCESS_COPY); Modified: python/branches/ctypes-branch/Objects/dictobject.c ============================================================================== --- python/branches/ctypes-branch/Objects/dictobject.c (original) +++ python/branches/ctypes-branch/Objects/dictobject.c Tue Oct 23 20:47:50 2007 @@ -9,8 +9,6 @@ #include "Python.h" -typedef PyDictEntry dictentry; -typedef PyDictObject dictobject; /* Set a key error with the specified argument, wrapping it in a * tuple automatically so that tuple keys are not unpacked as the @@ -121,7 +119,7 @@ the same number of operations but without as much potential parallelism (e.g., computing 5*j can go on at the same time as computing 1+perturb in the above, and then shifting perturb can be done while the table index is being -masked); and the dictobject struct required a member to hold the table's +masked); and the PyDictObject struct required a member to hold the table's polynomial. In Tim's experiments the current scheme ran faster, produced equally good collision statistics, needed less code & used less memory. @@ -137,7 +135,7 @@ */ /* Object used as dummy key to fill deleted entries */ -static PyObject *dummy = NULL; /* Initialized by first call to newdictobject() */ +static PyObject *dummy = NULL; /* Initialized by first call to newPyDictObject() */ #ifdef Py_REF_DEBUG PyObject * @@ -148,8 +146,8 @@ #endif /* forward declarations */ -static dictentry * -lookdict_string(dictobject *mp, PyObject *key, long hash); +static PyDictEntry * +lookdict_string(PyDictObject *mp, PyObject *key, long hash); #ifdef SHOW_CONVERSION_COUNTS static long created = 0L; @@ -192,7 +190,7 @@ PyObject * PyDict_New(void) { - register dictobject *mp; + register PyDictObject *mp; if (dummy == NULL) { /* Auto-initialize dummy */ dummy = PyString_FromString(""); if (dummy == NULL) @@ -213,7 +211,7 @@ assert (mp->ma_table == mp->ma_smalltable); assert (mp->ma_mask == PyDict_MINSIZE - 1); } else { - mp = PyObject_GC_New(dictobject, &PyDict_Type); + mp = PyObject_GC_New(PyDictObject, &PyDict_Type); if (mp == NULL) return NULL; EMPTY_TO_MINSIZE(mp); @@ -245,20 +243,20 @@ comparison raises an exception (this was new in Python 2.5). lookdict_string() below is specialized to string keys, comparison of which can never raise an exception; that function can never return NULL. For both, when -the key isn't found a dictentry* is returned for which the me_value field is +the key isn't found a PyDictEntry* is returned for which the me_value field is NULL; this is the slot in the dict at which the key would have been found, and the caller can (if it wishes) add the pair to the returned -dictentry*. +PyDictEntry*. */ -static dictentry * -lookdict(dictobject *mp, PyObject *key, register long hash) +static PyDictEntry * +lookdict(PyDictObject *mp, PyObject *key, register long hash) { register size_t i; register size_t perturb; - register dictentry *freeslot; + register PyDictEntry *freeslot; register size_t mask = (size_t)mp->ma_mask; - dictentry *ep0 = mp->ma_table; - register dictentry *ep; + PyDictEntry *ep0 = mp->ma_table; + register PyDictEntry *ep; register int cmp; PyObject *startkey; @@ -334,15 +332,15 @@ * * This is valuable because dicts with only string keys are very common. */ -static dictentry * -lookdict_string(dictobject *mp, PyObject *key, register long hash) +static PyDictEntry * +lookdict_string(PyDictObject *mp, PyObject *key, register long hash) { register size_t i; register size_t perturb; - register dictentry *freeslot; + register PyDictEntry *freeslot; register size_t mask = (size_t)mp->ma_mask; - dictentry *ep0 = mp->ma_table; - register dictentry *ep; + PyDictEntry *ep0 = mp->ma_table; + register PyDictEntry *ep; /* Make sure this function doesn't have to handle non-string keys, including subclasses of str; e.g., one reason to subclass @@ -393,10 +391,10 @@ Returns -1 if an error occurred, or 0 on success. */ static int -insertdict(register dictobject *mp, PyObject *key, long hash, PyObject *value) +insertdict(register PyDictObject *mp, PyObject *key, long hash, PyObject *value) { PyObject *old_value; - register dictentry *ep; + register PyDictEntry *ep; typedef PyDictEntry *(*lookupfunc)(PyDictObject *, PyObject *, long); assert(mp->ma_lookup != NULL); @@ -436,14 +434,14 @@ is responsible for incref'ing `key` and `value`. */ static void -insertdict_clean(register dictobject *mp, PyObject *key, long hash, +insertdict_clean(register PyDictObject *mp, PyObject *key, long hash, PyObject *value) { register size_t i; register size_t perturb; register size_t mask = (size_t)mp->ma_mask; - dictentry *ep0 = mp->ma_table; - register dictentry *ep; + PyDictEntry *ep0 = mp->ma_table; + register PyDictEntry *ep; i = hash & mask; ep = &ep0[i]; @@ -465,13 +463,13 @@ actually be smaller than the old one. */ static int -dictresize(dictobject *mp, Py_ssize_t minused) +dictresize(PyDictObject *mp, Py_ssize_t minused) { Py_ssize_t newsize; - dictentry *oldtable, *newtable, *ep; + PyDictEntry *oldtable, *newtable, *ep; Py_ssize_t i; int is_oldtable_malloced; - dictentry small_copy[PyDict_MINSIZE]; + PyDictEntry small_copy[PyDict_MINSIZE]; assert(minused >= 0); @@ -510,7 +508,7 @@ } } else { - newtable = PyMem_NEW(dictentry, newsize); + newtable = PyMem_NEW(PyDictEntry, newsize); if (newtable == NULL) { PyErr_NoMemory(); return -1; @@ -521,7 +519,7 @@ assert(newtable != oldtable); mp->ma_table = newtable; mp->ma_mask = newsize - 1; - memset(newtable, 0, sizeof(dictentry) * newsize); + memset(newtable, 0, sizeof(PyDictEntry) * newsize); mp->ma_used = 0; i = mp->ma_fill; mp->ma_fill = 0; @@ -561,8 +559,8 @@ PyDict_GetItem(PyObject *op, PyObject *key) { long hash; - dictobject *mp = (dictobject *)op; - dictentry *ep; + PyDictObject *mp = (PyDictObject *)op; + PyDictEntry *ep; PyThreadState *tstate; if (!PyDict_Check(op)) return NULL; @@ -609,7 +607,7 @@ int PyDict_SetItem(register PyObject *op, PyObject *key, PyObject *value) { - register dictobject *mp; + register PyDictObject *mp; register long hash; register Py_ssize_t n_used; @@ -619,7 +617,7 @@ } assert(key); assert(value); - mp = (dictobject *)op; + mp = (PyDictObject *)op; if (PyString_CheckExact(key)) { hash = ((PyStringObject *)key)->ob_shash; if (hash == -1) @@ -658,9 +656,9 @@ int PyDict_DelItem(PyObject *op, PyObject *key) { - register dictobject *mp; + register PyDictObject *mp; register long hash; - register dictentry *ep; + register PyDictEntry *ep; PyObject *old_value, *old_key; if (!PyDict_Check(op)) { @@ -674,7 +672,7 @@ if (hash == -1) return -1; } - mp = (dictobject *)op; + mp = (PyDictObject *)op; ep = (mp->ma_lookup)(mp, key, hash); if (ep == NULL) return -1; @@ -696,18 +694,18 @@ void PyDict_Clear(PyObject *op) { - dictobject *mp; - dictentry *ep, *table; + PyDictObject *mp; + PyDictEntry *ep, *table; int table_is_malloced; Py_ssize_t fill; - dictentry small_copy[PyDict_MINSIZE]; + PyDictEntry small_copy[PyDict_MINSIZE]; #ifdef Py_DEBUG Py_ssize_t i, n; #endif if (!PyDict_Check(op)) return; - mp = (dictobject *)op; + mp = (PyDictObject *)op; #ifdef Py_DEBUG n = mp->ma_mask + 1; i = 0; @@ -782,15 +780,15 @@ { register Py_ssize_t i; register Py_ssize_t mask; - register dictentry *ep; + register PyDictEntry *ep; if (!PyDict_Check(op)) return 0; i = *ppos; if (i < 0) return 0; - ep = ((dictobject *)op)->ma_table; - mask = ((dictobject *)op)->ma_mask; + ep = ((PyDictObject *)op)->ma_table; + mask = ((PyDictObject *)op)->ma_mask; while (i <= mask && ep[i].me_value == NULL) i++; *ppos = i+1; @@ -809,15 +807,15 @@ { register Py_ssize_t i; register Py_ssize_t mask; - register dictentry *ep; + register PyDictEntry *ep; if (!PyDict_Check(op)) return 0; i = *ppos; if (i < 0) return 0; - ep = ((dictobject *)op)->ma_table; - mask = ((dictobject *)op)->ma_mask; + ep = ((PyDictObject *)op)->ma_table; + mask = ((PyDictObject *)op)->ma_mask; while (i <= mask && ep[i].me_value == NULL) i++; *ppos = i+1; @@ -834,9 +832,9 @@ /* Methods */ static void -dict_dealloc(register dictobject *mp) +dict_dealloc(register PyDictObject *mp) { - register dictentry *ep; + register PyDictEntry *ep; Py_ssize_t fill = mp->ma_fill; PyObject_GC_UnTrack(mp); Py_TRASHCAN_SAFE_BEGIN(mp) @@ -857,7 +855,7 @@ } static int -dict_print(register dictobject *mp, register FILE *fp, register int flags) +dict_print(register PyDictObject *mp, register FILE *fp, register int flags) { register Py_ssize_t i; register Py_ssize_t any; @@ -878,7 +876,7 @@ Py_END_ALLOW_THREADS any = 0; for (i = 0; i <= mp->ma_mask; i++) { - dictentry *ep = mp->ma_table + i; + PyDictEntry *ep = mp->ma_table + i; PyObject *pvalue = ep->me_value; if (pvalue != NULL) { /* Prevent PyObject_Repr from deleting value during @@ -913,7 +911,7 @@ } static PyObject * -dict_repr(dictobject *mp) +dict_repr(PyDictObject *mp) { Py_ssize_t i; PyObject *s, *temp, *colon = NULL; @@ -992,17 +990,17 @@ } static Py_ssize_t -dict_length(dictobject *mp) +dict_length(PyDictObject *mp) { return mp->ma_used; } static PyObject * -dict_subscript(dictobject *mp, register PyObject *key) +dict_subscript(PyDictObject *mp, register PyObject *key) { PyObject *v; long hash; - dictentry *ep; + PyDictEntry *ep; assert(mp->ma_table != NULL); if (!PyString_CheckExact(key) || (hash = ((PyStringObject *) key)->ob_shash) == -1) { @@ -1036,7 +1034,7 @@ } static int -dict_ass_sub(dictobject *mp, PyObject *v, PyObject *w) +dict_ass_sub(PyDictObject *mp, PyObject *v, PyObject *w) { if (w == NULL) return PyDict_DelItem((PyObject *)mp, v); @@ -1051,11 +1049,11 @@ }; static PyObject * -dict_keys(register dictobject *mp) +dict_keys(register PyDictObject *mp) { register PyObject *v; register Py_ssize_t i, j; - dictentry *ep; + PyDictEntry *ep; Py_ssize_t mask, n; again: @@ -1085,11 +1083,11 @@ } static PyObject * -dict_values(register dictobject *mp) +dict_values(register PyDictObject *mp) { register PyObject *v; register Py_ssize_t i, j; - dictentry *ep; + PyDictEntry *ep; Py_ssize_t mask, n; again: @@ -1119,13 +1117,13 @@ } static PyObject * -dict_items(register dictobject *mp) +dict_items(register PyDictObject *mp) { register PyObject *v; register Py_ssize_t i, j, n; Py_ssize_t mask; PyObject *item, *key, *value; - dictentry *ep; + PyDictEntry *ep; /* Preallocate the list of tuples, to avoid allocations during * the loop over the items, which could trigger GC, which @@ -1187,7 +1185,7 @@ return NULL; if (PyDict_CheckExact(d) && PyAnySet_CheckExact(seq)) { - dictobject *mp = (dictobject *)d; + PyDictObject *mp = (PyDictObject *)d; Py_ssize_t pos = 0; PyObject *key; long hash; @@ -1351,7 +1349,7 @@ { register PyDictObject *mp, *other; register Py_ssize_t i; - dictentry *entry; + PyDictEntry *entry; /* We accept for the argument either a concrete dictionary object, * or an abstract "mapping" object. For the former, we can do @@ -1362,9 +1360,9 @@ PyErr_BadInternalCall(); return -1; } - mp = (dictobject*)a; + mp = (PyDictObject*)a; if (PyDict_CheckExact(b)) { - other = (dictobject*)b; + other = (PyDictObject*)b; if (other == mp || other->ma_used == 0) /* a.update(a) or a.update({}); nothing to do */ return 0; @@ -1444,7 +1442,7 @@ } static PyObject * -dict_copy(register dictobject *mp) +dict_copy(register PyDictObject *mp) { return PyDict_Copy((PyObject*)mp); } @@ -1474,7 +1472,7 @@ PyErr_BadInternalCall(); return -1; } - return ((dictobject *)mp)->ma_used; + return ((PyDictObject *)mp)->ma_used; } PyObject * @@ -1484,7 +1482,7 @@ PyErr_BadInternalCall(); return NULL; } - return dict_keys((dictobject *)mp); + return dict_keys((PyDictObject *)mp); } PyObject * @@ -1494,7 +1492,7 @@ PyErr_BadInternalCall(); return NULL; } - return dict_values((dictobject *)mp); + return dict_values((PyDictObject *)mp); } PyObject * @@ -1504,7 +1502,7 @@ PyErr_BadInternalCall(); return NULL; } - return dict_items((dictobject *)mp); + return dict_items((PyDictObject *)mp); } /* Subroutine which returns the smallest key in a for which b's value @@ -1516,7 +1514,7 @@ them before the caller is done looking at them). */ static PyObject * -characterize(dictobject *a, dictobject *b, PyObject **pval) +characterize(PyDictObject *a, PyDictObject *b, PyObject **pval) { PyObject *akey = NULL; /* smallest key in a s.t. a[akey] != b[akey] */ PyObject *aval = NULL; /* a[akey] */ @@ -1590,7 +1588,7 @@ } static int -dict_compare(dictobject *a, dictobject *b) +dict_compare(PyDictObject *a, PyDictObject *b) { PyObject *adiff, *bdiff, *aval, *bval; int res; @@ -1642,7 +1640,7 @@ * Uses only Py_EQ comparison. */ static int -dict_equal(dictobject *a, dictobject *b) +dict_equal(PyDictObject *a, PyDictObject *b) { Py_ssize_t i; @@ -1687,7 +1685,7 @@ res = Py_NotImplemented; } else if (op == Py_EQ || op == Py_NE) { - cmp = dict_equal((dictobject *)v, (dictobject *)w); + cmp = dict_equal((PyDictObject *)v, (PyDictObject *)w); if (cmp < 0) return NULL; res = (cmp == (op == Py_EQ)) ? Py_True : Py_False; @@ -1699,10 +1697,10 @@ } static PyObject * -dict_contains(register dictobject *mp, PyObject *key) +dict_contains(register PyDictObject *mp, PyObject *key) { long hash; - dictentry *ep; + PyDictEntry *ep; if (!PyString_CheckExact(key) || (hash = ((PyStringObject *) key)->ob_shash) == -1) { @@ -1717,7 +1715,7 @@ } static PyObject * -dict_has_key(register dictobject *mp, PyObject *key) +dict_has_key(register PyDictObject *mp, PyObject *key) { if (Py_Py3kWarningFlag && PyErr_Warn(PyExc_DeprecationWarning, @@ -1727,13 +1725,13 @@ } static PyObject * -dict_get(register dictobject *mp, PyObject *args) +dict_get(register PyDictObject *mp, PyObject *args) { PyObject *key; PyObject *failobj = Py_None; PyObject *val = NULL; long hash; - dictentry *ep; + PyDictEntry *ep; if (!PyArg_UnpackTuple(args, "get", 1, 2, &key, &failobj)) return NULL; @@ -1756,13 +1754,13 @@ static PyObject * -dict_setdefault(register dictobject *mp, PyObject *args) +dict_setdefault(register PyDictObject *mp, PyObject *args) { PyObject *key; PyObject *failobj = Py_None; PyObject *val = NULL; long hash; - dictentry *ep; + PyDictEntry *ep; if (!PyArg_UnpackTuple(args, "setdefault", 1, 2, &key, &failobj)) return NULL; @@ -1788,17 +1786,17 @@ static PyObject * -dict_clear(register dictobject *mp) +dict_clear(register PyDictObject *mp) { PyDict_Clear((PyObject *)mp); Py_RETURN_NONE; } static PyObject * -dict_pop(dictobject *mp, PyObject *args) +dict_pop(PyDictObject *mp, PyObject *args) { long hash; - dictentry *ep; + PyDictEntry *ep; PyObject *old_value, *old_key; PyObject *key, *deflt = NULL; @@ -1841,10 +1839,10 @@ } static PyObject * -dict_popitem(dictobject *mp) +dict_popitem(PyDictObject *mp) { Py_ssize_t i = 0; - dictentry *ep; + PyDictEntry *ep; PyObject *res; /* Allocate the result tuple before checking the size. Believe it @@ -1923,22 +1921,22 @@ extern PyTypeObject PyDictIterKey_Type; /* Forward */ extern PyTypeObject PyDictIterValue_Type; /* Forward */ extern PyTypeObject PyDictIterItem_Type; /* Forward */ -static PyObject *dictiter_new(dictobject *, PyTypeObject *); +static PyObject *dictiter_new(PyDictObject *, PyTypeObject *); static PyObject * -dict_iterkeys(dictobject *dict) +dict_iterkeys(PyDictObject *dict) { return dictiter_new(dict, &PyDictIterKey_Type); } static PyObject * -dict_itervalues(dictobject *dict) +dict_itervalues(PyDictObject *dict) { return dictiter_new(dict, &PyDictIterValue_Type); } static PyObject * -dict_iteritems(dictobject *dict) +dict_iteritems(PyDictObject *dict) { return dictiter_new(dict, &PyDictIterItem_Type); } @@ -2041,8 +2039,8 @@ PyDict_Contains(PyObject *op, PyObject *key) { long hash; - dictobject *mp = (dictobject *)op; - dictentry *ep; + PyDictObject *mp = (PyDictObject *)op; + PyDictEntry *ep; if (!PyString_CheckExact(key) || (hash = ((PyStringObject *) key)->ob_shash) == -1) { @@ -2058,8 +2056,8 @@ int _PyDict_Contains(PyObject *op, PyObject *key, long hash) { - dictobject *mp = (dictobject *)op; - dictentry *ep; + PyDictObject *mp = (PyDictObject *)op; + PyDictEntry *ep; ep = (mp->ma_lookup)(mp, key, hash); return ep == NULL ? -1 : (ep->me_value != NULL); @@ -2113,7 +2111,7 @@ } static PyObject * -dict_iter(dictobject *dict) +dict_iter(PyDictObject *dict) { return dictiter_new(dict, &PyDictIterKey_Type); } @@ -2132,7 +2130,7 @@ PyTypeObject PyDict_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "dict", - sizeof(dictobject), + sizeof(PyDictObject), 0, (destructor)dict_dealloc, /* tp_dealloc */ (printfunc)dict_print, /* tp_print */ @@ -2217,7 +2215,7 @@ typedef struct { PyObject_HEAD - dictobject *di_dict; /* Set to NULL when iterator is exhausted */ + PyDictObject *di_dict; /* Set to NULL when iterator is exhausted */ Py_ssize_t di_used; Py_ssize_t di_pos; PyObject* di_result; /* reusable result tuple for iteritems */ @@ -2225,7 +2223,7 @@ } dictiterobject; static PyObject * -dictiter_new(dictobject *dict, PyTypeObject *itertype) +dictiter_new(PyDictObject *dict, PyTypeObject *itertype) { dictiterobject *di; di = PyObject_New(dictiterobject, itertype); @@ -2276,8 +2274,8 @@ { PyObject *key; register Py_ssize_t i, mask; - register dictentry *ep; - dictobject *d = di->di_dict; + register PyDictEntry *ep; + PyDictObject *d = di->di_dict; if (d == NULL) return NULL; @@ -2348,8 +2346,8 @@ { PyObject *value; register Py_ssize_t i, mask; - register dictentry *ep; - dictobject *d = di->di_dict; + register PyDictEntry *ep; + PyDictObject *d = di->di_dict; if (d == NULL) return NULL; @@ -2420,8 +2418,8 @@ { PyObject *key, *value, *result = di->di_result; register Py_ssize_t i, mask; - register dictentry *ep; - dictobject *d = di->di_dict; + register PyDictEntry *ep; + PyDictObject *d = di->di_dict; if (d == NULL) return NULL; Modified: python/branches/ctypes-branch/Objects/listobject.c ============================================================================== --- python/branches/ctypes-branch/Objects/listobject.c (original) +++ python/branches/ctypes-branch/Objects/listobject.c Tue Oct 23 20:47:50 2007 @@ -499,10 +499,10 @@ if (n < 0) n = 0; size = Py_Size(a) * n; - if (size == 0) - return PyList_New(0); if (n && size/n != Py_Size(a)) return PyErr_NoMemory(); + if (size == 0) + return PyList_New(0); np = (PyListObject *) PyList_New(size); if (np == NULL) return NULL; @@ -669,7 +669,7 @@ list_inplace_repeat(PyListObject *self, Py_ssize_t n) { PyObject **items; - Py_ssize_t size, i, j, p; + Py_ssize_t size, i, j, p, newsize; size = PyList_GET_SIZE(self); @@ -684,7 +684,10 @@ return (PyObject *)self; } - if (list_resize(self, size*n) == -1) + newsize = size * n; + if (newsize/n != size) + return PyErr_NoMemory(); + if (list_resize(self, newsize) == -1) return NULL; p = size; Modified: python/branches/ctypes-branch/PC/pyconfig.h ============================================================================== --- python/branches/ctypes-branch/PC/pyconfig.h (original) +++ python/branches/ctypes-branch/PC/pyconfig.h Tue Oct 23 20:47:50 2007 @@ -377,11 +377,11 @@ define these. If some compiler does not provide them, modify the #if appropriately. */ #if defined(_MSC_VER) -#if _MSC_VER > 1201 +#if _MSC_VER > 1300 #define HAVE_UINTPTR_T 1 #define HAVE_INTPTR_T 1 #else -/* VC6 & eVC4 don't support the C99 LL suffix for 64-bit integer literals */ +/* VC6, VS 2002 and eVC4 don't support the C99 LL suffix for 64-bit integer literals */ #define Py_LL(x) x##I64 #endif /* _MSC_VER > 1200 */ #endif /* _MSC_VER */ Modified: python/branches/ctypes-branch/Parser/pgen.c ============================================================================== --- python/branches/ctypes-branch/Parser/pgen.c (original) +++ python/branches/ctypes-branch/Parser/pgen.c Tue Oct 23 20:47:50 2007 @@ -124,7 +124,7 @@ nf = newnfa(name); gr->gr_nfa = (nfa **)PyObject_REALLOC(gr->gr_nfa, - sizeof(nfa) * (gr->gr_nnfas + 1)); + sizeof(nfa*) * (gr->gr_nnfas + 1)); if (gr->gr_nfa == NULL) Py_FatalError("out of mem"); gr->gr_nfa[gr->gr_nnfas++] = nf; @@ -487,6 +487,7 @@ convert(d, xx_nstates, xx_state); /* XXX cleanup */ + PyObject_FREE(xx_state); } static void Modified: python/branches/ctypes-branch/Parser/tokenizer.c ============================================================================== --- python/branches/ctypes-branch/Parser/tokenizer.c (original) +++ python/branches/ctypes-branch/Parser/tokenizer.c Tue Oct 23 20:47:50 2007 @@ -1542,7 +1542,7 @@ Py_DECREF(unicode_text); } if (!ret) { - PyErr_Print(); + PyErr_Clear(); } return ret; } Modified: python/branches/ctypes-branch/Python/marshal.c ============================================================================== --- python/branches/ctypes-branch/Python/marshal.c (original) +++ python/branches/ctypes-branch/Python/marshal.c Tue Oct 23 20:47:50 2007 @@ -1013,6 +1013,7 @@ RFILE rf; rf.fp = fp; rf.strings = NULL; + rf.ptr = rf.end = NULL; return r_long(&rf); } @@ -1086,6 +1087,7 @@ rf.fp = fp; rf.strings = PyList_New(0); rf.depth = 0; + rf.ptr = rf.end = NULL; result = r_object(&rf); Py_DECREF(rf.strings); return result; Modified: python/branches/ctypes-branch/setup.py ============================================================================== --- python/branches/ctypes-branch/setup.py (original) +++ python/branches/ctypes-branch/setup.py Tue Oct 23 20:47:50 2007 @@ -660,7 +660,7 @@ # http://www.oracle.com/database/berkeley-db/db/index.html # # This requires the Sleepycat^WOracle DB code. The supported versions - # are set below. Visit http://www.sleepycat.com/ to download + # are set below. Visit the URL above to download # a release. Most open source OSes come with one or more # versions of BerkeleyDB already installed. From python-checkins at python.org Tue Oct 23 20:50:09 2007 From: python-checkins at python.org (chris.monson) Date: Tue, 23 Oct 2007 20:50:09 +0200 (CEST) Subject: [Python-checkins] r58616 - peps/trunk/pep-3101.txt Message-ID: <20071023185009.CD58A1E4028@bag.python.org> Author: chris.monson Date: Tue Oct 23 20:50:09 2007 New Revision: 58616 Modified: peps/trunk/pep-3101.txt Log: Updated Pep 3101 to reflect typos and other small errors found by Mark Summerfield (and a few by myself) Modified: peps/trunk/pep-3101.txt ============================================================================== --- peps/trunk/pep-3101.txt (original) +++ peps/trunk/pep-3101.txt Tue Oct 23 20:50:09 2007 @@ -120,9 +120,8 @@ Character data is data which is transferred unchanged from the format string to the output string; markup is not transferred from the format string directly to the output, but instead is used to - define 'replacement fields' that describes to the format engine - what should be placed in the output string in the place of the - markup. + define 'replacement fields' that describe to the format engine + what should be placed in the output string in place of the markup. Brace characters ('curly braces') are used to indicate a replacement field within the string: @@ -156,7 +155,7 @@ A compound field name is a combination of multiple simple field names in an expression: - "My name is {0.name}".format(file('out.txt')) + "My name is {0.name}".format(open('out.txt', 'w')) This example shows the use of the 'getattr' or 'dot' operator in a field expression. The dot operator allows an attribute of @@ -177,19 +176,21 @@ is much more limited than its conventional usage. In the above example, the string 'name' really is the literal string 'name', not a variable named 'name'. The rules for parsing an item key are very simple. - If it starts with a digit, then its treated as a number, otherwise + If it starts with a digit, then it is treated as a number, otherwise it is used as a string. - It is not possible to specify arbitrary dictionary keys from - within a format string. + Because keys are not quote-delimited, it is not possible to + specify arbitrary dictionary keys (e.g., the strings "10" or + ":-]") from within a format string. Implementation note: The implementation of this proposal is - not required to enforce the rule about a name being a valid - Python identifier. Instead, it will rely on the getattr function - of the underlying object to throw an exception if the identifier - is not legal. The str.format() function will have a minimalist - parser which only attempts to figure out when it is "done" with an - identifier (by finding a '.' or a ']', or '}', etc.). + not required to enforce the rule about a simple or dotted name + being a valid Python identifier. Instead, it will rely on the + getattr function of the underlying object to throw an exception if + the identifier is not legal. The str.format() function will have + a minimalist parser which only attempts to figure out when it is + "done" with an identifier (by finding a '.' or a ']', or '}', + etc.). Format Specifiers @@ -202,15 +203,15 @@ "My name is {0:8}".format('Fred') The meaning and syntax of the format specifiers depends on the - type of object that is being formatted, however there is a - standard set of format specifiers used for any object that - does not override them. + type of object that is being formatted, but there is a standard + set of format specifiers used for any object that does not + override them. Format specifiers can themselves contain replacement fields. For example, a field whose field width is itself a parameter could be specified via: - "{0:{1}}".format(a, b, c) + "{0:{1}}".format(a, b) These 'internal' replacement fields can only occur in the format specifier part of the replacement field. Internal replacement fields @@ -232,14 +233,14 @@ Standard Format Specifiers - If an object does not define its own format specifiers, a - standard set of format specifiers are used. These are similar - in concept to the format specifiers used by the existing '%' - operator, however there are also a number of differences. + If an object does not define its own format specifiers, a standard + set of format specifiers is used. These are similar in concept to + the format specifiers used by the existing '%' operator, however + there are also a number of differences. The general form of a standard format specifier is: - [[fill]align][sign][0][width][.precision][type] + [[fill]align][sign][0][minimumwidth][.precision][type] The brackets ([]) indicate an optional element. @@ -264,8 +265,8 @@ pad the field to the minimum width. The fill character, if present, must be followed by an alignment flag. - The 'sign' option is only valid for number types, and can be one of - the following: + The 'sign' option is only valid for numeric types, and can be one + of the following: '+' - indicates that a sign should be used for both positive as well as negative numbers @@ -284,7 +285,7 @@ The 'precision' is a decimal number indicating how many digits should be displayed after the decimal point in a floating point - conversion. For non-number types the field indicates the maximum + conversion. For non-numeric types the field indicates the maximum field size - in other words, how many characters will be used from the field content. The precision is ignored for integer conversions. @@ -294,7 +295,7 @@ 'b' - Binary. Outputs the number in base 2. 'c' - Character. Converts the integer to the corresponding - unicode character before printing. + Unicode character before printing. 'd' - Decimal Integer. Outputs the number in base 10. 'o' - Octal format. Outputs the number in base 8. 'x' - Hex format. Outputs the number in base 16, using lower- @@ -333,9 +334,9 @@ "Today is: {0:a b d H:M:S Y}".format(datetime.now()) For all built-in types, an empty format specification will produce - the same result as would have been produced by calling str(value). - It is recommended that objects defining their own format specifiers - follow this convention as well. + the equivalent of str(value). It is recommended that objects + defining their own format specifiers follow this convention as + well. Explicit Conversion Flag @@ -426,11 +427,11 @@ lives in the 'string' module. This class takes additional options which are not accessible via the normal str.format method. - An application can subclass the Formatter class to create their - own customized formatting behavior. + An application can subclass the Formatter class to create its own + customized formatting behavior. The PEP does not attempt to exactly specify all methods and - properties defined by the Formatter class; Instead, those will be + properties defined by the Formatter class; instead, those will be defined and documented in the initial implementation. However, this PEP will specify the general requirements for the Formatter class, which are listed below. @@ -456,8 +457,8 @@ -- vformat(format_string, args, kwargs) 'format' is the primary API method. It takes a format template, - and an arbitrary set of positional and keyword argument. 'format' - is just a wrapper that calls 'vformat'. + and an arbitrary set of positional and keyword arguments. + 'format' is just a wrapper that calls 'vformat'. 'vformat' is the function that does the actual work of formatting. It is exposed as a separate function for cases where you want to pass in @@ -484,7 +485,7 @@ positional arguments. For compound field names, these functions are only called for the - first component of the field name; Subsequent components are handled + first component of the field name; subsequent components are handled through normal attribute and indexing operations. So for example, the field expression '0.name' would cause 'get_value' @@ -606,9 +607,9 @@ It would also be possible to create a 'smart' namespace formatter that could automatically access both locals and globals through snooping of the calling stack. Due to the need for compatibility - the different versions of Python, such a capability will not be - included in the standard library, however it is anticipated that - someone will create and publish a recipe for doing this. + with the different versions of Python, such a capability will not + be included in the standard library, however it is anticipated + that someone will create and publish a recipe for doing this. Another type of customization is to change the way that built-in types are formatted by overriding the 'format_field' method. (For @@ -663,9 +664,9 @@ This scheme is generally used in cases where interpolation is implicit - that is, in environments where any string can contain - interpolation variables, and no special subsitution function + interpolation variables, and no special substitution function need be invoked. In such cases, it is important to prevent the - interpolation behavior from occuring accidentally, so the '$' + interpolation behavior from occurring accidentally, so the '$' (which is otherwise a relatively uncommonly-used character) is used to signal when the behavior should occur. @@ -674,7 +675,7 @@ taken to prevent accidental interpolation, in which case a lighter and less unwieldy syntax can be used. - - Printf and its cousins ('%'), including variations that add a + - printf and its cousins ('%'), including variations that add a field index, so that fields can be interpolated out of order. - Other bracket-only variations. Various MUDs (Multi-User @@ -731,7 +732,7 @@ the parameter before it's passed in to the formatting function. For cases where the format string is being use to do arbitrary formatting in a data-rich environment, it's recommended to use - a templating engine specialized for this purpose, such as + a template engine specialized for this purpose, such as Genshi [5] or Cheetah [6]. Many other features were considered and rejected because they @@ -744,14 +745,14 @@ Historically, string formatting has been a common source of security holes in web-based applications, particularly if the - string templating system allows arbitrary expressions to be + string formatting system allows arbitrary expressions to be embedded in format strings. The best way to use string formatting in a way that does not create potential security holes is to never use format strings that come from an untrusted source. - Barring that, the next best approach is to insure that string + Barring that, the next best approach is to ensure that string formatting has no side effects. Because of the open nature of Python, it is impossible to guarantee that any non-trivial operation has this property. What this PEP does is limit the From python-checkins at python.org Tue Oct 23 21:25:42 2007 From: python-checkins at python.org (guido.van.rossum) Date: Tue, 23 Oct 2007 21:25:42 +0200 (CEST) Subject: [Python-checkins] r58618 - python/trunk/Lib/smtpd.py Message-ID: <20071023192542.3584B1E4018@bag.python.org> Author: guido.van.rossum Date: Tue Oct 23 21:25:41 2007 New Revision: 58618 Modified: python/trunk/Lib/smtpd.py Log: Issue 1307 by Derek Shockey, fox the same bug for RCPT. Neal: please backport! Modified: python/trunk/Lib/smtpd.py ============================================================================== --- python/trunk/Lib/smtpd.py (original) +++ python/trunk/Lib/smtpd.py Tue Oct 23 21:25:41 2007 @@ -237,7 +237,7 @@ if not self.__mailfrom: self.push('503 Error: need MAIL command') return - address = self.__getaddr('TO:', arg) + address = self.__getaddr('TO:', arg) if arg else None if not address: self.push('501 Syntax: RCPT TO:
    ') return From buildbot at python.org Tue Oct 23 21:37:58 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Oct 2007 19:37:58 +0000 Subject: [Python-checkins] buildbot failure in x86 XP trunk Message-ID: <20071023193758.A22F41E4018@bag.python.org> The Buildbot has detected a new failure of x86 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP%20trunk/builds/715 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: mcintyre-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,guido.van.rossum,neal.norwitz BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From nnorwitz at gmail.com Tue Oct 23 22:21:34 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Tue, 23 Oct 2007 16:21:34 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20071023202134.GA29270@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_cn skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_hk test_codecmaps_hk skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_jp test_codecmaps_jp skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_kr test_codecmaps_kr skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_tw test_codecmaps_tw skipped -- Use of the `urlfetch' resource not enabled test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [9105 refs] test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test test_ftplib failed -- errors occurred; run in verbose mode for details test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_normalization skipped -- Use of the `urlfetch' resource not enabled test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7362 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 296 tests OK. 1 test failed: test_ftplib 35 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses test_gl test_imageop test_imgfile test_ioctl test_linuxaudiodev test_macostools test_normalization test_ossaudiodev test_pep277 test_plistlib test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [506661 refs] From python-checkins at python.org Tue Oct 23 22:37:41 2007 From: python-checkins at python.org (raymond.hettinger) Date: Tue, 23 Oct 2007 22:37:41 +0200 (CEST) Subject: [Python-checkins] r58620 - in python/trunk: Lib/collections.py Lib/test/test_collections.py Misc/NEWS Message-ID: <20071023203741.7B5FB1E4031@bag.python.org> Author: raymond.hettinger Date: Tue Oct 23 22:37:41 2007 New Revision: 58620 Modified: python/trunk/Lib/collections.py python/trunk/Lib/test/test_collections.py python/trunk/Misc/NEWS Log: Shorter name for namedtuple() Modified: python/trunk/Lib/collections.py ============================================================================== --- python/trunk/Lib/collections.py (original) +++ python/trunk/Lib/collections.py Tue Oct 23 22:37:41 2007 @@ -1,14 +1,14 @@ -__all__ = ['deque', 'defaultdict', 'named_tuple'] +__all__ = ['deque', 'defaultdict', 'namedtuple'] from _collections import deque, defaultdict from operator import itemgetter as _itemgetter from keyword import iskeyword as _iskeyword import sys as _sys -def named_tuple(typename, field_names, verbose=False): +def namedtuple(typename, field_names, verbose=False): """Returns a new subclass of tuple with named fields. - >>> Point = named_tuple('Point', 'x y') + >>> Point = namedtuple('Point', 'x y') >>> Point.__doc__ # docstring for the new class 'Point(x, y)' >>> p = Point(11, y=22) # instantiate with positional args or keywords @@ -94,10 +94,10 @@ if __name__ == '__main__': # verify that instances can be pickled from cPickle import loads, dumps - Point = named_tuple('Point', 'x, y', True) + Point = namedtuple('Point', 'x, y', True) p = Point(x=10, y=20) assert p == loads(dumps(p)) import doctest - TestResults = named_tuple('TestResults', 'failed attempted') + TestResults = namedtuple('TestResults', 'failed attempted') print TestResults(*doctest.testmod()) Modified: python/trunk/Lib/test/test_collections.py ============================================================================== --- python/trunk/Lib/test/test_collections.py (original) +++ python/trunk/Lib/test/test_collections.py Tue Oct 23 22:37:41 2007 @@ -1,31 +1,31 @@ import unittest from test import test_support -from collections import named_tuple +from collections import namedtuple class TestNamedTuple(unittest.TestCase): def test_factory(self): - Point = named_tuple('Point', 'x y') + Point = namedtuple('Point', 'x y') self.assertEqual(Point.__name__, 'Point') self.assertEqual(Point.__doc__, 'Point(x, y)') self.assertEqual(Point.__slots__, ()) self.assertEqual(Point.__module__, __name__) self.assertEqual(Point.__getitem__, tuple.__getitem__) - self.assertRaises(ValueError, named_tuple, 'abc%', 'efg ghi') # type has non-alpha char - self.assertRaises(ValueError, named_tuple, 'class', 'efg ghi') # type has keyword - self.assertRaises(ValueError, named_tuple, '9abc', 'efg ghi') # type starts with digit - - self.assertRaises(ValueError, named_tuple, 'abc', 'efg g%hi') # field with non-alpha char - self.assertRaises(ValueError, named_tuple, 'abc', 'abc class') # field has keyword - self.assertRaises(ValueError, named_tuple, 'abc', '8efg 9ghi') # field starts with digit - self.assertRaises(ValueError, named_tuple, 'abc', '__efg__ ghi') # field with double underscores - self.assertRaises(ValueError, named_tuple, 'abc', 'efg efg ghi') # duplicate field + self.assertRaises(ValueError, namedtuple, 'abc%', 'efg ghi') # type has non-alpha char + self.assertRaises(ValueError, namedtuple, 'class', 'efg ghi') # type has keyword + self.assertRaises(ValueError, namedtuple, '9abc', 'efg ghi') # type starts with digit + + self.assertRaises(ValueError, namedtuple, 'abc', 'efg g%hi') # field with non-alpha char + self.assertRaises(ValueError, namedtuple, 'abc', 'abc class') # field has keyword + self.assertRaises(ValueError, namedtuple, 'abc', '8efg 9ghi') # field starts with digit + self.assertRaises(ValueError, namedtuple, 'abc', '__efg__ ghi') # field with double underscores + self.assertRaises(ValueError, namedtuple, 'abc', 'efg efg ghi') # duplicate field - named_tuple('Point0', 'x1 y2') # Verify that numbers are allowed in names + namedtuple('Point0', 'x1 y2') # Verify that numbers are allowed in names def test_instance(self): - Point = named_tuple('Point', 'x y') + Point = namedtuple('Point', 'x y') p = Point(11, 22) self.assertEqual(p, Point(x=11, y=22)) self.assertEqual(p, Point(11, y=22)) @@ -44,17 +44,17 @@ self.assertEqual(p.__asdict__(), dict(x=11, y=22)) # test __dict__ method # verify that field string can have commas - Point = named_tuple('Point', 'x, y') + Point = namedtuple('Point', 'x, y') p = Point(x=11, y=22) self.assertEqual(repr(p), 'Point(x=11, y=22)') # verify that fieldspec can be a non-string sequence - Point = named_tuple('Point', ('x', 'y')) + Point = namedtuple('Point', ('x', 'y')) p = Point(x=11, y=22) self.assertEqual(repr(p), 'Point(x=11, y=22)') def test_tupleness(self): - Point = named_tuple('Point', 'x y') + Point = namedtuple('Point', 'x y') p = Point(11, 22) self.assert_(isinstance(p, tuple)) @@ -73,9 +73,9 @@ self.assertRaises(AttributeError, eval, 'p.z', locals()) def test_odd_sizes(self): - Zero = named_tuple('Zero', '') + Zero = namedtuple('Zero', '') self.assertEqual(Zero(), ()) - Dot = named_tuple('Dot', 'd') + Dot = namedtuple('Dot', 'd') self.assertEqual(Dot(1), (1,)) def test_main(verbose=None): Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Tue Oct 23 22:37:41 2007 @@ -798,6 +798,8 @@ Extension Modules ----------------- +- collections.defaultdict now has a repr() function that can be run through eval() + - Patch #1388440: Add set_completion_display_matches_hook and get_completion_type to readline. From nnorwitz at gmail.com Tue Oct 23 22:11:14 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Tue, 23 Oct 2007 16:11:14 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20071023201114.GA26354@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_cn skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_hk test_codecmaps_hk skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_jp test_codecmaps_jp skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_kr test_codecmaps_kr skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_tw test_codecmaps_tw skipped -- Use of the `urlfetch' resource not enabled test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test test_ftplib failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_ftplib.py", line 59, in testTimeoutConnect ftp.connect("localhost", timeout=30) File "/tmp/python-test/local/lib/python2.6/ftplib.py", line 129, in connect self.sock = socket.create_connection((self.host, self.port), self.timeout) File "/tmp/python-test/local/lib/python2.6/socket.py", line 462, in create_connection raise error, msg error: [Errno 111] Connection refused test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_normalization skipped -- Use of the `urlfetch' resource not enabled test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7359 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 296 tests OK. 1 test failed: test_ftplib 35 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses test_gl test_imageop test_imgfile test_ioctl test_linuxaudiodev test_macostools test_normalization test_ossaudiodev test_pep277 test_plistlib test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [507028 refs] From buildbot at python.org Tue Oct 23 22:55:11 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Oct 2007 20:55:11 +0000 Subject: [Python-checkins] buildbot failure in x86 XP 3.0 Message-ID: <20071023205517.BBAF91E4018@bag.python.org> The Buildbot has detected a new failure of x86 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP%203.0/builds/180 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: mcintyre-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: 14 tests failed: test_codeccallbacks test_csv test_ctypes test_dumbdbm test_file test_fileinput test_gettext test_io test_largefile test_mailbox test_netrc test_pep277 test_subprocess test_tempfile ====================================================================== FAIL: test_translatehelper (test.test_codeccallbacks.CodecCallbackTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_codeccallbacks.py", line 795, in test_translatehelper self.assertRaises(ValueError, "\xff".translate, D()) AssertionError: ValueError not raised by translate ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_csv.py", line 500, in test_read_escape_fieldsep self.readerAssertEqual('abc\\,def\r\n', [['abc,def']]) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestQuotedEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_csv.py", line 513, in test_read_escape_fieldsep self.readerAssertEqual('"abc\\,def"\r\n', [['abc,def']]) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== FAIL: test_from_address (ctypes.test.test_arrays.ArrayTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_arrays.py", line 97, in test_from_address self.failUnlessEqual(sz[:], "foo") AssertionError: s'foo' != 'foo' ====================================================================== FAIL: test_buffer (ctypes.test.test_buffers.StringBufferTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_buffers.py", line 17, in test_buffer self.failUnlessEqual(b[:], "abc\0") AssertionError: s'abc\x00' != 'abc\x00' ====================================================================== FAIL: test_string_conversion (ctypes.test.test_buffers.StringBufferTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_buffers.py", line 29, in test_string_conversion self.failUnlessEqual(b[:], "abc\0") AssertionError: s'abc\x00' != 'abc\x00' ====================================================================== FAIL: test_qsort (ctypes.test.test_libc.LibTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_libc.py", line 27, in test_qsort self.failUnlessEqual(chars.raw, " ,,aaaadmmmnpppsss\x00") AssertionError: s' ,,aaaadmmmnpppsss\x00' != ' ,,aaaadmmmnpppsss\x00' ====================================================================== FAIL: test_memmove (ctypes.test.test_memfunctions.MemFunctionsTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_memfunctions.py", line 12, in test_memmove self.failUnlessEqual(a.value, "Hello, World") AssertionError: s'Hello, World' != 'Hello, World' ====================================================================== FAIL: test_memset (ctypes.test.test_memfunctions.MemFunctionsTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_memfunctions.py", line 22, in test_memset self.failUnlessEqual(a.value, "xxxxxxxxxxxxxxxx") AssertionError: s'xxxxxxxxxxxxxxxx' != 'xxxxxxxxxxxxxxxx' ====================================================================== FAIL: test_string_at (ctypes.test.test_memfunctions.MemFunctionsTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_memfunctions.py", line 49, in test_string_at self.failUnlessEqual(string_at(b"foo bar", 7), "foo bar") AssertionError: s'foo bar' != 'foo bar' ====================================================================== FAIL: test_PyOS_snprintf (ctypes.test.test_python_api.PythonAPITestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_python_api.py", line 76, in test_PyOS_snprintf self.failUnlessEqual(buf.value, "Hello from ctypes") AssertionError: s'Hello from ctypes' != 'Hello from ctypes' ====================================================================== FAIL: test_PyString_FromString (ctypes.test.test_python_api.PythonAPITestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_python_api.py", line 36, in test_PyString_FromString self.failUnlessEqual(s, pyob) AssertionError: 'abc' != s'abc' ====================================================================== FAIL: test_PyString_FromStringAndSize (ctypes.test.test_python_api.PythonAPITestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_python_api.py", line 26, in test_PyString_FromStringAndSize self.failUnlessEqual(PyString_FromStringAndSize("abcdefghi", 3), "abc") AssertionError: s'abc' != 'abc' ====================================================================== FAIL: test_char_array (ctypes.test.test_slicing.SlicesTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_slicing.py", line 127, in test_char_array self.failUnlessEqual(p[:], s) AssertionError: s'abcdefghijklmnopqrstuvwxyz\x00' != 'abcdefghijklmnopqrstuvwxyz\x00' ====================================================================== FAIL: test (ctypes.test.test_strings.StringArrayTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_strings.py", line 9, in test self.failUnlessEqual(buf.value, "abc") AssertionError: s'abc' != 'abc' ====================================================================== FAIL: test_c_buffer_raw (ctypes.test.test_strings.StringArrayTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_strings.py", line 41, in test_c_buffer_raw self.failUnlessEqual(buf.value, "Hello, World") AssertionError: s'Hello, World' != 'Hello, World' ====================================================================== FAIL: test_c_buffer_value (ctypes.test.test_strings.StringArrayTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_strings.py", line 31, in test_c_buffer_value self.failUnlessEqual(buf.value, "Hello, World") AssertionError: s'Hello, World' != 'Hello, World' ====================================================================== FAIL: test_buffers (ctypes.test.test_unicode.StringTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_unicode.py", line 114, in test_buffers self.failUnlessEqual(buf[:], "ab???\0") AssertionError: s'ab???\x00' != 'ab???\x00' ====================================================================== FAIL: test_COMError (ctypes.test.test_win32.TestWintypes) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\ctypes\test\test_win32.py", line 63, in test_COMError self.assertEqual(COMError.__doc__, "Raised when a COM method call failed.") AssertionError: s'Raised when a COM method call failed.' != 'Raised when a COM method call failed.' ====================================================================== ERROR: test_line_endings (test.test_dumbdbm.DumbDBMTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_dumbdbm.py", line 121, in test_line_endings f = dumbdbm.open(_fname) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\dumbdbm.py", line 256, in open return _Database(file, mode) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\dumbdbm.py", line 73, in __init__ self._update() File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\dumbdbm.py", line 85, in _update key, pos_and_siz_pair = eval(line) File "", line 0 ^ SyntaxError: unexpected EOF while parsing ====================================================================== ERROR: testTruncateOnWindows (test.test_file.OtherFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_file.py", line 212, in testTruncateOnWindows os.unlink(TESTFN) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== FAIL: test_buffer_sizes (test.test_fileinput.BufferSizesTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_fileinput.py", line 42, in test_buffer_sizes self.buffer_size_test(t1, t2, t3, t4, bs, round) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_fileinput.py", line 119, in buffer_size_test self.assertNotEqual(m, None) AssertionError: None == None ====================================================================== ERROR: test_weird_metadata (test.test_gettext.WeirdMetadataTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_gettext.py", line 335, in test_weird_metadata self.assertEqual(info['last-translator'], KeyError: 'last-translator' ====================================================================== FAIL: test_buffered_file_io (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_io.py", line 163, in test_buffered_file_io self.write_ops(f) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_io.py", line 97, in write_ops self.assertEqual(f.tell(), 13) AssertionError: 12 != 13 ====================================================================== FAIL: test_large_file_ops (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_io.py", line 206, in test_large_file_ops self.large_file_ops(f) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_io.py", line 139, in large_file_ops self.assertEqual(f.tell(), self.LARGE + 2) AssertionError: 2147483649 != 2147483650 ====================================================================== FAIL: test_raw_file_io (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_io.py", line 149, in test_raw_file_io self.write_ops(f) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_io.py", line 97, in write_ops self.assertEqual(f.tell(), 13) AssertionError: 12 != 13 ====================================================================== ERROR: test_add (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 697, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_close (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_from_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_mbox_or_mmdf_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_conflict (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_open_close_open (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_relock (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_close (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_from_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_mbox_or_mmdf_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_conflict (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_open_close_open (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_relock (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_remove_folders (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_folder (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_list_folders (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pack (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_sequences (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_labels (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_date (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_info (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_info_and_flags (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_subdir (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_from (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_unixfrom (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_sequences (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_labels (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_visible (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_from (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_unixfrom (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteration (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_read (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readline (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readlines (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_seek_and_tell (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteration (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_read (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readline (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readlines (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_seek_and_tell (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: Test an empty maildir mailbox ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_both (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_cur (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_new (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_unix_mbox (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMaildir) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 407, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: None ====================================================================== FAIL: test_add (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_mailbox.py", line 76, in test_add self.assertEqual(self._box.get_string(keys[0]), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== ERROR: test_case_1 (test.test_netrc.NetrcTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_netrc.py", line 31, in setUp self.netrc = netrc.netrc(temp_filename) File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\netrc.py", line 56, in __init__ "bad toplevel token %r" % tt, file, lexer.lineno) netrc.NetrcParseError: bad toplevel token 'line1' (@test, line 9) ====================================================================== ERROR: test_directory (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\io.py", line 1109, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_failures (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\io.py", line 1109, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_listdir (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\io.py", line 1109, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_open (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\io.py", line 1109, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_rename (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\io.py", line 1109, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_communicate (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_subprocess.py", line 303, in test_communicate (stdout, stderr) = p.communicate("banana") File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\subprocess.py", line 597, in communicate return self._communicate(input) File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\subprocess.py", line 812, in _communicate self.stdin.write(input) File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\io.py", line 818, in write raise TypeError("can't write str to binary stream") TypeError: can't write str to binary stream ====================================================================== ERROR: test_no_leaking (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_subprocess.py", line 404, in test_no_leaking data = p.communicate("lime")[0] File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\subprocess.py", line 597, in communicate return self._communicate(input) File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\subprocess.py", line 812, in _communicate self.stdin.write(input) File "c:\buildbot_py25\3.0.mcintyre-windows\build\lib\io.py", line 818, in write raise TypeError("can't write str to binary stream") TypeError: can't write str to binary stream ====================================================================== ERROR: test_shell_sequence (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_subprocess.py", line 633, in test_shell_sequence self.assertNotEqual(p.stdout.read().find("physalis"), -1) TypeError: Type str doesn't support the buffer API ====================================================================== ERROR: test_shell_string (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_subprocess.py", line 642, in test_shell_string self.assertNotEqual(p.stdout.read().find("physalis"), -1) TypeError: Type str doesn't support the buffer API ====================================================================== FAIL: test_close_fds (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_subprocess.py", line 624, in test_close_fds self.assertEqual(rc, 47) AssertionError: -2147483645 != 47 ====================================================================== FAIL: test_text_mode (test.test_tempfile.test_SpooledTemporaryFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot_py25\3.0.mcintyre-windows\build\lib\test\test_tempfile.py", line 747, in test_text_mode self.assertEqual(f.read(), "abc\ndef\nxyzzy\n") AssertionError: 'abc\n\ndef\n\nxyzzy\n\n' != 'abc\ndef\nxyzzy\n' sincerely, -The Buildbot From python-checkins at python.org Tue Oct 23 23:23:07 2007 From: python-checkins at python.org (raymond.hettinger) Date: Tue, 23 Oct 2007 23:23:07 +0200 (CEST) Subject: [Python-checkins] r58622 - python/trunk/Misc/NEWS Message-ID: <20071023212307.929411E4031@bag.python.org> Author: raymond.hettinger Date: Tue Oct 23 23:23:07 2007 New Revision: 58622 Modified: python/trunk/Misc/NEWS Log: Fixup news entry Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Tue Oct 23 23:23:07 2007 @@ -550,7 +550,7 @@ - Added heapq.merge() for merging sorted input streams. -- Added collections.named_tuple() for assigning field names to tuples. +- Added collections.namedtuple() for assigning field names to tuples. - Added itertools.izip_longest(). @@ -798,8 +798,6 @@ Extension Modules ----------------- -- collections.defaultdict now has a repr() function that can be run through eval() - - Patch #1388440: Add set_completion_display_matches_hook and get_completion_type to readline. From buildbot at python.org Tue Oct 23 23:28:04 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Oct 2007 21:28:04 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu 3.0 Message-ID: <20071023212805.222C61E401E@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%203.0/builds/148 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 37 sincerely, -The Buildbot From nnorwitz at gmail.com Tue Oct 23 23:57:37 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Tue, 23 Oct 2007 17:57:37 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071023215737.GA18192@python.psfb.org> svn update tools/sphinx Fetching external item into 'tools/sphinx/jinja' External at revision 58622. At revision 58622. svn update tools/docutils At revision 58622. svn update tools/pygments svn: REPORT request failed on '/projects/!svn/vcc/default' svn: Target path does not exist make: *** [update] Error 1 From buildbot at python.org Wed Oct 24 01:00:59 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Oct 2007 23:00:59 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20071023230059.6E5B51E401C@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/993 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 4 tests failed: test_ssl test_timeout test_urllib2 test_urllibnet make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Wed Oct 24 03:28:33 2007 From: python-checkins at python.org (raymond.hettinger) Date: Wed, 24 Oct 2007 03:28:33 +0200 (CEST) Subject: [Python-checkins] r58623 - in python/trunk: Misc/NEWS Python/bltinmodule.c Message-ID: <20071024012833.DCBF31E401D@bag.python.org> Author: raymond.hettinger Date: Wed Oct 24 03:28:33 2007 New Revision: 58623 Modified: python/trunk/Misc/NEWS python/trunk/Python/bltinmodule.c Log: Optimize sum() for integer and float inputs. Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Oct 24 03:28:33 2007 @@ -12,6 +12,8 @@ Core and builtins ----------------- +- optimize the performance of builtin.sum(). + - Fix warnings found by the new version of the Coverity checker. - The enumerate() builtin function is no longer bounded to sequences smaller Modified: python/trunk/Python/bltinmodule.c ============================================================================== --- python/trunk/Python/bltinmodule.c (original) +++ python/trunk/Python/bltinmodule.c Wed Oct 24 03:28:33 2007 @@ -2066,6 +2066,76 @@ Py_INCREF(result); } +#ifndef SLOW_SUM + /* Fast addition by keeping temporary sums in C instead of new Python objects. + Assumes all inputs are the same type. If the assumption fails, default + to the more general routine. + */ + if (PyInt_CheckExact(result)) { + long i_result = PyInt_AS_LONG(result); + Py_DECREF(result); + result = NULL; + while(result == NULL) { + item = PyIter_Next(iter); + if (item == NULL) { + Py_DECREF(iter); + if (PyErr_Occurred()) + return NULL; + return PyInt_FromLong(i_result); + } + if (PyInt_CheckExact(item)) { + long b = PyInt_AS_LONG(item); + long x = i_result + b; + if ((x^i_result) >= 0 || (x^b) >= 0) { + i_result = x; + Py_DECREF(item); + continue; + } + } + /* Either overflowed or is not an int. Restore real objects and process normally */ + result = PyInt_FromLong(i_result); + temp = PyNumber_Add(result, item); + Py_DECREF(result); + Py_DECREF(item); + result = temp; + if (result == NULL) { + Py_DECREF(iter); + return NULL; + } + } + } + + if (PyFloat_CheckExact(result)) { + double f_result = PyFloat_AS_DOUBLE(result); + Py_DECREF(result); + result = NULL; + while(result == NULL) { + item = PyIter_Next(iter); + if (item == NULL) { + Py_DECREF(iter); + if (PyErr_Occurred()) + return NULL; + return PyFloat_FromDouble(f_result); + } + if (PyFloat_CheckExact(item)) { + PyFPE_START_PROTECT("add", return 0) + f_result += PyFloat_AS_DOUBLE(item); + PyFPE_END_PROTECT(a) + continue; + } + result = PyFloat_FromDouble(f_result); + temp = PyNumber_Add(result, item); + Py_DECREF(result); + Py_DECREF(item); + result = temp; + if (result == NULL) { + Py_DECREF(iter); + return NULL; + } + } + } +#endif + for(;;) { item = PyIter_Next(iter); if (item == NULL) { From buildbot at python.org Wed Oct 24 03:37:21 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 01:37:21 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD trunk Message-ID: <20071024013721.A48591E401D@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%20trunk/builds/64 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Wed Oct 24 04:05:51 2007 From: python-checkins at python.org (raymond.hettinger) Date: Wed, 24 Oct 2007 04:05:51 +0200 (CEST) Subject: [Python-checkins] r58624 - python/trunk/Python/bltinmodule.c Message-ID: <20071024020552.208391E401D@bag.python.org> Author: raymond.hettinger Date: Wed Oct 24 04:05:51 2007 New Revision: 58624 Modified: python/trunk/Python/bltinmodule.c Log: Fixup error return and add support for intermixed ints and floats/ Modified: python/trunk/Python/bltinmodule.c ============================================================================== --- python/trunk/Python/bltinmodule.c (original) +++ python/trunk/Python/bltinmodule.c Wed Oct 24 04:05:51 2007 @@ -2120,7 +2120,13 @@ if (PyFloat_CheckExact(item)) { PyFPE_START_PROTECT("add", return 0) f_result += PyFloat_AS_DOUBLE(item); - PyFPE_END_PROTECT(a) + PyFPE_END_PROTECT(f_result) + continue; + } + if (PyInt_CheckExact(item)) { + PyFPE_START_PROTECT("add", return 0) + f_result += (double)PyInt_AS_LONG(item); + PyFPE_END_PROTECT(f_result) continue; } result = PyFloat_FromDouble(f_result); From python-checkins at python.org Wed Oct 24 05:52:51 2007 From: python-checkins at python.org (neal.norwitz) Date: Wed, 24 Oct 2007 05:52:51 +0200 (CEST) Subject: [Python-checkins] r58625 - python/branches/release25-maint/Lib/smtpd.py Message-ID: <20071024035251.396E81E4006@bag.python.org> Author: neal.norwitz Date: Wed Oct 24 05:52:50 2007 New Revision: 58625 Modified: python/branches/release25-maint/Lib/smtpd.py Log: Backport 58618: Issue 1307 by Derek Shockey, fix the same bug for RCPT. Modified: python/branches/release25-maint/Lib/smtpd.py ============================================================================== --- python/branches/release25-maint/Lib/smtpd.py (original) +++ python/branches/release25-maint/Lib/smtpd.py Wed Oct 24 05:52:50 2007 @@ -237,7 +237,7 @@ if not self.__mailfrom: self.push('503 Error: need MAIL command') return - address = self.__getaddr('TO:', arg) + address = self.__getaddr('TO:', arg) if arg else None if not address: self.push('501 Syntax: RCPT TO:
    ') return From buildbot at python.org Wed Oct 24 06:39:48 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 04:39:48 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD 2.5 Message-ID: <20071024043948.5AB531E4028@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%202.5/builds/30 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllibnet sincerely, -The Buildbot From buildbot at python.org Wed Oct 24 07:24:18 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 05:24:18 +0000 Subject: [Python-checkins] buildbot failure in alpha Tru64 5.1 2.5 Message-ID: <20071024052418.B1D941E566C@bag.python.org> The Buildbot has detected a new failure of alpha Tru64 5.1 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Tru64%205.1%202.5/builds/337 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-tru64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: neal.norwitz BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From nnorwitz at gmail.com Wed Oct 24 11:44:21 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Wed, 24 Oct 2007 05:44:21 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071024094421.GA12668@python.psfb.org> svn update tools/sphinx Fetching external item into 'tools/sphinx/jinja' External at revision 58625. At revision 58625. svn update tools/docutils At revision 58625. svn update tools/pygments svn: REPORT request failed on '/projects/!svn/vcc/default' svn: Target path does not exist make: *** [update] Error 1 From python-checkins at python.org Wed Oct 24 12:47:06 2007 From: python-checkins at python.org (vinay.sajip) Date: Wed, 24 Oct 2007 12:47:06 +0200 (CEST) Subject: [Python-checkins] r58628 - python/trunk/Lib/logging/handlers.py Message-ID: <20071024104706.913A11E4006@bag.python.org> Author: vinay.sajip Date: Wed Oct 24 12:47:06 2007 New Revision: 58628 Modified: python/trunk/Lib/logging/handlers.py Log: Bug #1321: Fixed logic error in TimedRotatingFileHandler.__init__() Modified: python/trunk/Lib/logging/handlers.py ============================================================================== --- python/trunk/Lib/logging/handlers.py (original) +++ python/trunk/Lib/logging/handlers.py Wed Oct 24 12:47:06 2007 @@ -230,11 +230,11 @@ # of days in the next week until the rollover day (3). if when.startswith('W'): day = t[6] # 0 is Monday - if day > self.dayOfWeek: - daysToWait = (day - self.dayOfWeek) - 1 - self.rolloverAt = self.rolloverAt + (daysToWait * (60 * 60 * 24)) - if day < self.dayOfWeek: - daysToWait = (6 - self.dayOfWeek) + day + if day != self.dayOfWeek: + if day < self.dayOfWeek: + daysToWait = self.dayOfWeek - day - 1 + else: + daysToWait = 6 - day + self.dayOfWeek self.rolloverAt = self.rolloverAt + (daysToWait * (60 * 60 * 24)) #print "Will rollover at %d, %d seconds from now" % (self.rolloverAt, self.rolloverAt - currentTime) From python-checkins at python.org Wed Oct 24 12:49:50 2007 From: python-checkins at python.org (vinay.sajip) Date: Wed, 24 Oct 2007 12:49:50 +0200 (CEST) Subject: [Python-checkins] r58629 - python/branches/release25-maint/Lib/logging/handlers.py Message-ID: <20071024104950.7CB8F1E4006@bag.python.org> Author: vinay.sajip Date: Wed Oct 24 12:49:50 2007 New Revision: 58629 Modified: python/branches/release25-maint/Lib/logging/handlers.py Log: Bug #1321: Fixed logic error in TimedRotatingFileHandler.__init__() Modified: python/branches/release25-maint/Lib/logging/handlers.py ============================================================================== --- python/branches/release25-maint/Lib/logging/handlers.py (original) +++ python/branches/release25-maint/Lib/logging/handlers.py Wed Oct 24 12:49:50 2007 @@ -1,4 +1,4 @@ -# Copyright 2001-2005 by Vinay Sajip. All Rights Reserved. +# Copyright 2001-2007 by Vinay Sajip. All Rights Reserved. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, @@ -22,7 +22,7 @@ Should work under Python versions >= 1.5.2, except that source line information is not available unless 'sys._getframe()' is. -Copyright (C) 2001-2004 Vinay Sajip. All Rights Reserved. +Copyright (C) 2001-2007 Vinay Sajip. All Rights Reserved. To use, simply 'import logging' and log away! """ @@ -231,11 +231,11 @@ # of days in the next week until the rollover day (3). if when.startswith('W'): day = t[6] # 0 is Monday - if day > self.dayOfWeek: - daysToWait = (day - self.dayOfWeek) - 1 - self.rolloverAt = self.rolloverAt + (daysToWait * (60 * 60 * 24)) - if day < self.dayOfWeek: - daysToWait = (6 - self.dayOfWeek) + day + if day != self.dayOfWeek: + if day < self.dayOfWeek: + daysToWait = self.dayOfWeek - day - 1 + else: + daysToWait = 6 - day + self.dayOfWeek self.rolloverAt = self.rolloverAt + (daysToWait * (60 * 60 * 24)) #print "Will rollover at %d, %d seconds from now" % (self.rolloverAt, self.rolloverAt - currentTime) From python-checkins at python.org Wed Oct 24 12:51:24 2007 From: python-checkins at python.org (vinay.sajip) Date: Wed, 24 Oct 2007 12:51:24 +0200 (CEST) Subject: [Python-checkins] r58630 - python/branches/release24-maint/Lib/logging/handlers.py Message-ID: <20071024105124.176A81E4036@bag.python.org> Author: vinay.sajip Date: Wed Oct 24 12:51:23 2007 New Revision: 58630 Modified: python/branches/release24-maint/Lib/logging/handlers.py Log: Bug #1321: Fixed logic error in TimedRotatingFileHandler.__init__() Modified: python/branches/release24-maint/Lib/logging/handlers.py ============================================================================== --- python/branches/release24-maint/Lib/logging/handlers.py (original) +++ python/branches/release24-maint/Lib/logging/handlers.py Wed Oct 24 12:51:23 2007 @@ -231,11 +231,11 @@ # of days in the next week until the rollover day (3). if when.startswith('W'): day = t[6] # 0 is Monday - if day > self.dayOfWeek: - daysToWait = (day - self.dayOfWeek) - 1 - self.rolloverAt = self.rolloverAt + (daysToWait * (60 * 60 * 24)) - if day < self.dayOfWeek: - daysToWait = (6 - self.dayOfWeek) + day + if day != self.dayOfWeek: + if day < self.dayOfWeek: + daysToWait = self.dayOfWeek - day - 1 + else: + daysToWait = 6 - day + self.dayOfWeek self.rolloverAt = self.rolloverAt + (daysToWait * (60 * 60 * 24)) #print "Will rollover at %d, %d seconds from now" % (self.rolloverAt, self.rolloverAt - currentTime) From buildbot at python.org Wed Oct 24 12:55:57 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 10:55:57 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD trunk Message-ID: <20071024105557.B657C1E4023@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%20trunk/builds/66 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: vinay.sajip BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Wed Oct 24 13:05:28 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 11:05:28 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20071024110528.A81721E401E@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/134 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: vinay.sajip BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Wed Oct 24 13:43:17 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 11:43:17 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 2.5 Message-ID: <20071024114317.73D511E4007@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%202.5/builds/32 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: vinay.sajip BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_largefile Traceback (most recent call last): File "../lib/test/regrtest.py", line 549, in runtest_inner the_package = __import__(abstest, globals(), locals(), []) File "C:\cygwin\home\db3l\buildarea\2.5.bolen-windows\build\lib\test\test_largefile.py", line 77, in f.flush() IOError: [Errno 28] No space left on device sincerely, -The Buildbot From buildbot at python.org Wed Oct 24 14:28:03 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 12:28:03 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 2.5 Message-ID: <20071024122804.052721E4007@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%202.5/builds/425 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: vinay.sajip BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket_ssl make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Wed Oct 24 18:11:52 2007 From: python-checkins at python.org (facundo.batista) Date: Wed, 24 Oct 2007 18:11:52 +0200 (CEST) Subject: [Python-checkins] r58638 - peps/trunk/pep-0042.txt Message-ID: <20071024161152.A23C81E4007@bag.python.org> Author: facundo.batista Date: Wed Oct 24 18:11:52 2007 New Revision: 58638 Modified: peps/trunk/pep-0042.txt Log: Added issue 588756. Modified: peps/trunk/pep-0042.txt ============================================================================== --- peps/trunk/pep-0042.txt (original) +++ peps/trunk/pep-0042.txt Wed Oct 24 18:11:52 2007 @@ -327,6 +327,10 @@ http://mail.python.org/pipermail/python-dev/2004-January/041790.html + - Make Python compliant to the FHS (the Filesystem Hierarchy Standard) + + http://bugs.python.org/issue588756 + Local Variables: mode: indented-text From python-checkins at python.org Wed Oct 24 21:11:09 2007 From: python-checkins at python.org (facundo.batista) Date: Wed, 24 Oct 2007 21:11:09 +0200 (CEST) Subject: [Python-checkins] r58641 - python/trunk/Lib/xml/dom/minidom.py Message-ID: <20071024191109.1A8251E4037@bag.python.org> Author: facundo.batista Date: Wed Oct 24 21:11:08 2007 New Revision: 58641 Modified: python/trunk/Lib/xml/dom/minidom.py Log: Issue 1290. CharacterData.__repr__ was constructing a string in response that keeped having a non-ascii character. Modified: python/trunk/Lib/xml/dom/minidom.py ============================================================================== --- python/trunk/Lib/xml/dom/minidom.py (original) +++ python/trunk/Lib/xml/dom/minidom.py Wed Oct 24 21:11:08 2007 @@ -956,7 +956,7 @@ dotdotdot = "..." else: dotdotdot = "" - return "" % ( + return '' % ( self.__class__.__name__, data[0:10], dotdotdot) def substringData(self, offset, count): From python-checkins at python.org Wed Oct 24 21:50:45 2007 From: python-checkins at python.org (thomas.heller) Date: Wed, 24 Oct 2007 21:50:45 +0200 (CEST) Subject: [Python-checkins] r58643 - python/trunk/Lib/ctypes/test/test_prototypes.py Message-ID: <20071024195045.909B31E4052@bag.python.org> Author: thomas.heller Date: Wed Oct 24 21:50:45 2007 New Revision: 58643 Modified: python/trunk/Lib/ctypes/test/test_prototypes.py Log: Added unittest for calling a function with paramflags (backport from py3k branch). Modified: python/trunk/Lib/ctypes/test/test_prototypes.py ============================================================================== --- python/trunk/Lib/ctypes/test/test_prototypes.py (original) +++ python/trunk/Lib/ctypes/test/test_prototypes.py Wed Oct 24 21:50:45 2007 @@ -48,6 +48,24 @@ func.restype = c_long func.argtypes = None + def test_paramflags(self): + # function returns c_void_p result, + # and has a required parameter named 'input' + prototype = CFUNCTYPE(c_void_p, c_void_p) + func = prototype(("_testfunc_p_p", testdll), + ((1, "input"),)) + + try: + func() + except TypeError as details: + self.failUnlessEqual(str(details), "required argument 'input' missing") + else: + self.fail("TypeError not raised") + + self.failUnlessEqual(func(None), None) + self.failUnlessEqual(func(input=None), None) + + def test_int_pointer_arg(self): func = testdll._testfunc_p_p func.restype = c_long From python-checkins at python.org Wed Oct 24 21:56:50 2007 From: python-checkins at python.org (guido.van.rossum) Date: Wed, 24 Oct 2007 21:56:50 +0200 (CEST) Subject: [Python-checkins] r58644 - in sandbox/trunk/2to3: example.py fixes/fix_basestring.py fixes/fix_buffer.py tests/test_fixers.py Message-ID: <20071024195650.41EB91E4007@bag.python.org> Author: guido.van.rossum Date: Wed Oct 24 21:56:49 2007 New Revision: 58644 Added: sandbox/trunk/2to3/fixes/fix_basestring.py (contents, props changed) sandbox/trunk/2to3/fixes/fix_buffer.py (contents, props changed) Modified: sandbox/trunk/2to3/example.py sandbox/trunk/2to3/tests/test_fixers.py Log: Add two new fixers: - basestring: a simple substitute basestring -> str, by Christian Heimes; - buffer: buffer(...) -> memoryview(...); but not other uses, since buffer is such a popular variable name (mine). Modified: sandbox/trunk/2to3/example.py ============================================================================== --- sandbox/trunk/2to3/example.py (original) +++ sandbox/trunk/2to3/example.py Wed Oct 24 21:56:49 2007 @@ -355,6 +355,12 @@ map(None, foo, bar) map(f, foo.bar) map(lambda x: x+1, range(10)) - + +def basestring_examples(): + if isinstance(x, basestring): pass + +def buffer_examples(): + x = buffer(y) + # This is the last line. Added: sandbox/trunk/2to3/fixes/fix_basestring.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/fixes/fix_basestring.py Wed Oct 24 21:56:49 2007 @@ -0,0 +1,13 @@ +"""Fixer for basestring -> str.""" +# Author: Christian Heimes + +# Local imports +from fixes import basefix +from fixes.util import Name + +class FixBasestring(basefix.BaseFix): + + PATTERN = "'basestring'" + + def transform(self, node, results): + return Name("str", prefix=node.get_prefix()) Added: sandbox/trunk/2to3/fixes/fix_buffer.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/fixes/fix_buffer.py Wed Oct 24 21:56:49 2007 @@ -0,0 +1,21 @@ +# Copyright 2007 Google, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""Fixer that changes buffer(...) into memoryview(...).""" + +# Local imports +from fixes import basefix +from fixes.util import Name + + +class FixBuffer(basefix.BaseFix): + + explicit = True # The user must ask for this fixer + + PATTERN = """ + power< name='buffer' trailer< '(' [any] ')' > > + """ + + def transform(self, node, results): + name = results["name"] + name.replace(Name("memoryview", prefix=name.get_prefix())) Modified: sandbox/trunk/2to3/tests/test_fixers.py ============================================================================== --- sandbox/trunk/2to3/tests/test_fixers.py (original) +++ sandbox/trunk/2to3/tests/test_fixers.py Wed Oct 24 21:56:49 2007 @@ -2716,6 +2716,24 @@ self.unchanged(s) +class Test_basestring(FixerTestCase): + fixer = "basestring" + + def test_basestring(self): + b = """isinstance(x, basestring)""" + a = """isinstance(x, str)""" + self.check(b, a) + + +class Test_buffer(FixerTestCase): + fixer = "buffer" + + def test_buffer(self): + b = """x = buffer(y)""" + a = """x = memoryview(y)""" + self.check(b, a) + + if __name__ == "__main__": import __main__ support.run_all_tests(__main__) From python-checkins at python.org Wed Oct 24 22:00:44 2007 From: python-checkins at python.org (matthias.klose) Date: Wed, 24 Oct 2007 22:00:44 +0200 (CEST) Subject: [Python-checkins] r58645 - in python/trunk: Misc/NEWS configure configure.in Message-ID: <20071024200044.E7FB71E4059@bag.python.org> Author: matthias.klose Date: Wed Oct 24 22:00:44 2007 New Revision: 58645 Modified: python/trunk/Misc/NEWS python/trunk/configure python/trunk/configure.in Log: - Build using system ffi library on arm*-linux*. Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Oct 24 22:00:44 2007 @@ -912,6 +912,8 @@ - Fix libffi configure for hppa*-*-linux* | parisc*-*-linux*. +- Build using system ffi library on arm*-linux*. + Tests ----- Modified: python/trunk/configure ============================================================================== --- python/trunk/configure (original) +++ python/trunk/configure Wed Oct 24 22:00:44 2007 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 57904 . +# From configure.in Revision: 57960 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 2.6. # @@ -12812,6 +12812,138 @@ # Check for use of the system libffi library +if test "${ac_cv_header_ffi_h+set}" = set; then + { echo "$as_me:$LINENO: checking for ffi.h" >&5 +echo $ECHO_N "checking for ffi.h... $ECHO_C" >&6; } +if test "${ac_cv_header_ffi_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_ffi_h" >&5 +echo "${ECHO_T}$ac_cv_header_ffi_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking ffi.h usability" >&5 +echo $ECHO_N "checking ffi.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking ffi.h presence" >&5 +echo $ECHO_N "checking ffi.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: ffi.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: ffi.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: ffi.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: ffi.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: ffi.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: ffi.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: ffi.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: ffi.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: ffi.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: ffi.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------------------------ ## +## Report this to http://www.python.org/python-bugs ## +## ------------------------------------------------ ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for ffi.h" >&5 +echo $ECHO_N "checking for ffi.h... $ECHO_C" >&6; } +if test "${ac_cv_header_ffi_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_ffi_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_ffi_h" >&5 +echo "${ECHO_T}$ac_cv_header_ffi_h" >&6; } + +fi + + { echo "$as_me:$LINENO: checking for --with-system-ffi" >&5 echo $ECHO_N "checking for --with-system-ffi... $ECHO_C" >&6; } @@ -12821,8 +12953,11 @@ fi -if test -z "$with_system_ffi" -then with_system_ffi="no" +if test -z "$with_system_ffi" && test "$ac_cv_header_ffi_h" = yes; then + case "$ac_sys_system/`uname -m`" in + Linux/arm*) with_system_ffi="yes";; + *) with_system_ffi="no" + esac fi { echo "$as_me:$LINENO: result: $with_system_ffi" >&5 echo "${ECHO_T}$with_system_ffi" >&6; } Modified: python/trunk/configure.in ============================================================================== --- python/trunk/configure.in (original) +++ python/trunk/configure.in Wed Oct 24 22:00:44 2007 @@ -1748,12 +1748,16 @@ [AC_MSG_RESULT(no)]) # Check for use of the system libffi library +AC_CHECK_HEADER(ffi.h) AC_MSG_CHECKING(for --with-system-ffi) AC_ARG_WITH(system_ffi, AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library)) -if test -z "$with_system_ffi" -then with_system_ffi="no" +if test -z "$with_system_ffi" && test "$ac_cv_header_ffi_h" = yes; then + case "$ac_sys_system/`uname -m`" in + Linux/arm*) with_system_ffi="yes";; + *) with_system_ffi="no" + esac fi AC_MSG_RESULT($with_system_ffi) From nnorwitz at gmail.com Wed Oct 24 22:20:34 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Wed, 24 Oct 2007 16:20:34 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20071024202034.GA11499@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_cn skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_hk test_codecmaps_hk skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_jp test_codecmaps_jp skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_kr test_codecmaps_kr skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_tw test_codecmaps_tw skipped -- Use of the `urlfetch' resource not enabled test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [9105 refs] test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_normalization skipped -- Use of the `urlfetch' resource not enabled test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7360 refs] [7360 refs] [7360 refs] test_popen2 test_poplib test test_poplib failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_poplib.py", line 50, in testTimeoutValue pop = poplib.POP3("localhost", 9091, timeout=30) File "/tmp/python-test/local/lib/python2.6/poplib.py", line 82, in __init__ self.sock = socket.create_connection((host, port), timeout) File "/tmp/python-test/local/lib/python2.6/socket.py", line 462, in create_connection raise error, msg error: [Errno 111] Connection refused test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7735 refs] [7735 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7355 refs] [7353 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7353 refs] [8966 refs] [7571 refs] [7356 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] [7355 refs] . [7355 refs] [7355 refs] this bit of output is from a test of stdout in a different process ... [7355 refs] [7355 refs] [7571 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7355 refs] [7355 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7359 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 296 tests OK. 1 test failed: test_poplib 35 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses test_gl test_imageop test_imgfile test_ioctl test_linuxaudiodev test_macostools test_normalization test_ossaudiodev test_pep277 test_plistlib test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [506725 refs] From python-checkins at python.org Wed Oct 24 22:34:08 2007 From: python-checkins at python.org (matthias.klose) Date: Wed, 24 Oct 2007 22:34:08 +0200 (CEST) Subject: [Python-checkins] r58647 - in python/branches/release25-maint: Misc/NEWS configure configure.in Message-ID: <20071024203408.12ACA1E4007@bag.python.org> Author: matthias.klose Date: Wed Oct 24 22:34:07 2007 New Revision: 58647 Modified: python/branches/release25-maint/Misc/NEWS python/branches/release25-maint/configure python/branches/release25-maint/configure.in Log: - Build using system ffi library on arm*-linux*. Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Wed Oct 24 22:34:07 2007 @@ -131,6 +131,9 @@ - Fix libffi configure for hppa*-*-linux* | parisc*-*-linux*. +- Build using system ffi library on arm*-linux*. + + Documentation ------------- Modified: python/branches/release25-maint/configure ============================================================================== --- python/branches/release25-maint/configure (original) +++ python/branches/release25-maint/configure Wed Oct 24 22:34:07 2007 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 56635 . +# From configure.in Revision: 57905 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 2.5. # @@ -12290,6 +12290,138 @@ # Check for use of the system libffi library +if test "${ac_cv_header_ffi_h+set}" = set; then + { echo "$as_me:$LINENO: checking for ffi.h" >&5 +echo $ECHO_N "checking for ffi.h... $ECHO_C" >&6; } +if test "${ac_cv_header_ffi_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_ffi_h" >&5 +echo "${ECHO_T}$ac_cv_header_ffi_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking ffi.h usability" >&5 +echo $ECHO_N "checking ffi.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking ffi.h presence" >&5 +echo $ECHO_N "checking ffi.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: ffi.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: ffi.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: ffi.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: ffi.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: ffi.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: ffi.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: ffi.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: ffi.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: ffi.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: ffi.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: ffi.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------------------------ ## +## Report this to http://www.python.org/python-bugs ## +## ------------------------------------------------ ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for ffi.h" >&5 +echo $ECHO_N "checking for ffi.h... $ECHO_C" >&6; } +if test "${ac_cv_header_ffi_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_ffi_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_ffi_h" >&5 +echo "${ECHO_T}$ac_cv_header_ffi_h" >&6; } + +fi + + { echo "$as_me:$LINENO: checking for --with-system-ffi" >&5 echo $ECHO_N "checking for --with-system-ffi... $ECHO_C" >&6; } @@ -12299,8 +12431,11 @@ fi -if test -z "$with_system_ffi" -then with_system_ffi="no" +if test -z "$with_system_ffi" && test "$ac_cv_header_ffi_h" = yes; then + case "$ac_sys_system/`uname -m`" in + Linux/arm*) with_system_ffi="yes";; + *) with_system_ffi="no" + esac fi { echo "$as_me:$LINENO: result: $with_system_ffi" >&5 echo "${ECHO_T}$with_system_ffi" >&6; } Modified: python/branches/release25-maint/configure.in ============================================================================== --- python/branches/release25-maint/configure.in (original) +++ python/branches/release25-maint/configure.in Wed Oct 24 22:34:07 2007 @@ -1721,12 +1721,16 @@ [AC_MSG_RESULT(no)]) # Check for use of the system libffi library +AC_CHECK_HEADER(ffi.h) AC_MSG_CHECKING(for --with-system-ffi) AC_ARG_WITH(system_ffi, AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library)) -if test -z "$with_system_ffi" -then with_system_ffi="no" +if test -z "$with_system_ffi" && test "$ac_cv_header_ffi_h" = yes; then + case "$ac_sys_system/`uname -m`" in + Linux/arm*) with_system_ffi="yes";; + *) with_system_ffi="no" + esac fi AC_MSG_RESULT($with_system_ffi) From buildbot at python.org Wed Oct 24 23:18:43 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 21:18:43 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20071024211843.A70641E4151@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/165 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 21 tests failed: test_bigaddrspace test_codeccallbacks test_csv test_dumbdbm test_file test_fileinput test_format test_getargs2 test_gettext test_index test_io test_itertools test_largefile test_mailbox test_netrc test_operator test_pep277 test_str test_subprocess test_tempfile test_winsound ====================================================================== FAIL: test_concat (test.test_bigaddrspace.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_support.py", line 495, in wrapper return f(self) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_bigaddrspace.py", line 14, in test_concat self.assertRaises(OverflowError, operator.add, s1, '?') AssertionError: OverflowError not raised by add ====================================================================== FAIL: test_optimized_concat (test.test_bigaddrspace.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_support.py", line 495, in wrapper return f(self) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_bigaddrspace.py", line 24, in test_optimized_concat self.fail("should have raised OverflowError") AssertionError: should have raised OverflowError ====================================================================== FAIL: test_translatehelper (test.test_codeccallbacks.CodecCallbackTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_codeccallbacks.py", line 795, in test_translatehelper self.assertRaises(ValueError, "\xff".translate, D()) AssertionError: ValueError not raised by translate ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 500, in test_read_escape_fieldsep self.readerAssertEqual('abc\\,def\r\n', [['abc,def']]) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestQuotedEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 513, in test_read_escape_fieldsep self.readerAssertEqual('"abc\\,def"\r\n', [['abc,def']]) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== ERROR: test_line_endings (test.test_dumbdbm.DumbDBMTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_dumbdbm.py", line 121, in test_line_endings f = dumbdbm.open(_fname) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\dumbdbm.py", line 256, in open return _Database(file, mode) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\dumbdbm.py", line 73, in __init__ self._update() File "C:\buildbot\3.0.heller-windows-amd64\build\lib\dumbdbm.py", line 85, in _update key, pos_and_siz_pair = eval(line) File "", line 0 ^ SyntaxError: unexpected EOF while parsing ====================================================================== ERROR: testTruncateOnWindows (test.test_file.OtherFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_file.py", line 212, in testTruncateOnWindows os.unlink(TESTFN) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== FAIL: test_buffer_sizes (test.test_fileinput.BufferSizesTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_fileinput.py", line 42, in test_buffer_sizes self.buffer_size_test(t1, t2, t3, t4, bs, round) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_fileinput.py", line 119, in buffer_size_test self.assertNotEqual(m, None) AssertionError: None == None Traceback (most recent call last): File "../lib/test/regrtest.py", line 586, in runtest_inner the_package = __import__(abstest, globals(), locals(), []) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_format.py", line 43, in testformat("%.*d", (sys.maxint,1)) # expect overflow File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_format.py", line 22, in testformat result = formatstr % args MemoryError ====================================================================== ERROR: test_n (test.test_getargs2.Signed_TestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_getargs2.py", line 190, in test_n self.failUnlessEqual(99, getargs_n(Long())) TypeError: 'Long' object cannot be interpreted as an integer ====================================================================== ERROR: test_weird_metadata (test.test_gettext.WeirdMetadataTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_gettext.py", line 335, in test_weird_metadata self.assertEqual(info['last-translator'], KeyError: 'last-translator' ====================================================================== FAIL: test_getitem (test.test_index.OverflowTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_index.py", line 190, in test_getitem (0, maxsize, 1)) AssertionError: (-1, -1, 1) != (0, -1, 1) ====================================================================== FAIL: test_buffered_file_io (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_io.py", line 163, in test_buffered_file_io self.write_ops(f) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_io.py", line 97, in write_ops self.assertEqual(f.tell(), 13) AssertionError: 12 != 13 ====================================================================== FAIL: test_large_file_ops (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_io.py", line 206, in test_large_file_ops self.large_file_ops(f) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_io.py", line 139, in large_file_ops self.assertEqual(f.tell(), self.LARGE + 2) AssertionError: 2147483649 != 2147483650 ====================================================================== FAIL: test_raw_file_io (test.test_io.IOTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_io.py", line 149, in test_raw_file_io self.write_ops(f) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_io.py", line 97, in write_ops self.assertEqual(f.tell(), 13) AssertionError: 12 != 13 ====================================================================== ERROR: test_islice (test.test_itertools.TestBasicOps) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_itertools.py", line 343, in test_islice self.assertEqual(len(list(islice(count(), 1, 10, maxsize))), 1) ValueError: Step for islice() must be a positive integer or None. ====================================================================== FAIL: test_count (test.test_itertools.TestBasicOps) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_itertools.py", line 60, in test_count self.assertRaises(OverflowError, list, islice(count(maxsize-5), 10)) AssertionError: OverflowError not raised by list ====================================================================== ERROR: test_add (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 697, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_close (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_from_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_mbox_or_mmdf_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_conflict (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_open_close_open (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_relock (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_close (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_from_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_mbox_or_mmdf_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_conflict (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_open_close_open (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_relock (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add_and_remove_folders (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_folder (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_list_folders (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pack (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_sequences (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_add (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_clear (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_contains (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_delitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_discard (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_dump_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flush (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_file (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_get_string (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_getitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_items (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iter (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteritems (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iterkeys (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_itervalues (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_keys (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_labels (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_len (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_lock_unlock (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_pop (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_remove (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_set_item (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_update (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_values (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 57, in setUp self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_date (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_info (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_info_and_flags (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_subdir (test.test_mailbox.TestMaildirMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_from (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_unixfrom (test.test_mailbox.TestMboxMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_sequences (test.test_mailbox.TestMHMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_labels (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_visible (test.test_mailbox.TestBabylMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_become_message (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_explain_to (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_flags (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_from (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_incorrectly (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_eMM (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_file (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_nothing (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_string (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize_with_unixfrom (test.test_mailbox.TestMMDFMessage) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 950, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteration (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_read (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readline (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readlines (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_seek_and_tell (test.test_mailbox.TestProxyFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1564, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_close (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_initialize (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_iteration (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_read (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readline (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_readlines (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_seek_and_tell (test.test_mailbox.TestPartialFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1613, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: Test an empty maildir mailbox ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_both (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_cur (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_nonempty_maildir_new (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== ERROR: test_unix_mbox (test.test_mailbox.MaildirTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 1672, in setUp os.mkdir(self._dir) WindowsError: [Error 183] Cannot create a file when that file already exists: '@test' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMaildir) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 407, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: None ====================================================================== FAIL: test_add (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 76, in test_add self.assertEqual(self._box.get_string(keys[0]), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== ERROR: test_case_1 (test.test_netrc.NetrcTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_netrc.py", line 31, in setUp self.netrc = netrc.netrc(temp_filename) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\netrc.py", line 56, in __init__ "bad toplevel token %r" % tt, file, lexer.lineno) netrc.NetrcParseError: bad toplevel token 'line1' (@test, line 9) ====================================================================== FAIL: test_delslice (test.test_operator.OperatorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_operator.py", line 147, in test_delslice self.assertEqual(a, []) AssertionError: [9] != [] ====================================================================== FAIL: test_getslice (test.test_operator.OperatorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_operator.py", line 171, in test_getslice self.assertEqual(b, a) AssertionError: [0, 1, 2, 3, 4, 5, 6, 7, 8] != [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ====================================================================== FAIL: test_setslice (test.test_operator.OperatorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_operator.py", line 308, in test_setslice self.assertEqual(a, []) AssertionError: [3] != [] ====================================================================== ERROR: test_directory (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\buildbot\3.0.heller-windows-amd64\build\lib\io.py", line 1109, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_failures (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\buildbot\3.0.heller-windows-amd64\build\lib\io.py", line 1109, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_listdir (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\buildbot\3.0.heller-windows-amd64\build\lib\io.py", line 1109, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_open (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\buildbot\3.0.heller-windows-amd64\build\lib\io.py", line 1109, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_rename (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_pep277.py", line 40, in setUp f.write((name+'\n').encode("utf-8")) File "c:\buildbot\3.0.heller-windows-amd64\build\lib\io.py", line 1109, in write s.__class__.__name__) TypeError: can't write bytes to text stream ====================================================================== ERROR: test_bug1001011 (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 1130, in test_bug1001011 s1 = subclass("abcd") TypeError: string argument without an encoding ====================================================================== ERROR: test_capitalize (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 570, in test_capitalize self.checkequal(' hello ', ' hello ', 'capitalize') File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_center (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 704, in test_center self.checkequal('abc', 'abc', 'center', 3) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_extended_getslice (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 969, in test_extended_getslice slice(start, stop, step)) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_hash (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 558, in test_hash a = self.type2test('DNSSEC') TypeError: string argument without an encoding ====================================================================== ERROR: test_ljust (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 688, in test_ljust self.checkequal('abc', 'abc', 'ljust', 3) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_lower (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 580, in test_lower self.checkequal('hello', 'hello', 'lower') File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_mul (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 974, in test_mul self.checkequal('abc', 'abc', '__mul__', 1) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_replace (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 362, in test_replace EQ("", "", "replace", "", "") File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_rjust (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 696, in test_rjust self.checkequal('abc', 'abc', 'rjust', 3) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_slice (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 947, in test_slice self.checkequal('abc', 'abc', '__getitem__', slice(0, 1000)) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_strip (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 667, in test_strip self.checkequal('hello', 'hello', 'strip') File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_subscript (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 939, in test_subscript self.checkequal('abc', 'abc', '__getitem__', slice(0, 3)) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_upper (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 585, in test_upper self.checkequal('HELLO', 'HELLO', 'upper') File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_zfill (test.test_str.StrTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 715, in test_zfill self.checkequal('123', '123', 'zfill', 2) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\string_tests.py", line 68, in checkequal obj = subtype(obj) TypeError: string argument without an encoding ====================================================================== ERROR: test_communicate (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_subprocess.py", line 303, in test_communicate (stdout, stderr) = p.communicate("banana") File "c:\buildbot\3.0.heller-windows-amd64\build\lib\subprocess.py", line 597, in communicate return self._communicate(input) File "c:\buildbot\3.0.heller-windows-amd64\build\lib\subprocess.py", line 812, in _communicate self.stdin.write(input) File "c:\buildbot\3.0.heller-windows-amd64\build\lib\io.py", line 818, in write raise TypeError("can't write str to binary stream") TypeError: can't write str to binary stream ====================================================================== ERROR: test_no_leaking (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_subprocess.py", line 404, in test_no_leaking data = p.communicate("lime")[0] File "c:\buildbot\3.0.heller-windows-amd64\build\lib\subprocess.py", line 597, in communicate return self._communicate(input) File "c:\buildbot\3.0.heller-windows-amd64\build\lib\subprocess.py", line 812, in _communicate self.stdin.write(input) File "c:\buildbot\3.0.heller-windows-amd64\build\lib\io.py", line 818, in write raise TypeError("can't write str to binary stream") TypeError: can't write str to binary stream ====================================================================== ERROR: test_shell_sequence (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_subprocess.py", line 633, in test_shell_sequence self.assertNotEqual(p.stdout.read().find("physalis"), -1) TypeError: Type str doesn't support the buffer API ====================================================================== ERROR: test_shell_string (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_subprocess.py", line 642, in test_shell_string self.assertNotEqual(p.stdout.read().find("physalis"), -1) TypeError: Type str doesn't support the buffer API ====================================================================== FAIL: test_close_fds (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_subprocess.py", line 624, in test_close_fds self.assertEqual(rc, 47) AssertionError: 3 != 47 ====================================================================== FAIL: test_text_mode (test.test_tempfile.test_SpooledTemporaryFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_tempfile.py", line 747, in test_text_mode self.assertEqual(f.read(), "abc\ndef\nxyzzy\n") AssertionError: 'abc\n\ndef\n\nxyzzy\n\n' != 'abc\ndef\nxyzzy\n' ====================================================================== FAIL: test_alias_asterisk (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 69, in test_alias_asterisk 'SystemAsterisk', winsound.SND_ALIAS AssertionError: RuntimeError not raised by PlaySound ====================================================================== FAIL: test_alias_exclamation (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 79, in test_alias_exclamation 'SystemExclamation', winsound.SND_ALIAS AssertionError: RuntimeError not raised by PlaySound ====================================================================== FAIL: test_alias_exit (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 89, in test_alias_exit 'SystemExit', winsound.SND_ALIAS AssertionError: RuntimeError not raised by PlaySound ====================================================================== FAIL: test_alias_hand (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 99, in test_alias_hand 'SystemHand', winsound.SND_ALIAS AssertionError: RuntimeError not raised by PlaySound ====================================================================== FAIL: test_alias_nofallback (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 151, in test_alias_nofallback '!"$%&/(#+*', winsound.SND_ALIAS | winsound.SND_NODEFAULT AssertionError: RuntimeError not raised by PlaySound ====================================================================== FAIL: test_alias_question (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 109, in test_alias_question 'SystemQuestion', winsound.SND_ALIAS AssertionError: RuntimeError not raised by PlaySound ====================================================================== FAIL: test_stopasync (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 175, in test_stopasync None, winsound.SND_PURGE AssertionError: RuntimeError not raised by PlaySound sincerely, -The Buildbot From buildbot at python.org Wed Oct 24 23:31:36 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 21:31:36 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20071024213136.DB1BB1E4007@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/136 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Wed Oct 24 23:38:43 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 21:38:43 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 3.0 Message-ID: <20071024213843.712E51E403B@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%203.0/builds/113 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,guido.van.rossum BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Wed Oct 24 23:40:39 2007 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Oct 2007 23:40:39 +0200 (CEST) Subject: [Python-checkins] r58651 - in python/trunk: Doc/library/os.rst Lib/os.py Misc/NEWS Message-ID: <20071024214039.5C9121E4023@bag.python.org> Author: georg.brandl Date: Wed Oct 24 23:40:38 2007 New Revision: 58651 Modified: python/trunk/Doc/library/os.rst python/trunk/Lib/os.py python/trunk/Misc/NEWS Log: Bug #1287: make os.environ.pop() work as expected. Modified: python/trunk/Doc/library/os.rst ============================================================================== --- python/trunk/Doc/library/os.rst (original) +++ python/trunk/Doc/library/os.rst Wed Oct 24 23:40:38 2007 @@ -118,10 +118,11 @@ If the platform supports the :func:`unsetenv` function, you can delete items in this mapping to unset environment variables. :func:`unsetenv` will be called automatically when an item is deleted from ``os.environ``, and when - :meth:`os.environ.clear` is called. + one of the :meth:`pop` or :meth:`clear` methods is called. .. versionchanged:: 2.6 - Also unset environment variables when calling :meth:`os.environ.clear`. + Also unset environment variables when calling :meth:`os.environ.clear` + and :meth:`os.environ.pop`. .. function:: chdir(path) Modified: python/trunk/Lib/os.py ============================================================================== --- python/trunk/Lib/os.py (original) +++ python/trunk/Lib/os.py Wed Oct 24 23:40:38 2007 @@ -450,6 +450,9 @@ for key in self.data.keys(): unsetenv(key) del self.data[key] + def pop(self, key, *args): + unsetenv(key) + return self.data.pop(key, *args) def has_key(self, key): return key.upper() in self.data def __contains__(self, key): @@ -511,6 +514,9 @@ for key in self.data.keys(): unsetenv(key) del self.data[key] + def pop(self, key, *args): + unsetenv(key) + return self.data.pop(key, *args) def copy(self): return dict(self) Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Oct 24 23:40:38 2007 @@ -274,11 +274,14 @@ Library ------- +- Issues #1181, #1287: unsetenv() is now called when the os.environ.pop() + and os.environ.clear() methods are used. + - ctypes will now work correctly on 32-bit systems when Python is configured with --with-system-ffi. - Patch #1203: ctypes now does work on OS X when Python is built with - --disable-toolbox-glue + --disable-toolbox-glue. - collections.deque() now supports a "maxlen" argument. From buildbot at python.org Wed Oct 24 23:56:53 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 21:56:53 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20071024215653.EB95D1E4008@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/167 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,guido.van.rossum BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 00:18:26 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 22:18:26 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20071024221826.268AC1E400F@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/2321 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: matthias.klose,thomas.heller BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllib2net make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 00:54:46 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 22:54:46 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 trunk Message-ID: <20071024225446.92FB71E4008@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%20trunk/builds/345 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllibnet sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 01:08:39 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Oct 2007 23:08:39 +0000 Subject: [Python-checkins] buildbot failure in x86 mvlgcc trunk Message-ID: <20071024230839.540791E5549@bag.python.org> The Buildbot has detected a new failure of x86 mvlgcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20mvlgcc%20trunk/builds/904 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-linux Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 02:10:00 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 00:10:00 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071025001000.1C4A71E401F@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/128 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 523, in __init__ self.handle() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 299, in handle_one_request self.raw_requestline = self.rfile.readline() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/socket.py", line 366, in readline data = self._sock.recv(self._rbufsize) error: [Errno 35] Resource temporarily unavailable Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 523, in __init__ self.handle() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 299, in handle_one_request self.raw_requestline = self.rfile.readline() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/socket.py", line 366, in readline data = self._sock.recv(self._rbufsize) error: [Errno 35] Resource temporarily unavailable 1 test failed: test_xmlrpc sincerely, -The Buildbot From python-checkins at python.org Thu Oct 25 04:26:58 2007 From: python-checkins at python.org (raymond.hettinger) Date: Thu, 25 Oct 2007 04:26:58 +0200 (CEST) Subject: [Python-checkins] r58652 - python/trunk/Python/bltinmodule.c Message-ID: <20071025022658.8A7A01E4008@bag.python.org> Author: raymond.hettinger Date: Thu Oct 25 04:26:58 2007 New Revision: 58652 Modified: python/trunk/Python/bltinmodule.c Log: Missing DECREFs Modified: python/trunk/Python/bltinmodule.c ============================================================================== --- python/trunk/Python/bltinmodule.c (original) +++ python/trunk/Python/bltinmodule.c Thu Oct 25 04:26:58 2007 @@ -2121,12 +2121,14 @@ PyFPE_START_PROTECT("add", return 0) f_result += PyFloat_AS_DOUBLE(item); PyFPE_END_PROTECT(f_result) + Py_DECREF(item); continue; } if (PyInt_CheckExact(item)) { PyFPE_START_PROTECT("add", return 0) f_result += (double)PyInt_AS_LONG(item); PyFPE_END_PROTECT(f_result) + Py_DECREF(item); continue; } result = PyFloat_FromDouble(f_result); From buildbot at python.org Thu Oct 25 05:02:57 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 03:02:57 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20071025030257.E59B41E4009@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/285 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_winsound ====================================================================== FAIL: test_alias_asterisk (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 69, in test_alias_asterisk 'SystemAsterisk', winsound.SND_ALIAS AssertionError: RuntimeError not raised ====================================================================== FAIL: test_alias_exclamation (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 79, in test_alias_exclamation 'SystemExclamation', winsound.SND_ALIAS AssertionError: RuntimeError not raised ====================================================================== FAIL: test_alias_exit (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 89, in test_alias_exit 'SystemExit', winsound.SND_ALIAS AssertionError: RuntimeError not raised ====================================================================== FAIL: test_alias_hand (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 99, in test_alias_hand 'SystemHand', winsound.SND_ALIAS AssertionError: RuntimeError not raised ====================================================================== FAIL: test_alias_nofallback (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 151, in test_alias_nofallback '!"$%&/(#+*', winsound.SND_ALIAS | winsound.SND_NODEFAULT AssertionError: RuntimeError not raised ====================================================================== FAIL: test_alias_question (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 109, in test_alias_question 'SystemQuestion', winsound.SND_ALIAS AssertionError: RuntimeError not raised ====================================================================== FAIL: test_stopasync (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\trunk.heller-windows-amd64\build\lib\test\test_winsound.py", line 175, in test_stopasync None, winsound.SND_PURGE AssertionError: RuntimeError not raised sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 05:20:18 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 03:20:18 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc trunk Message-ID: <20071025032018.6D2871E402A@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%20trunk/builds/2380 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ctypes sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 07:21:32 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 05:21:32 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 3.0 Message-ID: <20071025052133.1E46A1E401E@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%203.0/builds/47 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,guido.van.rossum BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Thu Oct 25 08:37:25 2007 From: python-checkins at python.org (matthias.klose) Date: Thu, 25 Oct 2007 08:37:25 +0200 (CEST) Subject: [Python-checkins] r58653 - python/trunk/configure python/trunk/configure.in Message-ID: <20071025063725.D2EF21E402B@bag.python.org> Author: matthias.klose Date: Thu Oct 25 08:37:24 2007 New Revision: 58653 Modified: python/trunk/configure python/trunk/configure.in Log: - Build using system ffi library on arm*-linux*, pass --with-system-ffi to CONFIG_ARGS Modified: python/trunk/configure ============================================================================== --- python/trunk/configure (original) +++ python/trunk/configure Thu Oct 25 08:37:24 2007 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 57960 . +# From configure.in Revision: 58645 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 2.6. # @@ -12955,7 +12955,7 @@ if test -z "$with_system_ffi" && test "$ac_cv_header_ffi_h" = yes; then case "$ac_sys_system/`uname -m`" in - Linux/arm*) with_system_ffi="yes";; + Linux/arm*) with_system_ffi="yes"; CONFIG_ARGS="$CONFIG_ARGS --with-system-ffi";; *) with_system_ffi="no" esac fi Modified: python/trunk/configure.in ============================================================================== --- python/trunk/configure.in (original) +++ python/trunk/configure.in Thu Oct 25 08:37:24 2007 @@ -1755,7 +1755,7 @@ if test -z "$with_system_ffi" && test "$ac_cv_header_ffi_h" = yes; then case "$ac_sys_system/`uname -m`" in - Linux/arm*) with_system_ffi="yes";; + Linux/arm*) with_system_ffi="yes"; CONFIG_ARGS="$CONFIG_ARGS --with-system-ffi";; *) with_system_ffi="no" esac fi From python-checkins at python.org Thu Oct 25 08:38:01 2007 From: python-checkins at python.org (matthias.klose) Date: Thu, 25 Oct 2007 08:38:01 +0200 (CEST) Subject: [Python-checkins] r58654 - python/branches/release25-maint/configure python/branches/release25-maint/configure.in Message-ID: <20071025063801.E2C041E400F@bag.python.org> Author: matthias.klose Date: Thu Oct 25 08:38:01 2007 New Revision: 58654 Modified: python/branches/release25-maint/configure python/branches/release25-maint/configure.in Log: - Build using system ffi library on arm*-linux*, pass --with-system-ffi to CONFIG_ARGS Modified: python/branches/release25-maint/configure ============================================================================== --- python/branches/release25-maint/configure (original) +++ python/branches/release25-maint/configure Thu Oct 25 08:38:01 2007 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 57905 . +# From configure.in Revision: 58647 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 2.5. # @@ -12433,7 +12433,7 @@ if test -z "$with_system_ffi" && test "$ac_cv_header_ffi_h" = yes; then case "$ac_sys_system/`uname -m`" in - Linux/arm*) with_system_ffi="yes";; + Linux/arm*) with_system_ffi="yes"; CONFIG_ARGS="$CONFIG_ARGS --with-system-ffi";; *) with_system_ffi="no" esac fi Modified: python/branches/release25-maint/configure.in ============================================================================== --- python/branches/release25-maint/configure.in (original) +++ python/branches/release25-maint/configure.in Thu Oct 25 08:38:01 2007 @@ -1728,7 +1728,7 @@ if test -z "$with_system_ffi" && test "$ac_cv_header_ffi_h" = yes; then case "$ac_sys_system/`uname -m`" in - Linux/arm*) with_system_ffi="yes";; + Linux/arm*) with_system_ffi="yes"; CONFIG_ARGS="$CONFIG_ARGS --with-system-ffi";; *) with_system_ffi="no" esac fi From buildbot at python.org Thu Oct 25 08:38:34 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 06:38:34 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI trunk Message-ID: <20071025063834.F26FE1E400F@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%20trunk/builds/49 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: raymond.hettinger BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 09:10:58 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 07:10:58 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD trunk Message-ID: <20071025071059.774331E400C@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%20trunk/builds/72 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: matthias.klose BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket_ssl sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 09:25:32 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 07:25:32 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20071025072533.160EC1E400A@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/292 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: matthias.klose BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc ====================================================================== ERROR: test_fail_no_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 497, in test_fail_no_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1006, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 932, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer ====================================================================== ERROR: test_fail_with_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 517, in test_fail_with_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1006, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 932, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 09:37:15 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 07:37:15 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-3 2.5 Message-ID: <20071025073715.A5E371E402D@bag.python.org> The Buildbot has detected a new failure of x86 XP-3 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-3%202.5/builds/85 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: matthias.klose BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllibnet sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 10:00:48 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 08:00:48 +0000 Subject: [Python-checkins] buildbot failure in alpha Tru64 5.1 2.5 Message-ID: <20071025080049.25F8D1E402A@bag.python.org> The Buildbot has detected a new failure of alpha Tru64 5.1 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Tru64%205.1%202.5/builds/340 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-tru64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: matthias.klose BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 10:20:20 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 08:20:20 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD 2.5 Message-ID: <20071025082020.E63EF1E400A@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%202.5/builds/33 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: matthias.klose BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_timeout sincerely, -The Buildbot From nnorwitz at gmail.com Thu Oct 25 11:44:09 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 25 Oct 2007 05:44:09 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071025094409.GA13153@python.psfb.org> svn update tools/sphinx Fetching external item into 'tools/sphinx/jinja' External at revision 58654. At revision 58654. svn update tools/docutils At revision 58654. svn update tools/pygments svn: REPORT request failed on '/projects/!svn/vcc/default' svn: Target path does not exist make: *** [update] Error 1 From buildbot at python.org Thu Oct 25 18:56:40 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 16:56:40 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 2.5 Message-ID: <20071025165641.29A501E400A@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%202.5/builds/14 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: matthias.klose BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '1001-1001-1001-1001-1001' Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '0002-0002-0002-0002-0002' Traceback (most recent call last): File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 460, in __bootstrap self.run() File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/bsddb/test/test_thread.py", line 260, in writerThread self.assertEqual(data, self.makeData(key)) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/unittest.py", line 334, in failUnlessEqual (msg or '%r != %r' % (first, second)) AssertionError: None != '2000-2000-2000-2000-2000' 1 test failed: test_resource Traceback (most recent call last): File "./Lib/test/regrtest.py", line 549, in runtest_inner the_package = __import__(abstest, globals(), locals(), []) File "/home/pybot/buildarea-armeabi/2.5.klose-linux-armeabi/build/Lib/test/test_resource.py", line 42, in f.close() IOError: [Errno 27] File too large make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 20:09:00 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 18:09:00 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI trunk Message-ID: <20071025180900.D3A4E1E4026@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%20trunk/builds/51 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: matthias.klose BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Thu Oct 25 21:47:32 2007 From: python-checkins at python.org (thomas.heller) Date: Thu, 25 Oct 2007 21:47:32 +0200 (CEST) Subject: [Python-checkins] r58655 - python/trunk/Modules/_ctypes/cfield.c Message-ID: <20071025194732.F3C7C1E4021@bag.python.org> Author: thomas.heller Date: Thu Oct 25 21:47:32 2007 New Revision: 58655 Modified: python/trunk/Modules/_ctypes/cfield.c Log: ffi_type_longdouble may be already #defined. See issue 1324. Modified: python/trunk/Modules/_ctypes/cfield.c ============================================================================== --- python/trunk/Modules/_ctypes/cfield.c (original) +++ python/trunk/Modules/_ctypes/cfield.c Thu Oct 25 21:47:32 2007 @@ -1753,11 +1753,13 @@ ffi_type ffi_type_float = { sizeof(float), FLOAT_ALIGN, FFI_TYPE_FLOAT }; ffi_type ffi_type_double = { sizeof(double), DOUBLE_ALIGN, FFI_TYPE_DOUBLE }; + +#ifdef ffi_type_longdouble +#undef ffi_type_longdouble +#endif ffi_type ffi_type_longdouble = { sizeof(long double), LONGDOUBLE_ALIGN, FFI_TYPE_LONGDOUBLE }; -/* ffi_type ffi_type_longdouble */ - ffi_type ffi_type_pointer = { sizeof(void *), VOID_P_ALIGN, FFI_TYPE_POINTER }; /*---------------- EOF ----------------*/ From buildbot at python.org Thu Oct 25 22:43:58 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 20:43:58 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071025204358.273091E4017@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/131 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_timeout sincerely, -The Buildbot From buildbot at python.org Thu Oct 25 23:12:55 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 21:12:55 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071025211255.D45B11E4017@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/245 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: thomas.heller BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From nnorwitz at gmail.com Thu Oct 25 23:50:47 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 25 Oct 2007 17:50:47 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071025215047.GA15051@python.psfb.org> svn update tools/sphinx Fetching external item into 'tools/sphinx/jinja' External at revision 58655. At revision 58655. svn update tools/docutils At revision 58655. svn update tools/pygments svn: REPORT request failed on '/projects/!svn/vcc/default' svn: Target path does not exist make: *** [update] Error 1 From python-checkins at python.org Fri Oct 26 00:43:45 2007 From: python-checkins at python.org (kurt.kaiser) Date: Fri, 26 Oct 2007 00:43:45 +0200 (CEST) Subject: [Python-checkins] r58656 - python/trunk/Lib/idlelib/WidgetRedirector.py Message-ID: <20071025224345.DA66D1E4017@bag.python.org> Author: kurt.kaiser Date: Fri Oct 26 00:43:45 2007 New Revision: 58656 Modified: python/trunk/Lib/idlelib/WidgetRedirector.py Log: Correct an ancient bug in an unused path by removing that path: register() is now idempotent. Modified: python/trunk/Lib/idlelib/WidgetRedirector.py ============================================================================== --- python/trunk/Lib/idlelib/WidgetRedirector.py (original) +++ python/trunk/Lib/idlelib/WidgetRedirector.py Fri Oct 26 00:43:45 2007 @@ -29,13 +29,9 @@ tk.call("rename", orig, w) def register(self, name, function): - if self.dict.has_key(name): - previous = dict[name] - else: - previous = OriginalCommand(self, name) self.dict[name] = function setattr(self.widget, name, function) - return previous + return OriginalCommand(self, name) def unregister(self, name): if self.dict.has_key(name): From buildbot at python.org Fri Oct 26 01:26:14 2007 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Oct 2007 23:26:14 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD trunk Message-ID: <20071025232614.566121E4017@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%20trunk/builds/74 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Fri Oct 26 02:10:10 2007 From: python-checkins at python.org (kurt.kaiser) Date: Fri, 26 Oct 2007 02:10:10 +0200 (CEST) Subject: [Python-checkins] r58660 - python/trunk/Lib/idlelib/WidgetRedirector.py Message-ID: <20071026001010.0D52B1E4017@bag.python.org> Author: kurt.kaiser Date: Fri Oct 26 02:10:09 2007 New Revision: 58660 Modified: python/trunk/Lib/idlelib/WidgetRedirector.py Log: 1. Add comments to provide top-level documentation. 2. Refactor to use more descriptive names. 3. Enhance tests in main(). Modified: python/trunk/Lib/idlelib/WidgetRedirector.py ============================================================================== --- python/trunk/Lib/idlelib/WidgetRedirector.py (original) +++ python/trunk/Lib/idlelib/WidgetRedirector.py Fri Oct 26 02:10:09 2007 @@ -1,17 +1,38 @@ from Tkinter import * - class WidgetRedirector: - """Support for redirecting arbitrary widget subcommands.""" + """Support for redirecting arbitrary widget subcommands. + + Some Tk operations don't normally pass through Tkinter. For example, if a + character is inserted into a Text widget by pressing a key, a default Tk + binding to the widget's 'insert' operation is activated, and the Tk library + processes the insert without calling back into Tkinter. + + Although a binding to could be made via Tkinter, what we really want + to do is to hook the Tk 'insert' operation itself. + + When a widget is instantiated, a Tcl command is created whose name is the + same as the pathname widget._w. This command is used to invoke the various + widget operations, e.g. insert (for a Text widget). We are going to hook + this command and provide a facility ('register') to intercept the widget + operation. + + In IDLE, the function being registered provides access to the top of a + Percolator chain. At the bottom of the chain is a call to the original + Tk widget operation. + """ def __init__(self, widget): - self.dict = {} - self.widget = widget - self.tk = tk = widget.tk - w = widget._w + self._operations = {} + self.widget = widget # widget instance + self.tk = tk = widget.tk # widget's root + w = widget._w # widget's (full) Tk pathname self.orig = w + "_orig" + # Rename the Tcl command within Tcl: tk.call("rename", w, self.orig) + # Create a new Tcl command whose name is the widget's pathname, and + # whose action is to dispatch on the operation passed to the widget: tk.createcommand(w, self.dispatch) def __repr__(self): @@ -19,70 +40,87 @@ self.widget._w) def close(self): - for name in self.dict.keys(): - self.unregister(name) + for operation in self._operations: + self.unregister(operation) widget = self.widget; del self.widget orig = self.orig; del self.orig tk = widget.tk w = widget._w tk.deletecommand(w) + # restore the original widget Tcl command: tk.call("rename", orig, w) - def register(self, name, function): - self.dict[name] = function - setattr(self.widget, name, function) - return OriginalCommand(self, name) - - def unregister(self, name): - if self.dict.has_key(name): - function = self.dict[name] - del self.dict[name] - if hasattr(self.widget, name): - delattr(self.widget, name) + def register(self, operation, function): + self._operations[operation] = function + setattr(self.widget, operation, function) + return OriginalCommand(self, operation) + + def unregister(self, operation): + if operation in self._operations: + function = self._operations[operation] + del self._operations[operation] + if hasattr(self.widget, operation): + delattr(self.widget, operation) return function else: return None - def dispatch(self, cmd, *args): - m = self.dict.get(cmd) + def dispatch(self, operation, *args): + '''Callback from Tcl which runs when the widget is referenced. + + If an operation has been registered in self._operations, apply the + associated function to the args passed into Tcl. Otherwise, pass the + operation through to Tk via the original Tcl function. + + Note that if a registered function is called, the operation is not + passed through to Tk. Apply the function returned by self.register() + to *args to accomplish that. For an example, see ColorDelegator.py. + + ''' + m = self._operations.get(operation) try: if m: return m(*args) else: - return self.tk.call((self.orig, cmd) + args) + return self.tk.call((self.orig, operation) + args) except TclError: return "" class OriginalCommand: - def __init__(self, redir, name): + def __init__(self, redir, operation): self.redir = redir - self.name = name + self.operation = operation self.tk = redir.tk self.orig = redir.orig self.tk_call = self.tk.call - self.orig_and_name = (self.orig, self.name) + self.orig_and_operation = (self.orig, self.operation) def __repr__(self): - return "OriginalCommand(%r, %r)" % (self.redir, self.name) + return "OriginalCommand(%r, %r)" % (self.redir, self.operation) def __call__(self, *args): - return self.tk_call(self.orig_and_name + args) + return self.tk_call(self.orig_and_operation + args) def main(): root = Tk() + root.wm_protocol("WM_DELETE_WINDOW", root.quit) text = Text() text.pack() text.focus_set() redir = WidgetRedirector(text) - global orig_insert + global previous_tcl_fcn def my_insert(*args): print "insert", args - orig_insert(*args) - orig_insert = redir.register("insert", my_insert) + previous_tcl_fcn(*args) + previous_tcl_fcn = redir.register("insert", my_insert) + root.mainloop() + redir.unregister("insert") # runs after first 'close window' + redir.close() root.mainloop() + root.destroy() if __name__ == "__main__": main() From python-checkins at python.org Fri Oct 26 04:20:32 2007 From: python-checkins at python.org (phillip.eby) Date: Fri, 26 Oct 2007 04:20:32 +0200 (CEST) Subject: [Python-checkins] r58661 - sandbox/trunk/setuptools/pydoc.py Message-ID: <20071026022032.45CC31E4017@bag.python.org> Author: phillip.eby Date: Fri Oct 26 04:20:31 2007 New Revision: 58661 Modified: sandbox/trunk/setuptools/pydoc.py Log: Fix dependency on Python 2.5 Modified: sandbox/trunk/setuptools/pydoc.py ============================================================================== --- sandbox/trunk/setuptools/pydoc.py (original) +++ sandbox/trunk/setuptools/pydoc.py Fri Oct 26 04:20:31 2007 @@ -321,8 +321,6 @@ # identifies something in a way that pydoc itself has issues handling; # think 'super' and how it is a descriptor (which raises the exception # by lacking a __name__ attribute) and an instance. - if inspect.isgetsetdescriptor(object): return self.docdata(*args) - if inspect.ismemberdescriptor(object): return self.docdata(*args) try: if inspect.ismodule(object): return self.docmodule(*args) if inspect.isclass(object): return self.docclass(*args) @@ -338,7 +336,7 @@ name and ' ' + repr(name), type(object).__name__) raise TypeError, message - docmodule = docclass = docroutine = docother = docproperty = docdata = fail + docmodule = docclass = docroutine = docother = fail def getdocloc(self, object): """Return the location of module docs or None""" @@ -920,10 +918,6 @@ lhs = name and '%s = ' % name or '' return lhs + self.repr(object) - def docdata(self, object, name=None, mod=None, cl=None): - """Produce html documentation for a data descriptor.""" - return self._docdescriptor(name, object, mod) - def index(self, dir, shadowed=None): """Generate an HTML index for a directory of modules.""" modpkgs = [] @@ -1277,10 +1271,6 @@ """Produce text documentation for a property.""" return self._docdescriptor(name, object, mod) - def docdata(self, object, name=None, mod=None, cl=None): - """Produce text documentation for a data descriptor.""" - return self._docdescriptor(name, object, mod) - def docother(self, object, name=None, mod=None, parent=None, maxlen=None, doc=None): """Produce text documentation for a data object.""" repr = self.repr(object) @@ -1410,14 +1400,6 @@ return 'module ' + thing.__name__ if inspect.isbuiltin(thing): return 'built-in function ' + thing.__name__ - if inspect.isgetsetdescriptor(thing): - return 'getset descriptor %s.%s.%s' % ( - thing.__objclass__.__module__, thing.__objclass__.__name__, - thing.__name__) - if inspect.ismemberdescriptor(thing): - return 'member descriptor %s.%s.%s' % ( - thing.__objclass__.__module__, thing.__objclass__.__name__, - thing.__name__) if inspect.isclass(thing): return 'class ' + thing.__name__ if inspect.isfunction(thing): @@ -1474,8 +1456,6 @@ if not (inspect.ismodule(object) or inspect.isclass(object) or inspect.isroutine(object) or - inspect.isgetsetdescriptor(object) or - inspect.ismemberdescriptor(object) or isinstance(object, property)): # If the passed object is a piece of data or an instance, # document its available methods instead of its value. From buildbot at python.org Fri Oct 26 07:24:19 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 26 Oct 2007 05:24:19 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 3.0 Message-ID: <20071026052419.E0EBC1E401E@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%203.0/builds/49 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Fri Oct 26 09:03:49 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 26 Oct 2007 07:03:49 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI trunk Message-ID: <20071026070349.484711E401E@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%20trunk/builds/54 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From nnorwitz at gmail.com Fri Oct 26 11:43:49 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 26 Oct 2007 05:43:49 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071026094349.GA19212@python.psfb.org> svn update tools/sphinx Fetching external item into 'tools/sphinx/jinja' External at revision 58670. At revision 58670. svn update tools/docutils At revision 58670. svn update tools/pygments svn: REPORT request failed on '/projects/!svn/vcc/default' svn: Target path does not exist make: *** [update] Error 1 From buildbot at python.org Fri Oct 26 19:55:00 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 26 Oct 2007 17:55:00 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20071026175500.EE7DA1E4002@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/174 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Fri Oct 26 20:30:41 2007 From: python-checkins at python.org (georg.brandl) Date: Fri, 26 Oct 2007 20:30:41 +0200 (CEST) Subject: [Python-checkins] r58675 - python/trunk/Lib/os.py Message-ID: <20071026183041.AB4B91E402D@bag.python.org> Author: georg.brandl Date: Fri Oct 26 20:30:41 2007 New Revision: 58675 Modified: python/trunk/Lib/os.py Log: Fix new pop() method on os.environ on ignorecase-platforms. Modified: python/trunk/Lib/os.py ============================================================================== --- python/trunk/Lib/os.py (original) +++ python/trunk/Lib/os.py Fri Oct 26 20:30:41 2007 @@ -452,7 +452,7 @@ del self.data[key] def pop(self, key, *args): unsetenv(key) - return self.data.pop(key, *args) + return self.data.pop(key.upper(), *args) def has_key(self, key): return key.upper() in self.data def __contains__(self, key): From nnorwitz at gmail.com Sat Oct 27 00:06:06 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 26 Oct 2007 18:06:06 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20071026220606.GA4447@python.psfb.org> test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_StringIO test___all__ test___future__ test__locale test_abc test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat WARNING: failed to listen on port 54322, trying another WARNING: failed to listen on port 9907, trying another WARNING: failed to listen on port 10243, trying another WARNING: failed to listen on port 32999, trying another test test_asynchat failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_asynchat.py", line 181, in test_string_producer self.assertEqual(c.contents, ["hello world", "I'm not dead yet!"]) AssertionError: [] != ['hello world', "I'm not dead yet!"] test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bz2 test_cProfile test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd_line test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_cn skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_hk test_codecmaps_hk skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_jp test_codecmaps_jp skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_kr test_codecmaps_kr skipped -- Use of the `urlfetch' resource not enabled test_codecmaps_tw test_codecmaps_tw skipped -- Use of the `urlfetch' resource not enabled test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_float test_fnmatch test_fork1 test_format test_fpformat test_frozen test_ftplib test_funcattrs test_functools test_future test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hexoct test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_largefile test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_mutants test_netrc test_new test_nis test_normalization test_normalization skipped -- Use of the `urlfetch' resource not enabled test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_platform test_plistlib test_plistlib skipped -- No module named plistlib test_poll test_popen [7357 refs] [7357 refs] [7357 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_profile test_profilehooks test_pty test_pwd test_pyclbr test_pyexpat test_queue test_quopri [7732 refs] [7732 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site test_slice test_smtplib test_socket test_socket_ssl /tmp/python-test/local/lib/python2.6/test/test_socket_ssl.py:94: DeprecationWarning: socket.ssl() is deprecated. Use ssl.wrap_socket() instead. ssl_sock = socket.ssl(s) test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [7352 refs] [7353 refs] [7352 refs] [7352 refs] [7352 refs] [7352 refs] [7352 refs] [7352 refs] [7352 refs] [7352 refs] [7353 refs] [8966 refs] [7568 refs] [7353 refs] [7352 refs] [7352 refs] [7352 refs] [7352 refs] [7352 refs] . [7352 refs] [7352 refs] this bit of output is from a test of stdout in a different process ... [7352 refs] [7352 refs] [7568 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [7352 refs] [7352 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [7356 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 296 tests OK. 1 test failed: test_asynchat 35 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses test_gl test_imageop test_imgfile test_ioctl test_linuxaudiodev test_macostools test_normalization test_ossaudiodev test_pep277 test_plistlib test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 1 skip unexpected on linux2: test_ioctl [507107 refs] From buildbot at python.org Sat Oct 27 00:22:57 2007 From: buildbot at python.org (buildbot at python.org) Date: Fri, 26 Oct 2007 22:22:57 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu 3.0 Message-ID: <20071026222257.DDB051E47DC@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%203.0/builds/162 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 37 sincerely, -The Buildbot From nnorwitz at gmail.com Sat Oct 27 01:41:57 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 26 Oct 2007 19:41:57 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071026234157.GA14699@python.psfb.org> svn update tools/sphinx Fetching external item into 'tools/sphinx/jinja' External at revision 58681. At revision 58681. svn update tools/docutils At revision 58681. svn update tools/pygments svn: REPORT request failed on '/projects/!svn/vcc/default' svn: Target path does not exist make: *** [update] Error 1 From buildbot at python.org Sat Oct 27 06:53:45 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Oct 2007 04:53:45 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20071027045345.6B48C1E4002@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/179 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 12 tests failed: test_csv test_dumbdbm test_fileinput test_format test_getargs2 test_gettext test_mailbox test_netrc test_pep277 test_subprocess test_tempfile test_winsound ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 500, in test_read_escape_fieldsep self.readerAssertEqual('abc\\,def\r\n', [['abc,def']]) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestQuotedEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 513, in test_read_escape_fieldsep self.readerAssertEqual('"abc\\,def"\r\n', [['abc,def']]) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== ERROR: test_line_endings (test.test_dumbdbm.DumbDBMTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_dumbdbm.py", line 121, in test_line_endings f = dumbdbm.open(_fname) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\dumbdbm.py", line 256, in open return _Database(file, mode) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\dumbdbm.py", line 73, in __init__ self._update() File "C:\buildbot\3.0.heller-windows-amd64\build\lib\dumbdbm.py", line 85, in _update key, pos_and_siz_pair = eval(line) File "", line 0 ^ SyntaxError: unexpected EOF while parsing ====================================================================== FAIL: test_buffer_sizes (test.test_fileinput.BufferSizesTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_fileinput.py", line 42, in test_buffer_sizes self.buffer_size_test(t1, t2, t3, t4, bs, round) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_fileinput.py", line 119, in buffer_size_test self.assertNotEqual(m, None) AssertionError: None == None Traceback (most recent call last): File "../lib/test/regrtest.py", line 586, in runtest_inner the_package = __import__(abstest, globals(), locals(), []) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_format.py", line 43, in testformat("%.*d", (sys.maxint,1)) # expect overflow File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_format.py", line 22, in testformat result = formatstr % args MemoryError ====================================================================== ERROR: test_n (test.test_getargs2.Signed_TestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_getargs2.py", line 190, in test_n self.failUnlessEqual(99, getargs_n(Long())) TypeError: 'Long' object cannot be interpreted as an integer ====================================================================== ERROR: test_weird_metadata (test.test_gettext.WeirdMetadataTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_gettext.py", line 335, in test_weird_metadata self.assertEqual(info['last-translator'], KeyError: 'last-translator' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 701, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 334, in test_popitem self.assertEqual(int(msg.get_payload()), keys.index(key)) ValueError: invalid literal for int() with base 10: 'From: foo 0' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 701, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 334, in test_popitem self.assertEqual(int(msg.get_payload()), keys.index(key)) ValueError: invalid literal for int() with base 10: 'From: foo 0' ====================================================================== ERROR: test_flush (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 924, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 334, in test_popitem self.assertEqual(int(msg.get_payload()), keys.index(key)) ValueError: invalid literal for int() with base 10: 'From: foo *** EOOH *** From: foo 0 1,, From: foo *** EOOH *** From: foo 1 1,, From: foo *** EOOH *** From: foo 2 1,, From: foo *** EOOH *** From: foo 3 ' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMaildir) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 410, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: 'Return-Path: \nX-Original-To: gkj+person at localhost\nDelivered-To: gkj+person at localhost\nReceived: from localhost (localhost [127.0.0.1])\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nDelivered-To: gkj at sundance.gregorykjohnson.com\nReceived: from localhost [127.0.0.1]\n by localhost with POP3 (fetchmail-6.2.5)\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nDate: Wed, 13 Jul 2005 17:23:11 -0400\nFrom: "Gregory K. Johnson" \nTo: gkj at gregorykjohnson.com\nSubject: Sample message\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\nMime-Version: 1.0\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\nContent-Disposition: inline\nUser-Agent: Mutt/1.5.9i\n\n\n--NMuMz9nt05w80d4+\nContent-Type: text/plain; charset=us-ascii\nContent-Disposition: inline\n\nThis is a sample message.\n\n--\nGregory K. Johnson\n\n--NMuMz9nt05w80d4+\nContent-Type: application/octet-stream\nContent-Disposition: attachment; filename="text.gz"\nContent-Transfer-Encoding: base64\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n3FYlAAAA\n\n--NMuMz9nt05w80d4+--\n' != 'Return-Path: \r\nX-Original-To: gkj+person at localhost\r\nDelivered-To: gkj+person at localhost\r\nReceived: from localhost (localhost [127.0.0.1])\r\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\r\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nDelivered-To: gkj at sundance.gregorykjohnson.com\r\nReceived: from localhost [127.0.0.1]\r\n by localhost with POP3 (fetchmail-6.2.5)\r\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\r\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\r\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\r\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nDate: Wed, 13 Jul 2005 17:23:11 -0400\r\nFrom: "Gregory K. Johnson" \r\nTo: gkj at gregorykjohnson.com\r\nSubject: Sample message\r\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\r\nMime-Version: 1.0\r\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\r\nContent-Disposition: inline\r\nUser-Agent: Mutt/1.5.9i\r\n\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Disposition: inline\r\n\r\nThis is a sample message.\r\n\r\n--\r\nGregory K. Johnson\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename="text.gz"\r\nContent-Transfer-Encoding: base64\r\n\r\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\r\n3FYlAAAA\r\n\r\n--NMuMz9nt05w80d4+--\r\n' ====================================================================== FAIL: test_add (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 77, in test_add self.assertEqual(self._box.get_string(keys[0]), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_add_from_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 708, in test_add_from_string self.assertEqual(self._box[key].get_from(), 'foo at bar blah') AssertionError: 'foo at bar blah\n' != 'foo at bar blah' ====================================================================== FAIL: test_close (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 387, in test_close self._test_flush_or_close(self._box.close) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 400, in _test_flush_or_close self.assert_(self._box.get_string(key) in contents) AssertionError: None ====================================================================== FAIL: test_delitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 87, in test_delitem self._test_remove_or_delitem(self._box.__delitem__) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n1' != 'From: foo\n\n1' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 410, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: 'Return-Path: \nX-Original-To: gkj+person at localhost\nDelivered-To: gkj+person at localhost\nReceived: from localhost (localhost [127.0.0.1])\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nDelivered-To: gkj at sundance.gregorykjohnson.com\nReceived: from localhost [127.0.0.1]\n by localhost with POP3 (fetchmail-6.2.5)\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nDate: Wed, 13 Jul 2005 17:23:11 -0400\nFrom: "Gregory K. Johnson" \nTo: gkj at gregorykjohnson.com\nSubject: Sample message\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\nMime-Version: 1.0\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\nContent-Disposition: inline\nUser-Agent: Mutt/1.5.9i\n\n\n--NMuMz9nt05w80d4+\nContent-Type: text/plain; charset=us-ascii\nContent-Disposition: inline\n\nThis is a sample message.\n\n--\nGregory K. Johnson\n\n--NMuMz9nt05w80d4+\nContent-Type: application/octet-stream\nContent-Disposition: attachment; filename="text.gz"\nContent-Transfer-Encoding: base64\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n3FYlAAAA\n\n--NMuMz9nt05w80d4+--\n' != 'Return-Path: \r\nX-Original-To: gkj+person at localhost\r\nDelivered-To: gkj+person at localhost\r\nReceived: from localhost (localhost [127.0.0.1])\r\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\r\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nDelivered-To: gkj at sundance.gregorykjohnson.com\r\nReceived: from localhost [127.0.0.1]\r\n by localhost with POP3 (fetchmail-6.2.5)\r\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\r\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\r\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\r\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nDate: Wed, 13 Jul 2005 17:23:11 -0400\r\nFrom: "Gregory K. Johnson" \r\nTo: gkj at gregorykjohnson.com\r\nSubject: Sample message\r\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\r\nMime-Version: 1.0\r\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\r\nContent-Disposition: inline\r\nUser-Agent: Mutt/1.5.9i\r\n\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Disposition: inline\r\n\r\nThis is a sample message.\r\n\r\n--\r\nGregory K. Johnson\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename="text.gz"\r\nContent-Transfer-Encoding: base64\r\n\r\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\r\n3FYlAAAA\r\n\r\n--NMuMz9nt05w80d4+--\r\n' ====================================================================== FAIL: test_flush (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 375, in test_flush self._test_flush_or_close(self._box.flush) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 400, in _test_flush_or_close self.assert_(self._box.get_string(key) in contents) AssertionError: None ====================================================================== FAIL: test_get (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 129, in test_get self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_file (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 172, in test_get_file self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_get_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 156, in test_get_message self.assertEqual(msg0['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 164, in test_get_string self.assertEqual(self._box.get_string(key0), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_getitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 144, in test_getitem self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_items (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 205, in test_items self._check_iteration(self._box.items, do_keys=True, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iter (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 192, in test_iter do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iteritems (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 201, in test_iteritems do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_itervalues (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 187, in test_itervalues do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_open_close_open (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 727, in test_open_close_open self.assert_(self._box.get_string(key) in values) AssertionError: None ====================================================================== FAIL: test_pop (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 311, in test_pop self.assertEqual(self._box.pop(key0).get_payload(), '0') AssertionError: 'From: foo\n\n0' != '0' ====================================================================== FAIL: test_remove (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 83, in test_remove self._test_remove_or_delitem(self._box.remove) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n1' != 'From: foo\n\n1' ====================================================================== FAIL: test_set_item (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 270, in test_set_item self._template % 'original 0') AssertionError: '\nFrom: foo\n\noriginal 0' != 'From: foo\n\noriginal 0' ====================================================================== FAIL: test_update (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 348, in test_update self._template % 'changed 0') AssertionError: '\nFrom: foo\n\nchanged 0' != 'From: foo\n\nchanged 0' ====================================================================== FAIL: test_values (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 196, in test_values self._check_iteration(self._box.values, do_keys=False, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_add (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 77, in test_add self.assertEqual(self._box.get_string(keys[0]), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_add_from_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 708, in test_add_from_string self.assertEqual(self._box[key].get_from(), 'foo at bar blah') AssertionError: 'foo at bar blah\n' != 'foo at bar blah' ====================================================================== FAIL: test_close (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 387, in test_close self._test_flush_or_close(self._box.close) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 398, in _test_flush_or_close self.assertEqual(len(keys), 3) AssertionError: 0 != 3 ====================================================================== FAIL: test_delitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 87, in test_delitem self._test_remove_or_delitem(self._box.__delitem__) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n1' != 'From: foo\n\n1' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 410, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: 'Return-Path: \nX-Original-To: gkj+person at localhost\nDelivered-To: gkj+person at localhost\nReceived: from localhost (localhost [127.0.0.1])\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nDelivered-To: gkj at sundance.gregorykjohnson.com\nReceived: from localhost [127.0.0.1]\n by localhost with POP3 (fetchmail-6.2.5)\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nDate: Wed, 13 Jul 2005 17:23:11 -0400\nFrom: "Gregory K. Johnson" \nTo: gkj at gregorykjohnson.com\nSubject: Sample message\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\nMime-Version: 1.0\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\nContent-Disposition: inline\nUser-Agent: Mutt/1.5.9i\n\n\n--NMuMz9nt05w80d4+\nContent-Type: text/plain; charset=us-ascii\nContent-Disposition: inline\n\nThis is a sample message.\n\n--\nGregory K. Johnson\n\n--NMuMz9nt05w80d4+\nContent-Type: application/octet-stream\nContent-Disposition: attachment; filename="text.gz"\nContent-Transfer-Encoding: base64\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n3FYlAAAA\n\n--NMuMz9nt05w80d4+--\n' != 'Return-Path: \r\nX-Original-To: gkj+person at localhost\r\nDelivered-To: gkj+person at localhost\r\nReceived: from localhost (localhost [127.0.0.1])\r\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\r\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nDelivered-To: gkj at sundance.gregorykjohnson.com\r\nReceived: from localhost [127.0.0.1]\r\n by localhost with POP3 (fetchmail-6.2.5)\r\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\r\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\r\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\r\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nDate: Wed, 13 Jul 2005 17:23:11 -0400\r\nFrom: "Gregory K. Johnson" \r\nTo: gkj at gregorykjohnson.com\r\nSubject: Sample message\r\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\r\nMime-Version: 1.0\r\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\r\nContent-Disposition: inline\r\nUser-Agent: Mutt/1.5.9i\r\n\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Disposition: inline\r\n\r\nThis is a sample message.\r\n\r\n--\r\nGregory K. Johnson\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename="text.gz"\r\nContent-Transfer-Encoding: base64\r\n\r\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\r\n3FYlAAAA\r\n\r\n--NMuMz9nt05w80d4+--\r\n' ====================================================================== FAIL: test_flush (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 375, in test_flush self._test_flush_or_close(self._box.flush) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 398, in _test_flush_or_close self.assertEqual(len(keys), 3) AssertionError: 0 != 3 ====================================================================== FAIL: test_get (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 129, in test_get self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_file (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 172, in test_get_file self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_get_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 156, in test_get_message self.assertEqual(msg0['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 164, in test_get_string self.assertEqual(self._box.get_string(key0), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_getitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 144, in test_getitem self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_items (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 205, in test_items self._check_iteration(self._box.items, do_keys=True, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iter (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 192, in test_iter do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iteritems (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 201, in test_iteritems do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_itervalues (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 187, in test_itervalues do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_open_close_open (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 725, in test_open_close_open self.assertEqual(len(self._box), 3) AssertionError: 0 != 3 ====================================================================== FAIL: test_pop (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 311, in test_pop self.assertEqual(self._box.pop(key0).get_payload(), '0') AssertionError: 'From: foo\n\n0' != '0' ====================================================================== FAIL: test_remove (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 83, in test_remove self._test_remove_or_delitem(self._box.remove) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n1' != 'From: foo\n\n1' ====================================================================== FAIL: test_set_item (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 270, in test_set_item self._template % 'original 0') AssertionError: '\nFrom: foo\n\noriginal 0' != 'From: foo\n\noriginal 0' ====================================================================== FAIL: test_update (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 348, in test_update self._template % 'changed 0') AssertionError: '\nFrom: foo\n\nchanged 0' != 'From: foo\n\nchanged 0' ====================================================================== FAIL: test_values (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 196, in test_values self._check_iteration(self._box.values, do_keys=False, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 410, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: 'Return-Path: \nX-Original-To: gkj+person at localhost\nDelivered-To: gkj+person at localhost\nReceived: from localhost (localhost [127.0.0.1])\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nDelivered-To: gkj at sundance.gregorykjohnson.com\nReceived: from localhost [127.0.0.1]\n by localhost with POP3 (fetchmail-6.2.5)\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nDate: Wed, 13 Jul 2005 17:23:11 -0400\nFrom: "Gregory K. Johnson" \nTo: gkj at gregorykjohnson.com\nSubject: Sample message\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\nMime-Version: 1.0\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\nContent-Disposition: inline\nUser-Agent: Mutt/1.5.9i\n\n\n--NMuMz9nt05w80d4+\nContent-Type: text/plain; charset=us-ascii\nContent-Disposition: inline\n\nThis is a sample message.\n\n--\nGregory K. Johnson\n\n--NMuMz9nt05w80d4+\nContent-Type: application/octet-stream\nContent-Disposition: attachment; filename="text.gz"\nContent-Transfer-Encoding: base64\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n3FYlAAAA\n\n--NMuMz9nt05w80d4+--\n' != 'Return-Path: \r\nX-Original-To: gkj+person at localhost\r\nDelivered-To: gkj+person at localhost\r\nReceived: from localhost (localhost [127.0.0.1])\r\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\r\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nDelivered-To: gkj at sundance.gregorykjohnson.com\r\nReceived: from localhost [127.0.0.1]\r\n by localhost with POP3 (fetchmail-6.2.5)\r\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\r\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\r\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\r\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nDate: Wed, 13 Jul 2005 17:23:11 -0400\r\nFrom: "Gregory K. Johnson" \r\nTo: gkj at gregorykjohnson.com\r\nSubject: Sample message\r\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\r\nMime-Version: 1.0\r\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\r\nContent-Disposition: inline\r\nUser-Agent: Mutt/1.5.9i\r\n\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Disposition: inline\r\n\r\nThis is a sample message.\r\n\r\n--\r\nGregory K. Johnson\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename="text.gz"\r\nContent-Transfer-Encoding: base64\r\n\r\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\r\n3FYlAAAA\r\n\r\n--NMuMz9nt05w80d4+--\r\n' ====================================================================== FAIL: test_add (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 77, in test_add self.assertEqual(self._box.get_string(keys[0]), self._template % 0) AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n0\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f' != 'From: foo\n\n0' ====================================================================== FAIL: test_close (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 387, in test_close self._test_flush_or_close(self._box.close) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 398, in _test_flush_or_close self.assertEqual(len(keys), 3) AssertionError: 0 != 3 ====================================================================== FAIL: test_delitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 87, in test_delitem self._test_remove_or_delitem(self._box.__delitem__) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n1\n\n\x1f' != 'From: foo\n\n1' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 410, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: 'Return-Path: \nX-Original-To: gkj+person at localhost\nDelivered-To: gkj+person at localhost\nReceived: from localhost (localhost [127.0.0.1])\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nDelivered-To: gkj at sundance.gregorykjohnson.com\nReceived: from localhost [127.0.0.1]\n by localhost with POP3 (fetchmail-6.2.5)\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nDate: Wed, 13 Jul 2005 17:23:11 -0400\nFrom: "Gregory K. Johnson" \nTo: gkj at gregorykjohnson.com\nSubject: Sample message\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\nMime-Version: 1.0\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\nContent-Disposition: inline\nUser-Agent: Mutt/1.5.9i\n\n\n--NMuMz9nt05w80d4+\nContent-Type: text/plain; charset=us-ascii\nContent-Disposition: inline\n\nThis is a sample message.\n\n--\nGregory K. Johnson\n\n--NMuMz9nt05w80d4+\nContent-Type: application/octet-stream\nContent-Disposition: attachment; filename="text.gz"\nContent-Transfer-Encoding: base64\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n3FYlAAAA\n\n--NMuMz9nt05w80d4+--\n' != 'Return-Path: \r\nX-Original-To: gkj+person at localhost\r\nDelivered-To: gkj+person at localhost\r\nReceived: from localhost (localhost [127.0.0.1])\r\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\r\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nDelivered-To: gkj at sundance.gregorykjohnson.com\r\nReceived: from localhost [127.0.0.1]\r\n by localhost with POP3 (fetchmail-6.2.5)\r\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\r\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\r\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\r\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nDate: Wed, 13 Jul 2005 17:23:11 -0400\r\nFrom: "Gregory K. Johnson" \r\nTo: gkj at gregorykjohnson.com\r\nSubject: Sample message\r\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\r\nMime-Version: 1.0\r\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\r\nContent-Disposition: inline\r\nUser-Agent: Mutt/1.5.9i\r\n\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Disposition: inline\r\n\r\nThis is a sample message.\r\n\r\n--\r\nGregory K. Johnson\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename="text.gz"\r\nContent-Transfer-Encoding: base64\r\n\r\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\r\n3FYlAAAA\r\n\r\n--NMuMz9nt05w80d4+--\r\n' ====================================================================== FAIL: test_flush (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 375, in test_flush self._test_flush_or_close(self._box.flush) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 398, in _test_flush_or_close self.assertEqual(len(keys), 3) AssertionError: 0 != 3 ====================================================================== FAIL: test_get (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 129, in test_get self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_file (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 172, in test_get_file self._template % 0) AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n0\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f' != 'From: foo\n\n0' ====================================================================== FAIL: test_get_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 156, in test_get_message self.assertEqual(msg0['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_string (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 164, in test_get_string self.assertEqual(self._box.get_string(key0), self._template % 0) AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n0\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f' != 'From: foo\n\n0' ====================================================================== FAIL: test_getitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 144, in test_getitem self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_items (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 205, in test_items self._check_iteration(self._box.items, do_keys=True, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iter (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 192, in test_iter do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iteritems (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 201, in test_iteritems do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_itervalues (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 187, in test_itervalues do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_pop (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 311, in test_pop self.assertEqual(self._box.pop(key0).get_payload(), '0') AssertionError: 'From: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n0\n\n\x1f\x0c\n\n1,,\n\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n1\n\n\x1f' != '0' ====================================================================== FAIL: test_remove (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 83, in test_remove self._test_remove_or_delitem(self._box.remove) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n1\n\n\x1f' != 'From: foo\n\n1' ====================================================================== FAIL: test_set_item (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 270, in test_set_item self._template % 'original 0') AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\noriginal 0\n\n\x1f' != 'From: foo\n\noriginal 0' ====================================================================== FAIL: test_update (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 348, in test_update self._template % 'changed 0') AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\nchanged 0\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f' != 'From: foo\n\nchanged 0' ====================================================================== FAIL: test_values (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 196, in test_values self._check_iteration(self._box.values, do_keys=False, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== ERROR: test_case_1 (test.test_netrc.NetrcTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_netrc.py", line 36, in test_case_1 nrc = netrc.netrc(temp_filename) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\netrc.py", line 32, in __init__ self._parse(file, fp) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\netrc.py", line 59, in _parse "bad toplevel token %r" % tt, file, lexer.lineno) netrc.NetrcParseError: bad toplevel token 'line1' (@test, line 9) ====================================================================== ERROR: test_failures (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_pep277.py", line 64, in test_failures self._apply_failure(open, name, IOError) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_pep277.py", line 58, in _apply_failure details.filename)) test.test_support.TestFailed: Function 'OpenWrapper('not_ at test\\abc') failed with bad filename in the exception: None ====================================================================== FAIL: test_close_fds (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_subprocess.py", line 624, in test_close_fds self.assertEqual(rc, 47) AssertionError: 3 != 47 ====================================================================== FAIL: test_text_mode (test.test_tempfile.test_SpooledTemporaryFile) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_tempfile.py", line 747, in test_text_mode self.assertEqual(f.read(), "abc\ndef\nxyzzy\n") AssertionError: 'abc\n\ndef\n\nxyzzy\n\n' != 'abc\ndef\nxyzzy\n' ====================================================================== ERROR: test_extremes (test.test_winsound.BeepTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 18, in test_extremes winsound.Beep(37, 75) RuntimeError: Failed to beep ====================================================================== ERROR: test_increasingfrequency (test.test_winsound.BeepTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 23, in test_increasingfrequency winsound.Beep(i, 75) RuntimeError: Failed to beep ====================================================================== ERROR: test_alias_asterisk (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 64, in test_alias_asterisk winsound.PlaySound('SystemAsterisk', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_exclamation (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 74, in test_alias_exclamation winsound.PlaySound('SystemExclamation', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_exit (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 84, in test_alias_exit winsound.PlaySound('SystemExit', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_hand (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 94, in test_alias_hand winsound.PlaySound('SystemHand', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_question (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 104, in test_alias_question winsound.PlaySound('SystemQuestion', winsound.SND_ALIAS) RuntimeError: Failed to play sound sincerely, -The Buildbot From buildbot at python.org Sat Oct 27 08:15:51 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Oct 2007 06:15:51 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20071027061551.8BD251E402B@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/181 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: neal.norwitz BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Sat Oct 27 08:35:56 2007 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Oct 2007 06:35:56 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu 3.0 Message-ID: <20071027063556.B140F1E4002@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%203.0/builds/165 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 37 sincerely, -The Buildbot From nnorwitz at gmail.com Sat Oct 27 11:44:08 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 27 Oct 2007 05:44:08 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071027094408.GA23379@python.psfb.org> svn update tools/sphinx Fetching external item into 'tools/sphinx/jinja' External at revision 58687. At revision 58687. svn update tools/docutils At revision 58687. svn update tools/pygments svn: REPORT request failed on '/projects/!svn/vcc/default' svn: Target path does not exist make: *** [update] Error 1 From nnorwitz at gmail.com Sat Oct 27 23:43:40 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 27 Oct 2007 17:43:40 -0400 Subject: [Python-checkins] Python Regression Test Failures doc (1) Message-ID: <20071027214340.GA25014@python.psfb.org> svn update tools/sphinx Fetching external item into 'tools/sphinx/jinja' External at revision 58695. At revision 58695. svn update tools/docutils At revision 58695. svn update tools/pygments svn: REPORT request failed on '/projects/!svn/vcc/default' svn: Target path does not exist make: *** [update] Error 1 From python-checkins at python.org Sun Oct 28 00:32:21 2007 From: python-checkins at python.org (neal.norwitz) Date: Sun, 28 Oct 2007 00:32:21 +0200 (CEST) Subject: [Python-checkins] r58696 - python/trunk/Doc/README.txt Message-ID: <20071027223221.9C3DD1E4010@bag.python.org> Author: neal.norwitz Date: Sun Oct 28 00:32:21 2007 New Revision: 58696 Modified: python/trunk/Doc/README.txt Log: Update URL for Pygments. 0.8.1 is no longer available Modified: python/trunk/Doc/README.txt ============================================================================== --- python/trunk/Doc/README.txt (original) +++ python/trunk/Doc/README.txt Sun Oct 28 00:32:21 2007 @@ -67,7 +67,7 @@ You can optionally also install Pygments, either as a checkout via :: - svn co http://svn.python.org/projects/external/Pygments-0.8.1/pygments tools/pygments + svn co http://svn.python.org/projects/external/Pygments-0.9/pygments tools/pygments or from PyPI at http://pypi.python.org/pypi/Pygments. From python-checkins at python.org Sun Oct 28 12:19:03 2007 From: python-checkins at python.org (hyeshik.chang) Date: Sun, 28 Oct 2007 12:19:03 +0100 (CET) Subject: [Python-checkins] r58697 - in python/trunk: Lib/plat-freebsd6/IN.py Lib/plat-freebsd7/IN.py Lib/plat-freebsd8 Lib/plat-freebsd8/IN.py Misc/NEWS Message-ID: <20071028111903.2785D1E4023@bag.python.org> Author: hyeshik.chang Date: Sun Oct 28 12:19:02 2007 New Revision: 58697 Added: python/trunk/Lib/plat-freebsd8/ - copied from r58696, python/trunk/Lib/plat-freebsd7/ Modified: python/trunk/Lib/plat-freebsd6/IN.py python/trunk/Lib/plat-freebsd7/IN.py python/trunk/Lib/plat-freebsd8/IN.py python/trunk/Misc/NEWS Log: - Add support for FreeBSD 8 which is recently forked from FreeBSD 7. - Regenerate IN module for most recent maintenance tree of FreeBSD 6 and 7. Modified: python/trunk/Lib/plat-freebsd6/IN.py ============================================================================== --- python/trunk/Lib/plat-freebsd6/IN.py (original) +++ python/trunk/Lib/plat-freebsd6/IN.py Sun Oct 28 12:19:02 2007 @@ -1,6 +1,28 @@ # Generated by h2py from /usr/include/netinet/in.h # Included from sys/cdefs.h +__GNUCLIKE_ASM = 3 +__GNUCLIKE_ASM = 2 +__GNUCLIKE___TYPEOF = 1 +__GNUCLIKE___OFFSETOF = 1 +__GNUCLIKE___SECTION = 1 +__GNUCLIKE_ATTRIBUTE_MODE_DI = 1 +__GNUCLIKE_CTOR_SECTION_HANDLING = 1 +__GNUCLIKE_BUILTIN_CONSTANT_P = 1 +__GNUCLIKE_BUILTIN_VARARGS = 1 +__GNUCLIKE_BUILTIN_STDARG = 1 +__GNUCLIKE_BUILTIN_VAALIST = 1 +__GNUC_VA_LIST_COMPATIBILITY = 1 +__GNUCLIKE_BUILTIN_NEXT_ARG = 1 +__GNUCLIKE_BUILTIN_MEMCPY = 1 +__CC_SUPPORTS_INLINE = 1 +__CC_SUPPORTS___INLINE = 1 +__CC_SUPPORTS___INLINE__ = 1 +__CC_SUPPORTS___FUNC__ = 1 +__CC_SUPPORTS_WARNING = 1 +__CC_SUPPORTS_VARADIC_XXX = 1 +__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1 +__CC_INT_IS_32BIT = 1 def __P(protos): return protos def __STRING(x): return #x @@ -29,6 +51,8 @@ def __predict_false(exp): return (exp) +def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg))) + def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s) def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s) @@ -86,8 +110,6 @@ BIG_ENDIAN = _BIG_ENDIAN PDP_ENDIAN = _PDP_ENDIAN BYTE_ORDER = _BYTE_ORDER -__INTEL_COMPILER_with_FreeBSD_endian = 1 -__INTEL_COMPILER_with_FreeBSD_endian = 1 def __word_swap_int_var(x): return \ def __word_swap_int_const(x): return \ @@ -96,12 +118,16 @@ def __byte_swap_int_var(x): return \ -def __byte_swap_int_var(x): return \ - def __byte_swap_int_const(x): return \ def __byte_swap_int(x): return __byte_swap_int_var(x) +def __byte_swap_long_var(x): return \ + +def __byte_swap_long_const(x): return \ + +def __byte_swap_long(x): return __byte_swap_long_var(x) + def __byte_swap_word_var(x): return \ def __byte_swap_word_const(x): return \ @@ -229,47 +255,50 @@ IPPROTO_APES = 99 IPPROTO_GMTP = 100 IPPROTO_IPCOMP = 108 +IPPROTO_SCTP = 132 IPPROTO_PIM = 103 +IPPROTO_CARP = 112 IPPROTO_PGM = 113 IPPROTO_PFSYNC = 240 IPPROTO_OLD_DIVERT = 254 IPPROTO_MAX = 256 IPPROTO_DONE = 257 IPPROTO_DIVERT = 258 +IPPROTO_SPACER = 32767 IPPORT_RESERVED = 1024 IPPORT_HIFIRSTAUTO = 49152 IPPORT_HILASTAUTO = 65535 IPPORT_RESERVEDSTART = 600 IPPORT_MAX = 65535 -def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0) +def IN_CLASSA(i): return (((u_int32_t)(i) & 0x80000000) == 0) -IN_CLASSA_NET = (-16777216) +IN_CLASSA_NET = 0xff000000 IN_CLASSA_NSHIFT = 24 IN_CLASSA_HOST = 0x00ffffff IN_CLASSA_MAX = 128 -def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648)) +def IN_CLASSB(i): return (((u_int32_t)(i) & 0xc0000000) == 0x80000000) -IN_CLASSB_NET = (-65536) +IN_CLASSB_NET = 0xffff0000 IN_CLASSB_NSHIFT = 16 IN_CLASSB_HOST = 0x0000ffff IN_CLASSB_MAX = 65536 -def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824)) +def IN_CLASSC(i): return (((u_int32_t)(i) & 0xe0000000) == 0xc0000000) -IN_CLASSC_NET = (-256) +IN_CLASSC_NET = 0xffffff00 IN_CLASSC_NSHIFT = 8 IN_CLASSC_HOST = 0x000000ff -def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912)) +def IN_CLASSD(i): return (((u_int32_t)(i) & 0xf0000000) == 0xe0000000) -IN_CLASSD_NET = (-268435456) +IN_CLASSD_NET = 0xf0000000 IN_CLASSD_NSHIFT = 28 IN_CLASSD_HOST = 0x0fffffff def IN_MULTICAST(i): return IN_CLASSD(i) -def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456)) +def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000) -def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456)) +def IN_BADCLASS(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000) -INADDR_NONE = (-1) +INADDR_NONE = 0xffffffff IN_LOOPBACKNET = 127 IP_OPTIONS = 1 IP_HDRINCL = 2 @@ -311,6 +340,8 @@ IP_DUMMYNET_FLUSH = 62 IP_DUMMYNET_GET = 64 IP_RECVTTL = 65 +IP_MINTTL = 66 +IP_DONTFRAG = 67 IP_DEFAULT_MULTICAST_TTL = 1 IP_DEFAULT_MULTICAST_LOOP = 1 IP_MAX_MEMBERSHIPS = 20 @@ -339,7 +370,7 @@ # Included from netinet6/in6.h -__KAME_VERSION = "20010528/FreeBSD" +__KAME_VERSION = "FreeBSD" IPV6PORT_RESERVED = 1024 IPV6PORT_ANONMIN = 49152 IPV6PORT_ANONMAX = 65535 @@ -348,8 +379,8 @@ INET6_ADDRSTRLEN = 46 IPV6_ADDR_INT32_ONE = 1 IPV6_ADDR_INT32_TWO = 2 -IPV6_ADDR_INT32_MNL = (-16711680) -IPV6_ADDR_INT32_MLL = (-16646144) +IPV6_ADDR_INT32_MNL = 0xff010000 +IPV6_ADDR_INT32_MLL = 0xff020000 IPV6_ADDR_INT32_SMP = 0x0000ffff IPV6_ADDR_INT16_ULL = 0xfe80 IPV6_ADDR_INT16_USL = 0xfec0 @@ -358,7 +389,7 @@ IPV6_ADDR_INT32_TWO = 0x02000000 IPV6_ADDR_INT32_MNL = 0x000001ff IPV6_ADDR_INT32_MLL = 0x000002ff -IPV6_ADDR_INT32_SMP = (-65536) +IPV6_ADDR_INT32_SMP = 0xffff0000 IPV6_ADDR_INT16_ULL = 0x80fe IPV6_ADDR_INT16_USL = 0xc0fe IPV6_ADDR_INT16_MLL = 0x02ff @@ -511,5 +542,10 @@ IPV6CTL_RIP6STATS = 36 IPV6CTL_PREFER_TEMPADDR = 37 IPV6CTL_ADDRCTLPOLICY = 38 +IPV6CTL_USE_DEFAULTZONE = 39 IPV6CTL_MAXFRAGS = 41 -IPV6CTL_MAXID = 42 +IPV6CTL_IFQ = 42 +IPV6CTL_ISATAPRTR = 43 +IPV6CTL_MCAST_PMTU = 44 +IPV6CTL_STEALTH = 45 +IPV6CTL_MAXID = 46 Modified: python/trunk/Lib/plat-freebsd7/IN.py ============================================================================== --- python/trunk/Lib/plat-freebsd7/IN.py (original) +++ python/trunk/Lib/plat-freebsd7/IN.py Sun Oct 28 12:19:02 2007 @@ -10,9 +10,9 @@ __GNUCLIKE_CTOR_SECTION_HANDLING = 1 __GNUCLIKE_BUILTIN_CONSTANT_P = 1 __GNUCLIKE_BUILTIN_VARARGS = 1 +__GNUCLIKE_BUILTIN_STDARG = 1 __GNUCLIKE_BUILTIN_VAALIST = 1 __GNUC_VA_LIST_COMPATIBILITY = 1 -__GNUCLIKE_BUILTIN_STDARG = 1 __GNUCLIKE_BUILTIN_NEXT_ARG = 1 __GNUCLIKE_BUILTIN_MEMCPY = 1 __CC_SUPPORTS_INLINE = 1 @@ -51,6 +51,8 @@ def __predict_false(exp): return (exp) +def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg))) + def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s) def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s) @@ -247,6 +249,7 @@ IPPROTO_APES = 99 IPPROTO_GMTP = 100 IPPROTO_IPCOMP = 108 +IPPROTO_SCTP = 132 IPPROTO_PIM = 103 IPPROTO_CARP = 112 IPPROTO_PGM = 113 @@ -289,6 +292,10 @@ def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456)) +def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648)) + +def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912)) + INADDR_NONE = (-1) IN_LOOPBACKNET = 127 IP_OPTIONS = 1 @@ -326,14 +333,35 @@ IP_FW_ZERO = 53 IP_FW_GET = 54 IP_FW_RESETLOG = 55 +IP_FW_NAT_CFG = 56 +IP_FW_NAT_DEL = 57 +IP_FW_NAT_GET_CONFIG = 58 +IP_FW_NAT_GET_LOG = 59 IP_DUMMYNET_CONFIGURE = 60 IP_DUMMYNET_DEL = 61 IP_DUMMYNET_FLUSH = 62 IP_DUMMYNET_GET = 64 IP_RECVTTL = 65 +IP_MINTTL = 66 +IP_DONTFRAG = 67 +IP_ADD_SOURCE_MEMBERSHIP = 70 +IP_DROP_SOURCE_MEMBERSHIP = 71 +IP_BLOCK_SOURCE = 72 +IP_UNBLOCK_SOURCE = 73 +IP_MSFILTER = 74 +MCAST_JOIN_GROUP = 80 +MCAST_LEAVE_GROUP = 81 +MCAST_JOIN_SOURCE_GROUP = 82 +MCAST_LEAVE_SOURCE_GROUP = 83 +MCAST_BLOCK_SOURCE = 84 +MCAST_UNBLOCK_SOURCE = 85 IP_DEFAULT_MULTICAST_TTL = 1 IP_DEFAULT_MULTICAST_LOOP = 1 -IP_MAX_MEMBERSHIPS = 20 +IP_MIN_MEMBERSHIPS = 31 +IP_MAX_MEMBERSHIPS = 4095 +IP_MAX_SOURCE_FILTER = 1024 +MCAST_INCLUDE = 1 +MCAST_EXCLUDE = 2 IP_PORTRANGE_DEFAULT = 0 IP_PORTRANGE_HIGH = 1 IP_PORTRANGE_LOW = 2 @@ -359,7 +387,7 @@ # Included from netinet6/in6.h -__KAME_VERSION = "20010528/FreeBSD" +__KAME_VERSION = "FreeBSD" IPV6PORT_RESERVED = 1024 IPV6PORT_ANONMIN = 49152 IPV6PORT_ANONMAX = 65535 @@ -430,6 +458,8 @@ def IN6_IS_SCOPE_LINKLOCAL(a): return \ +def IN6_IS_SCOPE_EMBED(a): return \ + def IFA6_IS_DEPRECATED(a): return \ def IFA6_IS_INVALID(a): return \ @@ -488,6 +518,7 @@ IPV6_TCLASS = 61 IPV6_DONTFRAG = 62 IPV6_PREFER_TEMPADDR = 63 +IPV6_MSFILTER = 74 IPV6_RTHDR_LOOSE = 0 IPV6_RTHDR_STRICT = 1 IPV6_RTHDR_TYPE_0 = 0 @@ -531,5 +562,10 @@ IPV6CTL_RIP6STATS = 36 IPV6CTL_PREFER_TEMPADDR = 37 IPV6CTL_ADDRCTLPOLICY = 38 +IPV6CTL_USE_DEFAULTZONE = 39 IPV6CTL_MAXFRAGS = 41 -IPV6CTL_MAXID = 42 +IPV6CTL_IFQ = 42 +IPV6CTL_ISATAPRTR = 43 +IPV6CTL_MCAST_PMTU = 44 +IPV6CTL_STEALTH = 45 +IPV6CTL_MAXID = 46 Modified: python/trunk/Lib/plat-freebsd8/IN.py ============================================================================== --- python/trunk/Lib/plat-freebsd7/IN.py (original) +++ python/trunk/Lib/plat-freebsd8/IN.py Sun Oct 28 12:19:02 2007 @@ -10,9 +10,9 @@ __GNUCLIKE_CTOR_SECTION_HANDLING = 1 __GNUCLIKE_BUILTIN_CONSTANT_P = 1 __GNUCLIKE_BUILTIN_VARARGS = 1 +__GNUCLIKE_BUILTIN_STDARG = 1 __GNUCLIKE_BUILTIN_VAALIST = 1 __GNUC_VA_LIST_COMPATIBILITY = 1 -__GNUCLIKE_BUILTIN_STDARG = 1 __GNUCLIKE_BUILTIN_NEXT_ARG = 1 __GNUCLIKE_BUILTIN_MEMCPY = 1 __CC_SUPPORTS_INLINE = 1 @@ -51,6 +51,8 @@ def __predict_false(exp): return (exp) +def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg))) + def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s) def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s) @@ -247,6 +249,7 @@ IPPROTO_APES = 99 IPPROTO_GMTP = 100 IPPROTO_IPCOMP = 108 +IPPROTO_SCTP = 132 IPPROTO_PIM = 103 IPPROTO_CARP = 112 IPPROTO_PGM = 113 @@ -289,6 +292,10 @@ def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456)) +def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648)) + +def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912)) + INADDR_NONE = (-1) IN_LOOPBACKNET = 127 IP_OPTIONS = 1 @@ -326,14 +333,35 @@ IP_FW_ZERO = 53 IP_FW_GET = 54 IP_FW_RESETLOG = 55 +IP_FW_NAT_CFG = 56 +IP_FW_NAT_DEL = 57 +IP_FW_NAT_GET_CONFIG = 58 +IP_FW_NAT_GET_LOG = 59 IP_DUMMYNET_CONFIGURE = 60 IP_DUMMYNET_DEL = 61 IP_DUMMYNET_FLUSH = 62 IP_DUMMYNET_GET = 64 IP_RECVTTL = 65 +IP_MINTTL = 66 +IP_DONTFRAG = 67 +IP_ADD_SOURCE_MEMBERSHIP = 70 +IP_DROP_SOURCE_MEMBERSHIP = 71 +IP_BLOCK_SOURCE = 72 +IP_UNBLOCK_SOURCE = 73 +IP_MSFILTER = 74 +MCAST_JOIN_GROUP = 80 +MCAST_LEAVE_GROUP = 81 +MCAST_JOIN_SOURCE_GROUP = 82 +MCAST_LEAVE_SOURCE_GROUP = 83 +MCAST_BLOCK_SOURCE = 84 +MCAST_UNBLOCK_SOURCE = 85 IP_DEFAULT_MULTICAST_TTL = 1 IP_DEFAULT_MULTICAST_LOOP = 1 -IP_MAX_MEMBERSHIPS = 20 +IP_MIN_MEMBERSHIPS = 31 +IP_MAX_MEMBERSHIPS = 4095 +IP_MAX_SOURCE_FILTER = 1024 +MCAST_INCLUDE = 1 +MCAST_EXCLUDE = 2 IP_PORTRANGE_DEFAULT = 0 IP_PORTRANGE_HIGH = 1 IP_PORTRANGE_LOW = 2 @@ -359,7 +387,7 @@ # Included from netinet6/in6.h -__KAME_VERSION = "20010528/FreeBSD" +__KAME_VERSION = "FreeBSD" IPV6PORT_RESERVED = 1024 IPV6PORT_ANONMIN = 49152 IPV6PORT_ANONMAX = 65535 @@ -430,6 +458,8 @@ def IN6_IS_SCOPE_LINKLOCAL(a): return \ +def IN6_IS_SCOPE_EMBED(a): return \ + def IFA6_IS_DEPRECATED(a): return \ def IFA6_IS_INVALID(a): return \ @@ -488,6 +518,7 @@ IPV6_TCLASS = 61 IPV6_DONTFRAG = 62 IPV6_PREFER_TEMPADDR = 63 +IPV6_MSFILTER = 74 IPV6_RTHDR_LOOSE = 0 IPV6_RTHDR_STRICT = 1 IPV6_RTHDR_TYPE_0 = 0 @@ -531,5 +562,10 @@ IPV6CTL_RIP6STATS = 36 IPV6CTL_PREFER_TEMPADDR = 37 IPV6CTL_ADDRCTLPOLICY = 38 +IPV6CTL_USE_DEFAULTZONE = 39 IPV6CTL_MAXFRAGS = 41 -IPV6CTL_MAXID = 42 +IPV6CTL_IFQ = 42 +IPV6CTL_ISATAPRTR = 43 +IPV6CTL_MCAST_PMTU = 44 +IPV6CTL_STEALTH = 45 +IPV6CTL_MAXID = 46 Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sun Oct 28 12:19:02 2007 @@ -274,6 +274,9 @@ Library ------- +- IN module for FreeBSD 8 is added and preexisting FreeBSD 6 and 7 + files are updated. + - Issues #1181, #1287: unsetenv() is now called when the os.environ.pop() and os.environ.clear() methods are used. From buildbot at python.org Sun Oct 28 13:03:56 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Oct 2007 12:03:56 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20071028120356.BFAD31E4014@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/145 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: hyeshik.chang,neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Sun Oct 28 13:06:26 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Oct 2007 12:06:26 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20071028120626.7E2521E4014@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/297 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: hyeshik.chang,neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc ====================================================================== ERROR: test_fail_no_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 497, in test_fail_no_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1006, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 932, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer ====================================================================== ERROR: test_fail_with_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 517, in test_fail_with_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1006, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 932, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sun Oct 28 13:38:10 2007 From: python-checkins at python.org (hyeshik.chang) Date: Sun, 28 Oct 2007 13:38:10 +0100 (CET) Subject: [Python-checkins] r58698 - in python/trunk: Lib/posixfile.py Lib/test/regrtest.py Lib/test/test_fcntl.py Lib/test/test_socket.py setup.py Message-ID: <20071028123810.359F71E4014@bag.python.org> Author: hyeshik.chang Date: Sun Oct 28 13:38:09 2007 New Revision: 58698 Modified: python/trunk/Lib/posixfile.py python/trunk/Lib/test/regrtest.py python/trunk/Lib/test/test_fcntl.py python/trunk/Lib/test/test_socket.py python/trunk/setup.py Log: Enable platform-specific tweaks for FreeBSD 8 (exactly same to FreeBSD 7's yet) Modified: python/trunk/Lib/posixfile.py ============================================================================== --- python/trunk/Lib/posixfile.py (original) +++ python/trunk/Lib/posixfile.py Sun Oct 28 13:38:09 2007 @@ -181,7 +181,7 @@ if sys.platform in ('netbsd1', 'openbsd2', 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5', - 'freebsd6', 'freebsd7', + 'freebsd6', 'freebsd7', 'freebsd8', 'bsdos2', 'bsdos3', 'bsdos4'): flock = struct.pack('lxxxxlxxxxlhh', \ l_start, l_len, os.getpid(), l_type, l_whence) Modified: python/trunk/Lib/test/regrtest.py ============================================================================== --- python/trunk/Lib/test/regrtest.py (original) +++ python/trunk/Lib/test/regrtest.py Sun Oct 28 13:38:09 2007 @@ -1104,6 +1104,7 @@ _expectations['freebsd5'] = _expectations['freebsd4'] _expectations['freebsd6'] = _expectations['freebsd4'] _expectations['freebsd7'] = _expectations['freebsd4'] +_expectations['freebsd8'] = _expectations['freebsd4'] class _ExpectedSkips: def __init__(self): Modified: python/trunk/Lib/test/test_fcntl.py ============================================================================== --- python/trunk/Lib/test/test_fcntl.py (original) +++ python/trunk/Lib/test/test_fcntl.py Sun Oct 28 13:38:09 2007 @@ -23,7 +23,7 @@ if sys.platform in ('netbsd1', 'netbsd2', 'netbsd3', 'Darwin1.2', 'darwin', 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5', - 'freebsd6', 'freebsd7', + 'freebsd6', 'freebsd7', 'freebsd8', 'bsdos2', 'bsdos3', 'bsdos4', 'openbsd', 'openbsd2', 'openbsd3', 'openbsd4'): if struct.calcsize('l') == 8: Modified: python/trunk/Lib/test/test_socket.py ============================================================================== --- python/trunk/Lib/test/test_socket.py (original) +++ python/trunk/Lib/test/test_socket.py Sun Oct 28 13:38:09 2007 @@ -330,7 +330,7 @@ # I've ordered this by protocols that have both a tcp and udp # protocol, at least for modern Linuxes. if sys.platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', - 'freebsd7', 'darwin'): + 'freebsd7', 'freebsd8', 'darwin'): # avoid the 'echo' service on this platform, as there is an # assumption breaking non-standard port/protocol entry services = ('daytime', 'qotd', 'domain') Modified: python/trunk/setup.py ============================================================================== --- python/trunk/setup.py (original) +++ python/trunk/setup.py Sun Oct 28 13:38:09 2007 @@ -1159,7 +1159,7 @@ missing.append('linuxaudiodev') if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', - 'freebsd7'): + 'freebsd7', 'freebsd8'): exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) else: missing.append('ossaudiodev') From buildbot at python.org Sun Oct 28 15:03:01 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Oct 2007 14:03:01 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20071028140301.6FFA61E4014@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/2330 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: hyeshik.chang BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') Traceback (most recent call last): File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_logging sincerely, -The Buildbot From python-checkins at python.org Sun Oct 28 20:03:59 2007 From: python-checkins at python.org (kurt.kaiser) Date: Sun, 28 Oct 2007 20:03:59 +0100 (CET) Subject: [Python-checkins] r58700 - python/trunk/Lib/idlelib/IOBinding.py python/trunk/Lib/idlelib/NEWS.txt Message-ID: <20071028190359.A05F21E4016@bag.python.org> Author: kurt.kaiser Date: Sun Oct 28 20:03:59 2007 New Revision: 58700 Modified: python/trunk/Lib/idlelib/IOBinding.py python/trunk/Lib/idlelib/NEWS.txt Log: Add confirmation dialog before printing. Patch 1717170 Tal Einat. Modified: python/trunk/Lib/idlelib/IOBinding.py ============================================================================== --- python/trunk/Lib/idlelib/IOBinding.py (original) +++ python/trunk/Lib/idlelib/IOBinding.py Sun Oct 28 20:03:59 2007 @@ -465,13 +465,23 @@ self.text.insert("end-1c", "\n") def print_window(self, event): + m = tkMessageBox.Message( + title="Print", + message="Print to Default Printer", + icon=tkMessageBox.QUESTION, + type=tkMessageBox.OKCANCEL, + default=tkMessageBox.OK, + master=self.text) + reply = m.show() + if reply != tkMessageBox.OK: + self.text.focus_set() + return "break" tempfilename = None saved = self.get_saved() if saved: filename = self.filename # shell undo is reset after every prompt, looks saved, probably isn't if not saved or filename is None: - # XXX KBK 08Jun03 Wouldn't it be better to ask the user to save? (tfd, tempfilename) = tempfile.mkstemp(prefix='IDLE_tmp_') filename = tempfilename os.close(tfd) Modified: python/trunk/Lib/idlelib/NEWS.txt ============================================================================== --- python/trunk/Lib/idlelib/NEWS.txt (original) +++ python/trunk/Lib/idlelib/NEWS.txt Sun Oct 28 20:03:59 2007 @@ -3,6 +3,8 @@ *Release date: XX-XXX-200X* +- Add confirmation dialog before printing. Patch 1717170 Tal Einat. + - Show paste position if > 80 col. Patch 1659326 Tal Einat. - Update cursor color without restarting. Patch 1725576 Tal Einat. From buildbot at python.org Sun Oct 28 20:50:42 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Oct 2007 19:50:42 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20071028195042.B2D1A1E4014@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/299 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc ====================================================================== ERROR: test_fail_no_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 497, in test_fail_no_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1006, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 932, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer ====================================================================== ERROR: test_fail_with_info (test.test_xmlrpc.FailingServerTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_xmlrpc.py", line 517, in test_fail_with_info p.pow(6,8) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1157, in __call__ return self.__send(self.__name, args) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1447, in __request verbose=self.__verbose File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/xmlrpclib.py", line 1195, in request errcode, errmsg, headers = h.getreply() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 1006, in getreply response = self._conn.getresponse() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 932, in getresponse response.begin() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 415, in begin self.msg = HTTPMessage(self.fp, 0) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/mimetools.py", line 16, in __init__ rfc822.Message.__init__(self, fp, seekable) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/rfc822.py", line 104, in __init__ self.readheaders() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/httplib.py", line 271, in readheaders line = self.fp.readline() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/socket.py", line 351, in readline data = recv(1) error: [Errno 104] Connection reset by peer make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Oct 29 00:54:19 2007 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Oct 2007 23:54:19 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian trunk Message-ID: <20071028235419.217071E4012@bag.python.org> The Buildbot has detected a new failure of S-390 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%20trunk/builds/1285 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,hyeshik.chang,kurt.kaiser,neal.norwitz BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-s390/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea/trunk.klose-debian-s390/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea/trunk.klose-debian-s390/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/pybot/buildarea/trunk.klose-debian-s390/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_ctypes ====================================================================== FAIL: test_longdouble (ctypes.test.test_callbacks.Callbacks) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-s390/build/Lib/ctypes/test/test_callbacks.py", line 81, in test_longdouble self.check_type(c_longdouble, 3.14) File "/home/pybot/buildarea/trunk.klose-debian-s390/build/Lib/ctypes/test/test_callbacks.py", line 22, in check_type self.failUnlessEqual(self.got_args, (arg,)) AssertionError: (-inf,) != (3.1400000000000001,) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Oct 29 18:07:53 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Oct 2007 17:07:53 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu 3.0 Message-ID: <20071029170754.1AEA61E4016@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%203.0/builds/168 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 37 sincerely, -The Buildbot From buildbot at python.org Mon Oct 29 18:35:50 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Oct 2007 17:35:50 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20071029173550.A32251E4016@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/172 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: fred.drake BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllibnet make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Oct 29 18:42:01 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Oct 2007 17:42:01 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20071029174201.778651E4021@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/183 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: 11 tests failed: test_csv test_dumbdbm test_fileinput test_format test_getargs2 test_gettext test_mailbox test_netrc test_pep277 test_subprocess test_winsound ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 500, in test_read_escape_fieldsep self.readerAssertEqual('abc\\,def\r\n', [['abc,def']]) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== FAIL: test_read_escape_fieldsep (test.test_csv.TestQuotedEscapedExcel) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 513, in test_read_escape_fieldsep self.readerAssertEqual('"abc\\,def"\r\n', [['abc,def']]) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_csv.py", line 383, in readerAssertEqual self.assertEqual(fields, expected_result) AssertionError: [['abc,def'], []] != [['abc,def']] ====================================================================== ERROR: test_line_endings (test.test_dumbdbm.DumbDBMTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_dumbdbm.py", line 121, in test_line_endings f = dumbdbm.open(_fname) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\dumbdbm.py", line 256, in open return _Database(file, mode) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\dumbdbm.py", line 73, in __init__ self._update() File "C:\buildbot\3.0.heller-windows-amd64\build\lib\dumbdbm.py", line 85, in _update key, pos_and_siz_pair = eval(line) File "", line 0 ^ SyntaxError: unexpected EOF while parsing ====================================================================== FAIL: test_buffer_sizes (test.test_fileinput.BufferSizesTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_fileinput.py", line 42, in test_buffer_sizes self.buffer_size_test(t1, t2, t3, t4, bs, round) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_fileinput.py", line 119, in buffer_size_test self.assertNotEqual(m, None) AssertionError: None == None Traceback (most recent call last): File "../lib/test/regrtest.py", line 586, in runtest_inner the_package = __import__(abstest, globals(), locals(), []) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_format.py", line 43, in testformat("%.*d", (sys.maxint,1)) # expect overflow File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_format.py", line 22, in testformat result = formatstr % args MemoryError ====================================================================== ERROR: test_n (test.test_getargs2.Signed_TestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_getargs2.py", line 190, in test_n self.failUnlessEqual(99, getargs_n(Long())) TypeError: 'Long' object cannot be interpreted as an integer ====================================================================== ERROR: test_weird_metadata (test.test_gettext.WeirdMetadataTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_gettext.py", line 335, in test_weird_metadata self.assertEqual(info['last-translator'], KeyError: 'last-translator' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 701, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 334, in test_popitem self.assertEqual(int(msg.get_payload()), keys.index(key)) ValueError: invalid literal for int() with base 10: 'From: foo 0' ====================================================================== ERROR: test_flush (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 701, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 334, in test_popitem self.assertEqual(int(msg.get_payload()), keys.index(key)) ValueError: invalid literal for int() with base 10: 'From: foo 0' ====================================================================== ERROR: test_flush (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 924, in tearDown self._delete_recursively(self._path) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 47, in _delete_recursively os.remove(target) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: '@test' ====================================================================== ERROR: test_popitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 334, in test_popitem self.assertEqual(int(msg.get_payload()), keys.index(key)) ValueError: invalid literal for int() with base 10: 'From: foo *** EOOH *** From: foo 0 1,, From: foo *** EOOH *** From: foo 1 1,, From: foo *** EOOH *** From: foo 2 1,, From: foo *** EOOH *** From: foo 3 ' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMaildir) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 410, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: 'Return-Path: \nX-Original-To: gkj+person at localhost\nDelivered-To: gkj+person at localhost\nReceived: from localhost (localhost [127.0.0.1])\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nDelivered-To: gkj at sundance.gregorykjohnson.com\nReceived: from localhost [127.0.0.1]\n by localhost with POP3 (fetchmail-6.2.5)\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nDate: Wed, 13 Jul 2005 17:23:11 -0400\nFrom: "Gregory K. Johnson" \nTo: gkj at gregorykjohnson.com\nSubject: Sample message\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\nMime-Version: 1.0\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\nContent-Disposition: inline\nUser-Agent: Mutt/1.5.9i\n\n\n--NMuMz9nt05w80d4+\nContent-Type: text/plain; charset=us-ascii\nContent-Disposition: inline\n\nThis is a sample message.\n\n--\nGregory K. Johnson\n\n--NMuMz9nt05w80d4+\nContent-Type: application/octet-stream\nContent-Disposition: attachment; filename="text.gz"\nContent-Transfer-Encoding: base64\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n3FYlAAAA\n\n--NMuMz9nt05w80d4+--\n' != 'Return-Path: \r\nX-Original-To: gkj+person at localhost\r\nDelivered-To: gkj+person at localhost\r\nReceived: from localhost (localhost [127.0.0.1])\r\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\r\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nDelivered-To: gkj at sundance.gregorykjohnson.com\r\nReceived: from localhost [127.0.0.1]\r\n by localhost with POP3 (fetchmail-6.2.5)\r\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\r\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\r\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\r\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nDate: Wed, 13 Jul 2005 17:23:11 -0400\r\nFrom: "Gregory K. Johnson" \r\nTo: gkj at gregorykjohnson.com\r\nSubject: Sample message\r\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\r\nMime-Version: 1.0\r\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\r\nContent-Disposition: inline\r\nUser-Agent: Mutt/1.5.9i\r\n\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Disposition: inline\r\n\r\nThis is a sample message.\r\n\r\n--\r\nGregory K. Johnson\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename="text.gz"\r\nContent-Transfer-Encoding: base64\r\n\r\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\r\n3FYlAAAA\r\n\r\n--NMuMz9nt05w80d4+--\r\n' ====================================================================== FAIL: test_add (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 77, in test_add self.assertEqual(self._box.get_string(keys[0]), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_add_from_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 708, in test_add_from_string self.assertEqual(self._box[key].get_from(), 'foo at bar blah') AssertionError: 'foo at bar blah\n' != 'foo at bar blah' ====================================================================== FAIL: test_close (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 387, in test_close self._test_flush_or_close(self._box.close) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 400, in _test_flush_or_close self.assert_(self._box.get_string(key) in contents) AssertionError: None ====================================================================== FAIL: test_delitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 87, in test_delitem self._test_remove_or_delitem(self._box.__delitem__) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n1' != 'From: foo\n\n1' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 410, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: 'Return-Path: \nX-Original-To: gkj+person at localhost\nDelivered-To: gkj+person at localhost\nReceived: from localhost (localhost [127.0.0.1])\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nDelivered-To: gkj at sundance.gregorykjohnson.com\nReceived: from localhost [127.0.0.1]\n by localhost with POP3 (fetchmail-6.2.5)\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nDate: Wed, 13 Jul 2005 17:23:11 -0400\nFrom: "Gregory K. Johnson" \nTo: gkj at gregorykjohnson.com\nSubject: Sample message\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\nMime-Version: 1.0\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\nContent-Disposition: inline\nUser-Agent: Mutt/1.5.9i\n\n\n--NMuMz9nt05w80d4+\nContent-Type: text/plain; charset=us-ascii\nContent-Disposition: inline\n\nThis is a sample message.\n\n--\nGregory K. Johnson\n\n--NMuMz9nt05w80d4+\nContent-Type: application/octet-stream\nContent-Disposition: attachment; filename="text.gz"\nContent-Transfer-Encoding: base64\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n3FYlAAAA\n\n--NMuMz9nt05w80d4+--\n' != 'Return-Path: \r\nX-Original-To: gkj+person at localhost\r\nDelivered-To: gkj+person at localhost\r\nReceived: from localhost (localhost [127.0.0.1])\r\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\r\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nDelivered-To: gkj at sundance.gregorykjohnson.com\r\nReceived: from localhost [127.0.0.1]\r\n by localhost with POP3 (fetchmail-6.2.5)\r\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\r\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\r\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\r\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nDate: Wed, 13 Jul 2005 17:23:11 -0400\r\nFrom: "Gregory K. Johnson" \r\nTo: gkj at gregorykjohnson.com\r\nSubject: Sample message\r\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\r\nMime-Version: 1.0\r\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\r\nContent-Disposition: inline\r\nUser-Agent: Mutt/1.5.9i\r\n\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Disposition: inline\r\n\r\nThis is a sample message.\r\n\r\n--\r\nGregory K. Johnson\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename="text.gz"\r\nContent-Transfer-Encoding: base64\r\n\r\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\r\n3FYlAAAA\r\n\r\n--NMuMz9nt05w80d4+--\r\n' ====================================================================== FAIL: test_flush (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 375, in test_flush self._test_flush_or_close(self._box.flush) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 400, in _test_flush_or_close self.assert_(self._box.get_string(key) in contents) AssertionError: None ====================================================================== FAIL: test_get (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 129, in test_get self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_file (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 172, in test_get_file self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_get_message (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 156, in test_get_message self.assertEqual(msg0['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_string (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 164, in test_get_string self.assertEqual(self._box.get_string(key0), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_getitem (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 144, in test_getitem self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_items (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 205, in test_items self._check_iteration(self._box.items, do_keys=True, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iter (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 192, in test_iter do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iteritems (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 201, in test_iteritems do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_itervalues (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 187, in test_itervalues do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_open_close_open (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 727, in test_open_close_open self.assert_(self._box.get_string(key) in values) AssertionError: None ====================================================================== FAIL: test_pop (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 311, in test_pop self.assertEqual(self._box.pop(key0).get_payload(), '0') AssertionError: 'From: foo\n\n0' != '0' ====================================================================== FAIL: test_remove (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 83, in test_remove self._test_remove_or_delitem(self._box.remove) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n1' != 'From: foo\n\n1' ====================================================================== FAIL: test_set_item (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 270, in test_set_item self._template % 'original 0') AssertionError: '\nFrom: foo\n\noriginal 0' != 'From: foo\n\noriginal 0' ====================================================================== FAIL: test_update (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 348, in test_update self._template % 'changed 0') AssertionError: '\nFrom: foo\n\nchanged 0' != 'From: foo\n\nchanged 0' ====================================================================== FAIL: test_values (test.test_mailbox.TestMbox) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 196, in test_values self._check_iteration(self._box.values, do_keys=False, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_add (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 77, in test_add self.assertEqual(self._box.get_string(keys[0]), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_add_from_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 708, in test_add_from_string self.assertEqual(self._box[key].get_from(), 'foo at bar blah') AssertionError: 'foo at bar blah\n' != 'foo at bar blah' ====================================================================== FAIL: test_close (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 387, in test_close self._test_flush_or_close(self._box.close) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 398, in _test_flush_or_close self.assertEqual(len(keys), 3) AssertionError: 0 != 3 ====================================================================== FAIL: test_delitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 87, in test_delitem self._test_remove_or_delitem(self._box.__delitem__) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n1' != 'From: foo\n\n1' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 410, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: 'Return-Path: \nX-Original-To: gkj+person at localhost\nDelivered-To: gkj+person at localhost\nReceived: from localhost (localhost [127.0.0.1])\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nDelivered-To: gkj at sundance.gregorykjohnson.com\nReceived: from localhost [127.0.0.1]\n by localhost with POP3 (fetchmail-6.2.5)\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nDate: Wed, 13 Jul 2005 17:23:11 -0400\nFrom: "Gregory K. Johnson" \nTo: gkj at gregorykjohnson.com\nSubject: Sample message\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\nMime-Version: 1.0\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\nContent-Disposition: inline\nUser-Agent: Mutt/1.5.9i\n\n\n--NMuMz9nt05w80d4+\nContent-Type: text/plain; charset=us-ascii\nContent-Disposition: inline\n\nThis is a sample message.\n\n--\nGregory K. Johnson\n\n--NMuMz9nt05w80d4+\nContent-Type: application/octet-stream\nContent-Disposition: attachment; filename="text.gz"\nContent-Transfer-Encoding: base64\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n3FYlAAAA\n\n--NMuMz9nt05w80d4+--\n' != 'Return-Path: \r\nX-Original-To: gkj+person at localhost\r\nDelivered-To: gkj+person at localhost\r\nReceived: from localhost (localhost [127.0.0.1])\r\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\r\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nDelivered-To: gkj at sundance.gregorykjohnson.com\r\nReceived: from localhost [127.0.0.1]\r\n by localhost with POP3 (fetchmail-6.2.5)\r\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\r\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\r\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\r\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nDate: Wed, 13 Jul 2005 17:23:11 -0400\r\nFrom: "Gregory K. Johnson" \r\nTo: gkj at gregorykjohnson.com\r\nSubject: Sample message\r\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\r\nMime-Version: 1.0\r\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\r\nContent-Disposition: inline\r\nUser-Agent: Mutt/1.5.9i\r\n\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Disposition: inline\r\n\r\nThis is a sample message.\r\n\r\n--\r\nGregory K. Johnson\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename="text.gz"\r\nContent-Transfer-Encoding: base64\r\n\r\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\r\n3FYlAAAA\r\n\r\n--NMuMz9nt05w80d4+--\r\n' ====================================================================== FAIL: test_flush (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 375, in test_flush self._test_flush_or_close(self._box.flush) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 398, in _test_flush_or_close self.assertEqual(len(keys), 3) AssertionError: 0 != 3 ====================================================================== FAIL: test_get (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 129, in test_get self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_file (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 172, in test_get_file self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_get_message (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 156, in test_get_message self.assertEqual(msg0['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_string (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 164, in test_get_string self.assertEqual(self._box.get_string(key0), self._template % 0) AssertionError: '\nFrom: foo\n\n0' != 'From: foo\n\n0' ====================================================================== FAIL: test_getitem (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 144, in test_getitem self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_items (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 205, in test_items self._check_iteration(self._box.items, do_keys=True, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iter (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 192, in test_iter do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iteritems (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 201, in test_iteritems do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_itervalues (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 187, in test_itervalues do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_open_close_open (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 725, in test_open_close_open self.assertEqual(len(self._box), 3) AssertionError: 0 != 3 ====================================================================== FAIL: test_pop (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 311, in test_pop self.assertEqual(self._box.pop(key0).get_payload(), '0') AssertionError: 'From: foo\n\n0' != '0' ====================================================================== FAIL: test_remove (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 83, in test_remove self._test_remove_or_delitem(self._box.remove) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n1' != 'From: foo\n\n1' ====================================================================== FAIL: test_set_item (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 270, in test_set_item self._template % 'original 0') AssertionError: '\nFrom: foo\n\noriginal 0' != 'From: foo\n\noriginal 0' ====================================================================== FAIL: test_update (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 348, in test_update self._template % 'changed 0') AssertionError: '\nFrom: foo\n\nchanged 0' != 'From: foo\n\nchanged 0' ====================================================================== FAIL: test_values (test.test_mailbox.TestMMDF) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 196, in test_values self._check_iteration(self._box.values, do_keys=False, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestMH) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 410, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: 'Return-Path: \nX-Original-To: gkj+person at localhost\nDelivered-To: gkj+person at localhost\nReceived: from localhost (localhost [127.0.0.1])\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nDelivered-To: gkj at sundance.gregorykjohnson.com\nReceived: from localhost [127.0.0.1]\n by localhost with POP3 (fetchmail-6.2.5)\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nDate: Wed, 13 Jul 2005 17:23:11 -0400\nFrom: "Gregory K. Johnson" \nTo: gkj at gregorykjohnson.com\nSubject: Sample message\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\nMime-Version: 1.0\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\nContent-Disposition: inline\nUser-Agent: Mutt/1.5.9i\n\n\n--NMuMz9nt05w80d4+\nContent-Type: text/plain; charset=us-ascii\nContent-Disposition: inline\n\nThis is a sample message.\n\n--\nGregory K. Johnson\n\n--NMuMz9nt05w80d4+\nContent-Type: application/octet-stream\nContent-Disposition: attachment; filename="text.gz"\nContent-Transfer-Encoding: base64\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n3FYlAAAA\n\n--NMuMz9nt05w80d4+--\n' != 'Return-Path: \r\nX-Original-To: gkj+person at localhost\r\nDelivered-To: gkj+person at localhost\r\nReceived: from localhost (localhost [127.0.0.1])\r\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\r\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nDelivered-To: gkj at sundance.gregorykjohnson.com\r\nReceived: from localhost [127.0.0.1]\r\n by localhost with POP3 (fetchmail-6.2.5)\r\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\r\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\r\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\r\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nDate: Wed, 13 Jul 2005 17:23:11 -0400\r\nFrom: "Gregory K. Johnson" \r\nTo: gkj at gregorykjohnson.com\r\nSubject: Sample message\r\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\r\nMime-Version: 1.0\r\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\r\nContent-Disposition: inline\r\nUser-Agent: Mutt/1.5.9i\r\n\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Disposition: inline\r\n\r\nThis is a sample message.\r\n\r\n--\r\nGregory K. Johnson\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename="text.gz"\r\nContent-Transfer-Encoding: base64\r\n\r\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\r\n3FYlAAAA\r\n\r\n--NMuMz9nt05w80d4+--\r\n' ====================================================================== FAIL: test_add (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 77, in test_add self.assertEqual(self._box.get_string(keys[0]), self._template % 0) AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n0\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f' != 'From: foo\n\n0' ====================================================================== FAIL: test_close (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 387, in test_close self._test_flush_or_close(self._box.close) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 398, in _test_flush_or_close self.assertEqual(len(keys), 3) AssertionError: 0 != 3 ====================================================================== FAIL: test_delitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 87, in test_delitem self._test_remove_or_delitem(self._box.__delitem__) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n1\n\n\x1f' != 'From: foo\n\n1' ====================================================================== FAIL: test_dump_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 410, in test_dump_message _sample_message.replace('\n', os.linesep)) AssertionError: 'Return-Path: \nX-Original-To: gkj+person at localhost\nDelivered-To: gkj+person at localhost\nReceived: from localhost (localhost [127.0.0.1])\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nDelivered-To: gkj at sundance.gregorykjohnson.com\nReceived: from localhost [127.0.0.1]\n by localhost with POP3 (fetchmail-6.2.5)\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\nDate: Wed, 13 Jul 2005 17:23:11 -0400\nFrom: "Gregory K. Johnson" \nTo: gkj at gregorykjohnson.com\nSubject: Sample message\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\nMime-Version: 1.0\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\nContent-Disposition: inline\nUser-Agent: Mutt/1.5.9i\n\n\n--NMuMz9nt05w80d4+\nContent-Type: text/plain; charset=us-ascii\nContent-Disposition: inline\n\nThis is a sample message.\n\n--\nGregory K. Johnson\n\n--NMuMz9nt05w80d4+\nContent-Type: application/octet-stream\nContent-Disposition: attachment; filename="text.gz"\nContent-Transfer-Encoding: base64\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n3FYlAAAA\n\n--NMuMz9nt05w80d4+--\n' != 'Return-Path: \r\nX-Original-To: gkj+person at localhost\r\nDelivered-To: gkj+person at localhost\r\nReceived: from localhost (localhost [127.0.0.1])\r\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\r\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nDelivered-To: gkj at sundance.gregorykjohnson.com\r\nReceived: from localhost [127.0.0.1]\r\n by localhost with POP3 (fetchmail-6.2.5)\r\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\r\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\r\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\r\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\r\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\r\nDate: Wed, 13 Jul 2005 17:23:11 -0400\r\nFrom: "Gregory K. Johnson" \r\nTo: gkj at gregorykjohnson.com\r\nSubject: Sample message\r\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\r\nMime-Version: 1.0\r\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\r\nContent-Disposition: inline\r\nUser-Agent: Mutt/1.5.9i\r\n\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Disposition: inline\r\n\r\nThis is a sample message.\r\n\r\n--\r\nGregory K. Johnson\r\n\r\n--NMuMz9nt05w80d4+\r\nContent-Type: application/octet-stream\r\nContent-Disposition: attachment; filename="text.gz"\r\nContent-Transfer-Encoding: base64\r\n\r\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\r\n3FYlAAAA\r\n\r\n--NMuMz9nt05w80d4+--\r\n' ====================================================================== FAIL: test_flush (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 375, in test_flush self._test_flush_or_close(self._box.flush) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 398, in _test_flush_or_close self.assertEqual(len(keys), 3) AssertionError: 0 != 3 ====================================================================== FAIL: test_get (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 129, in test_get self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_file (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 172, in test_get_file self._template % 0) AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n0\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f' != 'From: foo\n\n0' ====================================================================== FAIL: test_get_message (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 156, in test_get_message self.assertEqual(msg0['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_get_string (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 164, in test_get_string self.assertEqual(self._box.get_string(key0), self._template % 0) AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n0\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f' != 'From: foo\n\n0' ====================================================================== FAIL: test_getitem (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 144, in test_getitem self.assertEqual(msg['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_items (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 205, in test_items self._check_iteration(self._box.items, do_keys=True, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iter (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 192, in test_iter do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_iteritems (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 201, in test_iteritems do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_itervalues (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 187, in test_itervalues do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== FAIL: test_pop (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 311, in test_pop self.assertEqual(self._box.pop(key0).get_payload(), '0') AssertionError: 'From: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n0\n\n\x1f\x0c\n\n1,,\n\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n1\n\n\x1f' != '0' ====================================================================== FAIL: test_remove (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 83, in test_remove self._test_remove_or_delitem(self._box.remove) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 99, in _test_remove_or_delitem self.assertEqual(self._box.get_string(key1), self._template % 1) AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\n1\n\n\x1f' != 'From: foo\n\n1' ====================================================================== FAIL: test_set_item (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 270, in test_set_item self._template % 'original 0') AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\noriginal 0\n\n\x1f' != 'From: foo\n\noriginal 0' ====================================================================== FAIL: test_update (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 348, in test_update self._template % 'changed 0') AssertionError: '\nFrom: foo\n\n\n\n*** EOOH ***\n\nFrom: foo\n\n\n\nchanged 0\n\n\x1f\x0c\n\n1,,\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n*** EOOH ***\n\nReturn-Path: \n\nX-Original-To: gkj+person at localhost\n\nDelivered-To: gkj+person at localhost\n\nReceived: from localhost (localhost [127.0.0.1])\n\n by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17\n\n for ; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nDelivered-To: gkj at sundance.gregorykjohnson.com\n\nReceived: from localhost [127.0.0.1]\n\n by localhost with POP3 (fetchmail-6.2.5)\n\n for gkj+person at localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)\n\nReceived: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])\n\n by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746\n\n for ; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nReceived: by andy.gregorykjohnson.com (Postfix, from userid 1000)\n\n id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)\n\nDate: Wed, 13 Jul 2005 17:23:11 -0400\n\nFrom: "Gregory K. Johnson" \n\nTo: gkj at gregorykjohnson.com\n\nSubject: Sample message\n\nMessage-ID: <20050713212311.GC4701 at andy.gregorykjohnson.com>\n\nMime-Version: 1.0\n\nContent-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"\n\nContent-Disposition: inline\n\nUser-Agent: Mutt/1.5.9i\n\n\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: text/plain; charset=us-ascii\n\nContent-Disposition: inline\n\n\n\nThis is a sample message.\n\n\n\n--\n\nGregory K. Johnson\n\n\n\n--NMuMz9nt05w80d4+\n\nContent-Type: application/octet-stream\n\nContent-Disposition: attachment; filename="text.gz"\n\nContent-Transfer-Encoding: base64\n\n\n\nH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs\n\n3FYlAAAA\n\n\n\n--NMuMz9nt05w80d4+--\n\n\n\n\x1f' != 'From: foo\n\nchanged 0' ====================================================================== FAIL: test_values (test.test_mailbox.TestBabyl) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 196, in test_values self._check_iteration(self._box.values, do_keys=False, do_values=True) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_mailbox.py", line 229, in _check_iteration self.assertEqual(value['from'], 'foo') AssertionError: None != 'foo' ====================================================================== ERROR: test_case_1 (test.test_netrc.NetrcTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_netrc.py", line 36, in test_case_1 nrc = netrc.netrc(temp_filename) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\netrc.py", line 32, in __init__ self._parse(file, fp) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\netrc.py", line 59, in _parse "bad toplevel token %r" % tt, file, lexer.lineno) netrc.NetrcParseError: bad toplevel token 'line1' (@test, line 9) ====================================================================== ERROR: test_failures (test.test_pep277.UnicodeFileTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_pep277.py", line 64, in test_failures self._apply_failure(open, name, IOError) File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_pep277.py", line 58, in _apply_failure details.filename)) test.test_support.TestFailed: Function 'OpenWrapper('not_ at test\\abc') failed with bad filename in the exception: None ====================================================================== FAIL: test_close_fds (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_subprocess.py", line 624, in test_close_fds self.assertEqual(rc, 47) AssertionError: 3 != 47 ====================================================================== ERROR: test_extremes (test.test_winsound.BeepTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 18, in test_extremes winsound.Beep(37, 75) RuntimeError: Failed to beep ====================================================================== ERROR: test_increasingfrequency (test.test_winsound.BeepTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 23, in test_increasingfrequency winsound.Beep(i, 75) RuntimeError: Failed to beep ====================================================================== ERROR: test_alias_asterisk (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 64, in test_alias_asterisk winsound.PlaySound('SystemAsterisk', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_exclamation (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 74, in test_alias_exclamation winsound.PlaySound('SystemExclamation', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_exit (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 84, in test_alias_exit winsound.PlaySound('SystemExit', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_hand (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 94, in test_alias_hand winsound.PlaySound('SystemHand', winsound.SND_ALIAS) RuntimeError: Failed to play sound ====================================================================== ERROR: test_alias_question (test.test_winsound.PlaySoundTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\buildbot\3.0.heller-windows-amd64\build\lib\test\test_winsound.py", line 104, in test_alias_question winsound.PlaySound('SystemQuestion', winsound.SND_ALIAS) RuntimeError: Failed to play sound sincerely, -The Buildbot From buildbot at python.org Mon Oct 29 19:27:27 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Oct 2007 18:27:27 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20071029182727.421501E4006@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/185 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Mon Oct 29 19:57:47 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Oct 2007 18:57:47 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20071029185753.48C301E4006@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/203 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllibnet sincerely, -The Buildbot From python-checkins at python.org Mon Oct 29 21:52:45 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 29 Oct 2007 21:52:45 +0100 (CET) Subject: [Python-checkins] r58706 - python/trunk/Lib/mimetypes.py Message-ID: <20071029205245.E42AC1E4014@bag.python.org> Author: guido.van.rossum Date: Mon Oct 29 21:52:45 2007 New Revision: 58706 Modified: python/trunk/Lib/mimetypes.py Log: Patch 1353 by Jacob Winther. Add mp4 mapping to mimetypes.py. Modified: python/trunk/Lib/mimetypes.py ============================================================================== --- python/trunk/Lib/mimetypes.py (original) +++ python/trunk/Lib/mimetypes.py Mon Oct 29 21:52:45 2007 @@ -393,6 +393,7 @@ '.movie' : 'video/x-sgi-movie', '.mp2' : 'audio/mpeg', '.mp3' : 'audio/mpeg', + '.mp4' : 'video/mp4', '.mpa' : 'video/mpeg', '.mpe' : 'video/mpeg', '.mpeg' : 'video/mpeg', From buildbot at python.org Mon Oct 29 22:50:37 2007 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Oct 2007 21:50:37 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071029215037.B7D7D1E401D@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/138 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/SocketServer.py", line 523, in __init__ self.handle() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 316, in handle self.handle_one_request() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/BaseHTTPServer.py", line 299, in handle_one_request self.raw_requestline = self.rfile.readline() File "/usr/home/db3l/buildarea/trunk.bolen-freebsd/build/Lib/socket.py", line 366, in readline data = self._sock.recv(self._rbufsize) error: [Errno 35] Resource temporarily unavailable 2 tests failed: test_threading test_xmlrpc sincerely, -The Buildbot From python-checkins at python.org Mon Oct 29 23:15:05 2007 From: python-checkins at python.org (guido.van.rossum) Date: Mon, 29 Oct 2007 23:15:05 +0100 (CET) Subject: [Python-checkins] r58709 - python/trunk/Objects/stringobject.c python/trunk/Objects/unicodeobject.c Message-ID: <20071029221505.904851E401F@bag.python.org> Author: guido.van.rossum Date: Mon Oct 29 23:15:05 2007 New Revision: 58709 Modified: python/trunk/Objects/stringobject.c python/trunk/Objects/unicodeobject.c Log: Backport fixes for the code that decodes octal escapes (and for PyString also hex escapes) -- this was reaching beyond the end of the input string buffer, even though it is not supposed to be \0-terminated. This has no visible effect but is clearly the correct thing to do. (In 3.0 it had a visible effect after removing ob_sstate from PyString.) Modified: python/trunk/Objects/stringobject.c ============================================================================== --- python/trunk/Objects/stringobject.c (original) +++ python/trunk/Objects/stringobject.c Mon Oct 29 23:15:05 2007 @@ -616,16 +616,18 @@ case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': c = s[-1] - '0'; - if ('0' <= *s && *s <= '7') { + if (s < end && '0' <= *s && *s <= '7') { c = (c<<3) + *s++ - '0'; - if ('0' <= *s && *s <= '7') + if (s < end && '0' <= *s && *s <= '7') c = (c<<3) + *s++ - '0'; } *p++ = c; break; case 'x': - if (isxdigit(Py_CHARMASK(s[0])) - && isxdigit(Py_CHARMASK(s[1]))) { + if (s+1 < end && + isxdigit(Py_CHARMASK(s[0])) && + isxdigit(Py_CHARMASK(s[1]))) + { unsigned int x = 0; c = Py_CHARMASK(*s); s++; Modified: python/trunk/Objects/unicodeobject.c ============================================================================== --- python/trunk/Objects/unicodeobject.c (original) +++ python/trunk/Objects/unicodeobject.c Mon Oct 29 23:15:05 2007 @@ -2081,7 +2081,10 @@ startinpos = s-starts; /* \ - Escapes */ s++; - switch (*s++) { + c = *s++; + if (s > end) + c = '\0'; /* Invalid after \ */ + switch (c) { /* \x escapes */ case '\n': break; @@ -2100,9 +2103,9 @@ case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': x = s[-1] - '0'; - if ('0' <= *s && *s <= '7') { + if (s < end && '0' <= *s && *s <= '7') { x = (x<<3) + *s++ - '0'; - if ('0' <= *s && *s <= '7') + if (s < end && '0' <= *s && *s <= '7') x = (x<<3) + *s++ - '0'; } *p++ = x; From python-checkins at python.org Tue Oct 30 03:38:54 2007 From: python-checkins at python.org (kurt.kaiser) Date: Tue, 30 Oct 2007 03:38:54 +0100 (CET) Subject: [Python-checkins] r58710 - python/trunk/Lib/idlelib/NEWS.txt python/trunk/Lib/idlelib/configDialog.py python/trunk/Lib/idlelib/tabbedpages.py Message-ID: <20071030023854.E933F1E4007@bag.python.org> Author: kurt.kaiser Date: Tue Oct 30 03:38:54 2007 New Revision: 58710 Added: python/trunk/Lib/idlelib/tabbedpages.py (contents, props changed) Modified: python/trunk/Lib/idlelib/NEWS.txt python/trunk/Lib/idlelib/configDialog.py Log: check in Tal Einat's update to tabpage.py Patch 1612746 M configDialog.py M NEWS.txt AM tabbedpages.py Modified: python/trunk/Lib/idlelib/NEWS.txt ============================================================================== --- python/trunk/Lib/idlelib/NEWS.txt (original) +++ python/trunk/Lib/idlelib/NEWS.txt Tue Oct 30 03:38:54 2007 @@ -3,6 +3,9 @@ *Release date: XX-XXX-200X* +- tabpage.py updated: tabbedPages.py now supports multiple dynamic rows + of tabs. Patch 1612746 Tal Einat. + - Add confirmation dialog before printing. Patch 1717170 Tal Einat. - Show paste position if > 80 col. Patch 1659326 Tal Einat. Modified: python/trunk/Lib/idlelib/configDialog.py ============================================================================== --- python/trunk/Lib/idlelib/configDialog.py (original) +++ python/trunk/Lib/idlelib/configDialog.py Tue Oct 30 03:38:54 2007 @@ -15,7 +15,7 @@ from configHandler import idleConf from dynOptionMenuWidget import DynOptionMenu -from tabpage import TabPageSet +from tabbedpages import TabbedPageSet from keybindingDialog import GetKeysDialog from configSectionNameDialog import GetCfgSectionNameDialog from configHelpSourceEdit import GetHelpSourceDialog @@ -65,10 +65,9 @@ self.wait_window() def CreateWidgets(self): - self.tabPages = TabPageSet(self, - pageNames=['Fonts/Tabs','Highlighting','Keys','General']) - self.tabPages.ChangePage()#activates default (first) page - frameActionButtons = Frame(self) + self.tabPages = TabbedPageSet(self, + page_names=['Fonts/Tabs','Highlighting','Keys','General']) + frameActionButtons = Frame(self,pady=2) #action buttons self.buttonHelp = Button(frameActionButtons,text='Help', command=self.Help,takefocus=FALSE, @@ -103,7 +102,7 @@ self.editFont=tkFont.Font(self,('courier',10,'normal')) ##widget creation #body frame - frame=self.tabPages.pages['Fonts/Tabs']['page'] + frame=self.tabPages.pages['Fonts/Tabs'].frame #body section frames frameFont=LabelFrame(frame,borderwidth=2,relief=GROOVE, text=' Base Editor Font ') @@ -167,7 +166,7 @@ self.highlightTarget=StringVar(self) ##widget creation #body frame - frame=self.tabPages.pages['Highlighting']['page'] + frame=self.tabPages.pages['Highlighting'].frame #body section frames frameCustom=LabelFrame(frame,borderwidth=2,relief=GROOVE, text=' Custom Highlighting ') @@ -255,7 +254,7 @@ self.keyBinding=StringVar(self) ##widget creation #body frame - frame=self.tabPages.pages['Keys']['page'] + frame=self.tabPages.pages['Keys'].frame #body section frames frameCustom=LabelFrame(frame,borderwidth=2,relief=GROOVE, text=' Custom Key Bindings ') @@ -325,7 +324,7 @@ self.helpBrowser=StringVar(self) #widget creation #body - frame=self.tabPages.pages['General']['page'] + frame=self.tabPages.pages['General'].frame #body section frames frameRun=LabelFrame(frame,borderwidth=2,relief=GROOVE, text=' Startup Preferences ') Added: python/trunk/Lib/idlelib/tabbedpages.py ============================================================================== --- (empty file) +++ python/trunk/Lib/idlelib/tabbedpages.py Tue Oct 30 03:38:54 2007 @@ -0,0 +1,478 @@ +"""An implementation of tabbed pages using only standard Tkinter. + +Originally developed for use in IDLE. Based on tabpage.py. + +Classes exported: +TabbedPageSet -- A Tkinter implementation of a tabbed-page widget. +TabBarSet -- A widget containing tabs (buttons) in one or more rows. + +""" +from Tkinter import * + +class InvalidNameError(Exception): pass +class AlreadyExistsError(Exception): pass + + +class TabBarSet(Frame): + """A widget containing tabs (buttons) in one or more rows. + + Only one tab may be selected at a time. + + """ + def __init__(self, page_set, select_command, + tabs=None, n_rows=1, max_tabs_per_row=5, + expand_tabs=False, **kw): + """Constructor arguments: + + select_command -- A callable which will be called when a tab is + selected. It is called with the name of the selected tab as an + argument. + + tabs -- A list of strings, the names of the tabs. Should be specified in + the desired tab order. The first tab will be the default and first + active tab. If tabs is None or empty, the TabBarSet will be initialized + empty. + + n_rows -- Number of rows of tabs to be shown. If n_rows <= 0 or is + None, then the number of rows will be decided by TabBarSet. See + _arrange_tabs() for details. + + max_tabs_per_row -- Used for deciding how many rows of tabs are needed, + when the number of rows is not constant. See _arrange_tabs() for + details. + + """ + Frame.__init__(self, page_set, **kw) + self.select_command = select_command + self.n_rows = n_rows + self.max_tabs_per_row = max_tabs_per_row + self.expand_tabs = expand_tabs + self.page_set = page_set + + self._tabs = {} + self._tab2row = {} + if tabs: + self._tab_names = list(tabs) + else: + self._tab_names = [] + self._selected_tab = None + self._tab_rows = [] + + self.padding_frame = Frame(self, height=2, + borderwidth=0, relief=FLAT, + background=self.cget('background')) + self.padding_frame.pack(side=TOP, fill=X, expand=False) + + self._arrange_tabs() + + def add_tab(self, tab_name): + """Add a new tab with the name given in tab_name.""" + if not tab_name: + raise InvalidNameError("Invalid Tab name: '%s'" % tab_name) + if tab_name in self._tab_names: + raise AlreadyExistsError("Tab named '%s' already exists" %tab_name) + + self._tab_names.append(tab_name) + self._arrange_tabs() + + def remove_tab(self, tab_name): + """Remove the tab with the name given in tab_name.""" + if not tab_name in self._tab_names: + raise KeyError("No such Tab: '%s" % page_name) + + self._tab_names.remove(tab_name) + self._arrange_tabs() + + def select_tab(self, tab_name): + """Select the tab with the name given in tab_name.""" + if tab_name == self._selected_tab: + return + if tab_name is not None and tab_name not in self._tabs: + raise KeyError("No such Tab: '%s" % page_name) + + # deselect the current selected tab + if self._selected_tab is not None: + self._tabs[self._selected_tab].set_normal() + self._selected_tab = None + + if tab_name is not None: + # activate the tab named tab_name + self._selected_tab = tab_name + tab = self._tabs[tab_name] + tab.set_selected() + # move the tab row with the selected tab to the bottom + tab_row = self._tab2row[tab] + tab_row.pack_forget() + tab_row.pack(side=TOP, fill=X, expand=0) + + def _add_tab_row(self, tab_names, expand_tabs): + if not tab_names: + return + + tab_row = Frame(self) + tab_row.pack(side=TOP, fill=X, expand=0) + tab_row.tab_set = self + self._tab_rows.append(tab_row) + + for tab_name in tab_names: + def tab_command(select_command=self.select_command, + tab_name=tab_name): + return select_command(tab_name) + tab = TabBarSet.TabButton(tab_row, tab_name, tab_command) + if expand_tabs: + tab.pack(side=LEFT, fill=X, expand=True) + else: + tab.pack(side=LEFT) + self._tabs[tab_name] = tab + self._tab2row[tab] = tab_row + + tab.is_last_in_row = True + + def _reset_tab_rows(self): + while self._tab_rows: + tab_row = self._tab_rows.pop() + tab_row.destroy() + self._tab2row = {} + + def _arrange_tabs(self): + """ + Arrange the tabs in rows, in the order in which they were added. + + If n_rows >= 1, this will be the number of rows used. Otherwise the + number of rows will be calculated according to the number of tabs and + max_tabs_per_row. In this case, the number of rows may change when + adding/removing tabs. + + """ + # remove all tabs and rows + for tab_name in self._tabs.keys(): + self._tabs.pop(tab_name).destroy() + self._reset_tab_rows() + + if not self._tab_names: + return + + if self.n_rows is not None and self.n_rows > 0: + n_rows = self.n_rows + else: + # calculate the required number of rows + n_rows = (len(self._tab_names) - 1) // self.max_tabs_per_row + 1 + + i = 0 + expand_tabs = self.expand_tabs or n_rows > 1 + for row_index in xrange(n_rows): + # calculate required number of tabs in this row + n_tabs = (len(self._tab_names) - i - 1) // (n_rows - row_index) + 1 + tab_names = self._tab_names[i:i + n_tabs] + i += n_tabs + self._add_tab_row(tab_names, expand_tabs) + + # re-select selected tab so it is properly displayed + selected = self._selected_tab + self.select_tab(None) + if selected in self._tab_names: + self.select_tab(selected) + + class TabButton(Frame): + """A simple tab-like widget.""" + + bw = 2 # borderwidth + + def __init__(self, tab_row, name, command): + """Constructor arguments: + + name -- The tab's name, which will appear in its button. + + command -- The command to be called upon selection of the tab. It + is called with the tab's name as an argument. + + """ + Frame.__init__(self, tab_row, borderwidth=self.bw) + self.button = Radiobutton(self, text=name, command=command, + padx=5, pady=1, takefocus=FALSE, indicatoron=FALSE, + highlightthickness=0, selectcolor='', borderwidth=0) + self.button.pack(side=LEFT, fill=X, expand=True) + + self.tab_set = tab_row.tab_set + + self.is_last_in_row = False + + self._init_masks() + self.set_normal() + + def set_selected(self): + """Assume selected look""" + for widget in self, self.mskl.ml, self.mskr.mr: + widget.config(relief=RAISED) + self._place_masks(selected=True) + + def set_normal(self): + """Assume normal look""" + for widget in self, self.mskl.ml, self.mskr.mr: + widget.config(relief=RAISED) + self._place_masks(selected=False) + + def _init_masks(self): + page_set = self.tab_set.page_set + background = page_set.pages_frame.cget('background') + # mask replaces the middle of the border with the background color + self.mask = Frame(page_set, borderwidth=0, relief=FLAT, + background=background) + # mskl replaces the bottom-left corner of the border with a normal + # left border + self.mskl = Frame(page_set, borderwidth=0, relief=FLAT, + background=background) + self.mskl.ml = Frame(self.mskl, borderwidth=self.bw, + relief=RAISED) + self.mskl.ml.place(x=0, y=-self.bw, + width=2*self.bw, height=self.bw*4) + # mskr replaces the bottom-right corner of the border with a normal + # right border + self.mskr = Frame(page_set, borderwidth=0, relief=FLAT, + background=background) + self.mskr.mr = Frame(self.mskr, borderwidth=self.bw, + relief=RAISED) + + def _place_masks(self, selected=False): + height = self.bw + if selected: + height += self.bw + + self.mask.place(in_=self, + relx=0.0, x=0, + rely=1.0, y=0, + relwidth=1.0, width=0, + relheight=0.0, height=height) + + self.mskl.place(in_=self, + relx=0.0, x=-self.bw, + rely=1.0, y=0, + relwidth=0.0, width=self.bw, + relheight=0.0, height=height) + + page_set = self.tab_set.page_set + if selected and ((not self.is_last_in_row) or + (self.winfo_rootx() + self.winfo_width() < + page_set.winfo_rootx() + page_set.winfo_width()) + ): + # for a selected tab, if its rightmost edge isn't on the + # rightmost edge of the page set, the right mask should be one + # borderwidth shorter (vertically) + height -= self.bw + + self.mskr.place(in_=self, + relx=1.0, x=0, + rely=1.0, y=0, + relwidth=0.0, width=self.bw, + relheight=0.0, height=height) + + self.mskr.mr.place(x=-self.bw, y=-self.bw, + width=2*self.bw, height=height + self.bw*2) + + # finally, lower the tab set so that all of the frames we just + # placed hide it + self.tab_set.lower() + +class TabbedPageSet(Frame): + """A Tkinter tabbed-pane widget. + + Constains set of 'pages' (or 'panes') with tabs above for selecting which + page is displayed. Only one page will be displayed at a time. + + Pages may be accessed through the 'pages' attribute, which is a dictionary + of pages, using the name given as the key. A page is an instance of a + subclass of Tk's Frame widget. + + The page widgets will be created (and destroyed when required) by the + TabbedPageSet. Do not call the page's pack/place/grid/destroy methods. + + Pages may be added or removed at any time using the add_page() and + remove_page() methods. + + """ + class Page(object): + """Abstract base class for TabbedPageSet's pages. + + Subclasses must override the _show() and _hide() methods. + + """ + uses_grid = False + + def __init__(self, page_set): + self.frame = Frame(page_set, borderwidth=2, relief=RAISED) + + def _show(self): + raise NotImplementedError + + def _hide(self): + raise NotImplementedError + + class PageRemove(Page): + """Page class using the grid placement manager's "remove" mechanism.""" + uses_grid = True + + def _show(self): + self.frame.grid(row=0, column=0, sticky=NSEW) + + def _hide(self): + self.frame.grid_remove() + + class PageLift(Page): + """Page class using the grid placement manager's "lift" mechanism.""" + uses_grid = True + + def __init__(self, page_set): + super(TabbedPageSet.PageLift, self).__init__(page_set) + self.frame.grid(row=0, column=0, sticky=NSEW) + self.frame.lower() + + def _show(self): + self.frame.lift() + + def _hide(self): + self.frame.lower() + + class PagePackForget(Page): + """Page class using the pack placement manager's "forget" mechanism.""" + def _show(self): + self.frame.pack(fill=BOTH, expand=True) + + def _hide(self): + self.frame.pack_forget() + + def __init__(self, parent, page_names=None, page_class=PageLift, + n_rows=1, max_tabs_per_row=5, expand_tabs=False, + **kw): + """Constructor arguments: + + page_names -- A list of strings, each will be the dictionary key to a + page's widget, and the name displayed on the page's tab. Should be + specified in the desired page order. The first page will be the default + and first active page. If page_names is None or empty, the + TabbedPageSet will be initialized empty. + + n_rows, max_tabs_per_row -- Parameters for the TabBarSet which will + manage the tabs. See TabBarSet's docs for details. + + page_class -- Pages can be shown/hidden using three mechanisms: + + * PageLift - All pages will be rendered one on top of the other. When + a page is selected, it will be brought to the top, thus hiding all + other pages. Using this method, the TabbedPageSet will not be resized + when pages are switched. (It may still be resized when pages are + added/removed.) + + * PageRemove - When a page is selected, the currently showing page is + hidden, and the new page shown in its place. Using this method, the + TabbedPageSet may resize when pages are changed. + + * PagePackForget - This mechanism uses the pack placement manager. + When a page is shown it is packed, and when it is hidden it is + unpacked (i.e. pack_forget). This mechanism may also cause the + TabbedPageSet to resize when the page is changed. + + """ + Frame.__init__(self, parent, kw) + + self.page_class = page_class + self.pages = {} + self._pages_order = [] + self._current_page = None + self._default_page = None + + self.columnconfigure(0, weight=1) + self.rowconfigure(1, weight=1) + + self.pages_frame = Frame(self) + self.pages_frame.grid(row=1, column=0, sticky=NSEW) + if self.page_class.uses_grid: + self.pages_frame.columnconfigure(0, weight=1) + self.pages_frame.rowconfigure(0, weight=1) + + # the order of the following commands is important + self._tab_set = TabBarSet(self, self.change_page, n_rows=n_rows, + max_tabs_per_row=max_tabs_per_row, + expand_tabs=expand_tabs) + if page_names: + for name in page_names: + self.add_page(name) + self._tab_set.grid(row=0, column=0, sticky=NSEW) + + self.change_page(self._default_page) + + def add_page(self, page_name): + """Add a new page with the name given in page_name.""" + if not page_name: + raise InvalidNameError("Invalid TabPage name: '%s'" % page_name) + if page_name in self.pages: + raise AlreadyExistsError( + "TabPage named '%s' already exists" % page_name) + + self.pages[page_name] = self.page_class(self.pages_frame) + self._pages_order.append(page_name) + self._tab_set.add_tab(page_name) + + if len(self.pages) == 1: # adding first page + self._default_page = page_name + self.change_page(page_name) + + def remove_page(self, page_name): + """Destroy the page whose name is given in page_name.""" + if not page_name in self.pages: + raise KeyError("No such TabPage: '%s" % page_name) + + self._pages_order.remove(page_name) + + # handle removing last remaining, default, or currently shown page + if len(self._pages_order) > 0: + if page_name == self._default_page: + # set a new default page + self._default_page = self._pages_order[0] + else: + self._default_page = None + + if page_name == self._current_page: + self.change_page(self._default_page) + + self._tab_set.remove_tab(page_name) + page = self.pages.pop(page_name) + page.frame.destroy() + + def change_page(self, page_name): + """Show the page whose name is given in page_name.""" + if self._current_page == page_name: + return + if page_name is not None and page_name not in self.pages: + raise KeyError("No such TabPage: '%s'" % page_name) + + if self._current_page is not None: + self.pages[self._current_page]._hide() + self._current_page = None + + if page_name is not None: + self._current_page = page_name + self.pages[page_name]._show() + + self._tab_set.select_tab(page_name) + +if __name__ == '__main__': + # test dialog + root=Tk() + tabPage=TabbedPageSet(root, page_names=['Foobar','Baz'], n_rows=0, + expand_tabs=False, + ) + tabPage.pack(side=TOP, expand=TRUE, fill=BOTH) + Label(tabPage.pages['Foobar'].frame, text='Foo', pady=20).pack() + Label(tabPage.pages['Foobar'].frame, text='Bar', pady=20).pack() + Label(tabPage.pages['Baz'].frame, text='Baz').pack() + entryPgName=Entry(root) + buttonAdd=Button(root, text='Add Page', + command=lambda:tabPage.add_page(entryPgName.get())) + buttonRemove=Button(root, text='Remove Page', + command=lambda:tabPage.remove_page(entryPgName.get())) + labelPgName=Label(root, text='name of page to add/remove:') + buttonAdd.pack(padx=5, pady=5) + buttonRemove.pack(padx=5, pady=5) + labelPgName.pack(padx=5) + entryPgName.pack(padx=5) + root.mainloop() From buildbot at python.org Tue Oct 30 05:04:43 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Oct 2007 04:04:43 +0000 Subject: [Python-checkins] buildbot failure in hppa Ubuntu trunk Message-ID: <20071030040443.CFEE01E4014@bag.python.org> The Buildbot has detected a new failure of hppa Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/hppa%20Ubuntu%20trunk/builds/254 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-hppa Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: kurt.kaiser BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test00_associateDBError (bsddb.test.test_associate.AssociateErrorTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 104, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test13_associate_in_transaction (bsddb.test.test_associate.AssociateBTreeTxnTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ShelveAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateHashTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateBTreeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_associateWithDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_associateAfterDB (bsddb.test.test_associate.ThreadedAssociateRecnoTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_associate.py", line 165, in setUp db.DB_INIT_LOCK | db.DB_THREAD | self.envFlags) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicBTreeWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_EnvRemoveAndRename (bsddb.test.test_basics.BasicHashWithEnvTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.BTreeTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Transactions (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test07_TxnTruncate (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test08_TxnLateUse (bsddb.test.test_basics.HashTransactionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.BTreeMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_GetsAndPuts (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_DictionaryMethods (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_SimpleCursorStuff (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithGetReturnsNone1 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03b_SimpleCursorWithoutGetReturnsNone0 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03c_SimpleCursorGetReturnsNone2 (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_PartialGetAndPut (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test05_GetSize (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test06_Truncate (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test09_MultiDB (bsddb.test.test_basics.HashMultiDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_basics.py", line 71, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_both (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 45, in test01_both self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_dbobj_dict_interface (bsddb.test.test_dbobj.dbobjTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbobj.py", line 58, in test02_dbobj_dict_interface self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbobj.py", line 39, in open return apply(self._cobj.open, args, kwargs) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadBTreeShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_cursors (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_append (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 35, in setUp self.do_open() File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbshelve.py", line 253, in do_open self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03 (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test04_MultiCondSelect (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CondObjs (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_CreateOrExtend (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Delete (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_Modify (bsddb.test.test_dbtables.TableDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_dbtables.py", line 57, in setUp filename='tabletest.db', dbhome=homeDir, create=1) File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/dbtables.py", line 161, in __init__ self.env.open(dbhome, myflags | flagsforenv) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_close_dbenv_before_db (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 53, in test01_close_dbenv_before_db 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_close_dbenv_delete_db_success (bsddb.test.test_env_close.DBEnvClosedEarlyCrash) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_env_close.py", line 78, in test02_close_dbenv_delete_db_success 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_join (bsddb.test.test_join.JoinTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_join.py", line 57, in setUp self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_simple (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_threaded (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_set_timeout (bsddb.test.test_lock.LockingTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_lock.py", line 39, in setUp db.DB_INIT_LOCK | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_db_home (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_misc.py", line 47, in test02_db_home env.open(self.homeDir, db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.BTreeConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test01_1WriterMultiReaders (bsddb.test.test_thread.HashConcurrentDataStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.BTreeSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.BTreeThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test03_ThreadedTransactions (bsddb.test.test_thread.HashThreadedNoWaitTransactions) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_thread.py", line 64, in setUp self.env.open(homeDir, self.envflags | db.DB_CREATE) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_cachesize (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_flags (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_dbp (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_get_key (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_range (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_remove (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_stat (bsddb.test.test_sequence.DBSequenceTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_sequence.py", line 29, in setUp self.dbenv.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL, 0666) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') ====================================================================== ERROR: test_pget (bsddb.test.test_cursor_pget_bug.pget_bugTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-hppa/build/Lib/bsddb/test/test_cursor_pget_bug.py", line 25, in setUp self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) DBInvalidArgError: (22, 'Invalid argument -- Berkeley DB library configured to support only private environments') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Oct 30 18:29:16 2007 From: python-checkins at python.org (thomas.heller) Date: Tue, 30 Oct 2007 18:29:16 +0100 (CET) Subject: [Python-checkins] r58712 - python/branches/ctypes-branch/setup.py Message-ID: <20071030172916.B68A01E47C6@bag.python.org> Author: thomas.heller Date: Tue Oct 30 18:29:16 2007 New Revision: 58712 Modified: python/branches/ctypes-branch/setup.py Log: Try to fix the ctypes problems by using the system libffi if one is installed. Modified: python/branches/ctypes-branch/setup.py ============================================================================== --- python/branches/ctypes-branch/setup.py (original) +++ python/branches/ctypes-branch/setup.py Tue Oct 30 18:29:16 2007 @@ -1518,8 +1518,9 @@ sources=['_ctypes/_ctypes_test.c']) self.extensions.extend([ext, ext_test]) - if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): - return +## Use system ffi if one is found. +## if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): +## return ffi_inc = find_file('ffi.h', [], inc_dirs) if ffi_inc is not None: From buildbot at python.org Tue Oct 30 18:32:51 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Oct 2007 17:32:51 +0000 Subject: [Python-checkins] buildbot failure in x86 mvlgcc 3.0 Message-ID: <20071030173251.923F91E47CC@bag.python.org> The Buildbot has detected a new failure of x86 mvlgcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20mvlgcc%203.0/builds/223 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-linux Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed configure sincerely, -The Buildbot From python-checkins at python.org Tue Oct 30 18:51:18 2007 From: python-checkins at python.org (georg.brandl) Date: Tue, 30 Oct 2007 18:51:18 +0100 (CET) Subject: [Python-checkins] r58715 - python/trunk/Doc/using/cmdline.rst Message-ID: <20071030175118.DFE3F1E400C@bag.python.org> Author: georg.brandl Date: Tue Oct 30 18:51:18 2007 New Revision: 58715 Modified: python/trunk/Doc/using/cmdline.rst Log: Use correct markup. Modified: python/trunk/Doc/using/cmdline.rst ============================================================================== --- python/trunk/Doc/using/cmdline.rst (original) +++ python/trunk/Doc/using/cmdline.rst Tue Oct 30 18:51:18 2007 @@ -217,10 +217,10 @@ Force stdin, stdout and stderr to be totally unbuffered. On systems where it matters, also put stdin, stdout and stderr in binary mode. - Note that there is internal buffering in :func:`file.readlines` and + Note that there is internal buffering in :meth:`file.readlines` and :ref:`bltin-file-objects` (``for line in sys.stdin``) which is not influenced by this option. To work around this, you will want to use - :func:`file.readline` inside a ``while 1:`` loop. + :meth:`file.readline` inside a ``while 1:`` loop. See also :envvar:`PYTHONUNBUFFERED`. From python-checkins at python.org Tue Oct 30 18:57:12 2007 From: python-checkins at python.org (georg.brandl) Date: Tue, 30 Oct 2007 18:57:12 +0100 (CET) Subject: [Python-checkins] r58716 - python/trunk/Doc/tutorial/controlflow.rst Message-ID: <20071030175712.D042D1E4007@bag.python.org> Author: georg.brandl Date: Tue Oct 30 18:57:12 2007 New Revision: 58716 Modified: python/trunk/Doc/tutorial/controlflow.rst Log: Make example about hiding None return values at the prompt clearer. Modified: python/trunk/Doc/tutorial/controlflow.rst ============================================================================== --- python/trunk/Doc/tutorial/controlflow.rst (original) +++ python/trunk/Doc/tutorial/controlflow.rst Tue Oct 30 18:57:12 2007 @@ -235,8 +235,9 @@ technically speaking, procedures do return a value, albeit a rather boring one. This value is called ``None`` (it's a built-in name). Writing the value ``None`` is normally suppressed by the interpreter if it would be the only value -written. You can see it if you really want to:: +written. You can see it if you really want to using :keyword:`print`:: + >>> fib(0) >>> print fib(0) None From buildbot at python.org Tue Oct 30 19:04:50 2007 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Oct 2007 18:04:50 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20071030180450.4FBD11E405B@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/188 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl BUILD FAILED: failed compile sincerely, -The Buildbot From nnorwitz at gmail.com Tue Oct 30 20:15:43 2007 From: nnorwitz at gmail.com (Neal Norwitz) Date: Tue, 30 Oct 2007 14:15:43 -0500 Subject: [Python-checkins] Python Regression Test Failures refleak (1) Message-ID: <20071030191543.GA3768@python.psfb.org> test_cmd_line leaked [46, -46, 46] references, sum=46 test_urllib2_localnet leaked [3, 3, 3] references, sum=9 test_cmd_line leaked [46, -46, 46] references, sum=46 test_popen2 leaked [26, -26, 52] references, sum=52 test_poplib leaked [-88, 0, 95] references, sum=7 test_urllib2_localnet leaked [3, 3, 3] references, sum=9 From python-checkins at python.org Wed Oct 31 04:24:46 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 31 Oct 2007 04:24:46 +0100 (CET) Subject: [Python-checkins] r58722 - sandbox/trunk/import_in_py/_importlib.py Message-ID: <20071031032446.63B191E4009@bag.python.org> Author: brett.cannon Date: Wed Oct 31 04:24:45 2007 New Revision: 58722 Modified: sandbox/trunk/import_in_py/_importlib.py Log: Minor comment change. Modified: sandbox/trunk/import_in_py/_importlib.py ============================================================================== --- sandbox/trunk/import_in_py/_importlib.py (original) +++ sandbox/trunk/import_in_py/_importlib.py Wed Oct 31 04:24:45 2007 @@ -393,7 +393,7 @@ # it is known whether a module should be treated as a path or package to # minimize stat calls. Could even go as far as to stat the directory the # importer is in to detect changes and then cache all the info about what - # files were found (if stating directories is platform-dependent). + # files were found (if stat'ing directories is platform-dependent). """Load a Python source or bytecode file.""" From python-checkins at python.org Wed Oct 31 04:25:30 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 31 Oct 2007 04:25:30 +0100 (CET) Subject: [Python-checkins] r58723 - sandbox/trunk/import_in_py/zipimport_/tests.py sandbox/trunk/import_in_py/zipimport_/zipimport.py Message-ID: <20071031032530.7CF2B1E4007@bag.python.org> Author: brett.cannon Date: Wed Oct 31 04:25:30 2007 New Revision: 58723 Modified: sandbox/trunk/import_in_py/zipimport_/tests.py sandbox/trunk/import_in_py/zipimport_/zipimport.py Log: Return None for zipimporter.get_source() when bytecode exists but no source. Modified: sandbox/trunk/import_in_py/zipimport_/tests.py ============================================================================== --- sandbox/trunk/import_in_py/zipimport_/tests.py (original) +++ sandbox/trunk/import_in_py/zipimport_/tests.py Wed Oct 31 04:25:30 2007 @@ -199,12 +199,24 @@ importer.find_module('_top_level') self.assertEqual(example_code, importer.get_source('_top_level')) + def test_no_top_level_source(self): + with temp_zipfile(source=False) as zip_path: + importer = zipimport.zipimporter(zip_path) + importer.find_module('_top_level') + self.assertEqual(importer.get_source('_top_level'), None) + def test_pkg_source(self): with temp_zipfile(bytecode=False) as zip_path: importer = zipimport.zipimporter(zip_path) importer.find_module('_pkg') self.assertEqual(example_code, importer.get_source('_pkg')) + def test_no_pkg_source(self): + with temp_zipfile(source=False) as zip_path: + importer = zipimport.zipimporter(zip_path) + importer.find_module('_pkg') + self.assertEqual(importer.get_source('_pkg'), None) + class GetCode(unittest.TestCase): Modified: sandbox/trunk/import_in_py/zipimport_/zipimport.py ============================================================================== --- sandbox/trunk/import_in_py/zipimport_/zipimport.py (original) +++ sandbox/trunk/import_in_py/zipimport_/zipimport.py Wed Oct 31 04:25:30 2007 @@ -146,12 +146,18 @@ if the module does not exist, or None if only bytecode exists.""" tail = fullname.rpartition('.')[2] paths = self._check_paths(tail, '__init__') - if paths and paths[0]: - source_path = paths[0] + if paths: + if paths[0]: + source_path = paths[0] + else: + return None else: paths = self._check_paths(tail) - if paths and paths[0]: - source_path = paths[0] + if paths: + if paths[0]: + source_path = paths[0] + else: + return None else: raise ZipImportError("%s is not known" % fullname) with contextlib.closing(zipfile.ZipFile(self.archive)) as zip_: From python-checkins at python.org Wed Oct 31 04:31:22 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 31 Oct 2007 04:31:22 +0100 (CET) Subject: [Python-checkins] r58724 - in sandbox/trunk/import_in_py: Py3K Py3K/tests tests zipimport_ Message-ID: <20071031033122.A98B41E4009@bag.python.org> Author: brett.cannon Date: Wed Oct 31 04:31:22 2007 New Revision: 58724 Modified: sandbox/trunk/import_in_py/ (props changed) sandbox/trunk/import_in_py/Py3K/ (props changed) sandbox/trunk/import_in_py/Py3K/tests/ (props changed) sandbox/trunk/import_in_py/tests/ (props changed) sandbox/trunk/import_in_py/zipimport_/ (props changed) Log: Ignore .pyc and .pyo files. From python-checkins at python.org Wed Oct 31 04:51:41 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 31 Oct 2007 04:51:41 +0100 (CET) Subject: [Python-checkins] r58725 - sandbox/trunk/import_in_py/zipimport_/tests.py sandbox/trunk/import_in_py/zipimport_/zipimport.py Message-ID: <20071031035141.120EC1E4007@bag.python.org> Author: brett.cannon Date: Wed Oct 31 04:51:40 2007 New Revision: 58725 Modified: sandbox/trunk/import_in_py/zipimport_/tests.py sandbox/trunk/import_in_py/zipimport_/zipimport.py Log: zipimport.get_data() might be called with an absolute path to the zip file. Modified: sandbox/trunk/import_in_py/zipimport_/tests.py ============================================================================== --- sandbox/trunk/import_in_py/zipimport_/tests.py (original) +++ sandbox/trunk/import_in_py/zipimport_/tests.py Wed Oct 31 04:51:40 2007 @@ -47,7 +47,7 @@ py_compile.compile(code_path, doraise=True) zip_file.write(code_path + bytecode_suffix) zip_file.close() - yield zip_path + yield os.path.abspath(zip_path) finally: zip_file.close() for path in created_paths: @@ -167,6 +167,13 @@ with temp_zipfile(bytecode=False) as zip_path: importer = zipimport.zipimporter(zip_path) self.assertEqual(importer.get_data('_top_level.py'), example_code) + + def test_absolute_path(self): + with temp_zipfile(bytecode=False) as zip_path: + importer = zipimport.zipimporter(zip_path) + path = os.path.join(os.path.abspath(zip_path), '_top_level.py') + self.assertEqual(importer.get_data(path), example_code) + # XXX Test that file reading is done in binary mode. Modified: sandbox/trunk/import_in_py/zipimport_/zipimport.py ============================================================================== --- sandbox/trunk/import_in_py/zipimport_/zipimport.py (original) +++ sandbox/trunk/import_in_py/zipimport_/zipimport.py Wed Oct 31 04:51:40 2007 @@ -40,17 +40,17 @@ path = os.path.split(path)[0] else: raise ZipImportError("%s is not a zip file" % archivepath) - self.archive = path # Path to zip file. + self.archive = os.path.abspath(path) # Path to zip file. # XXX C version guarantees 'prefix' ends in a path separator. - self.prefix = archivepath[len(path)+1:] # Package directory. - if not path in _zip_directory_cache: + self.prefix = archivepath[len(self.archive)+1:] # Package directory. + if not self.archive in _zip_directory_cache: with contextlib.closing(zipfile.ZipFile(path)) as zip_file: zip_info_list = zip_file.infolist() # XXX Need to duplicate tuple from original zipimport? zip_info_dict = dict((info.filename, info) for info in zip_info_list) - _zip_directory_cache[path] = zip_info_dict - self._files = _zip_directory_cache[path] + _zip_directory_cache[self.archive] = zip_info_dict + self._files = _zip_directory_cache[self.archive] def __repr__(self): if self.prefix: @@ -134,6 +134,8 @@ source or bytecode files. """ + if pathname.startswith(self.archive): + pathname = pathname[len(self.archive)+1:] # Cover path separator. with contextlib.closing(zipfile.ZipFile(self.archive)) as zip_: try: return zip_.open(pathname, 'r').read() From python-checkins at python.org Wed Oct 31 05:29:14 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 31 Oct 2007 05:29:14 +0100 (CET) Subject: [Python-checkins] r58726 - sandbox/trunk/import_in_py/zipimport_/zipimport.py Message-ID: <20071031042914.1D5B41E4007@bag.python.org> Author: brett.cannon Date: Wed Oct 31 05:29:13 2007 New Revision: 58726 Modified: sandbox/trunk/import_in_py/zipimport_/zipimport.py Log: Consolidate the list of differences between this version of zipimport and what ships currently with Python. Also raise a TypeError if a false value is passed in as an argument to zipimport.__init__. Modified: sandbox/trunk/import_in_py/zipimport_/zipimport.py ============================================================================== --- sandbox/trunk/import_in_py/zipimport_/zipimport.py (original) +++ sandbox/trunk/import_in_py/zipimport_/zipimport.py Wed Oct 31 05:29:13 2007 @@ -1,4 +1,15 @@ -"""A re-implementation of zipimport to use importlib.""" +"""A re-implementation of zipimport to use importlib. + +XXX Differences with 2.x version: + + + _zip_directory_cache uses instances of zipfile.ZipInfo as values instead + of tuples. + + zipimporter.prefix does not necessarily end in a path separator. + + ZipImporterError is raised if the argument to zipimporter.__init__ does + not contain a path to a zip file; 2.x version allows for opening a any + file but raises errors later on during usage. + +""" import importlib import contextlib @@ -9,11 +20,12 @@ import zipfile -# XXX Import lock prevents concurrency issues during importation use, but does -# not make any guarantees for non-import uses. -# XXX Use zipfile.ZipInfo instances for values of file paths (C version uses -# tuples). -# XXX Prevents any dynamic update to the zip file from being detected. +# XXX _zip_directory_cache issues: +# * Import lock prevents concurrency issues during importation use, but does +# not make any guarantees for non-import uses. +# * Uses zipfile.ZipInfo instances for values of file paths (C version uses +# tuples). +# * Prevents any dynamic update to the zip file from being detected. _zip_directory_cache = {} @@ -33,6 +45,8 @@ than a zip file is passed in then ZipImportError is raised. """ + if not archivepath: + raise TypeError("argument must represent a path to a zip file") path = archivepath while path and path != os.sep: if zipfile.is_zipfile(path): @@ -41,12 +55,10 @@ else: raise ZipImportError("%s is not a zip file" % archivepath) self.archive = os.path.abspath(path) # Path to zip file. - # XXX C version guarantees 'prefix' ends in a path separator. self.prefix = archivepath[len(self.archive)+1:] # Package directory. if not self.archive in _zip_directory_cache: with contextlib.closing(zipfile.ZipFile(path)) as zip_file: zip_info_list = zip_file.infolist() - # XXX Need to duplicate tuple from original zipimport? zip_info_dict = dict((info.filename, info) for info in zip_info_list) _zip_directory_cache[self.archive] = zip_info_dict From python-checkins at python.org Wed Oct 31 05:33:31 2007 From: python-checkins at python.org (brett.cannon) Date: Wed, 31 Oct 2007 05:33:31 +0100 (CET) Subject: [Python-checkins] r58727 - sandbox/trunk/import_in_py/zipimport_/zipimport.py Message-ID: <20071031043331.26ECC1E4007@bag.python.org> Author: brett.cannon Date: Wed Oct 31 05:33:30 2007 New Revision: 58727 Modified: sandbox/trunk/import_in_py/zipimport_/zipimport.py Log: Change constructor so that even an empty argument is okay; someone might have a file named 'None' that is a zip file. Modified: sandbox/trunk/import_in_py/zipimport_/zipimport.py ============================================================================== --- sandbox/trunk/import_in_py/zipimport_/zipimport.py (original) +++ sandbox/trunk/import_in_py/zipimport_/zipimport.py Wed Oct 31 05:33:30 2007 @@ -5,9 +5,11 @@ + _zip_directory_cache uses instances of zipfile.ZipInfo as values instead of tuples. + zipimporter.prefix does not necessarily end in a path separator. - + ZipImporterError is raised if the argument to zipimporter.__init__ does + + ZipImportError is raised if the argument to zipimporter.__init__ does not contain a path to a zip file; 2.x version allows for opening a any file but raises errors later on during usage. + + ZipImportError is raised even if None is passed in to + zipimport.__init__. """ import importlib @@ -45,15 +47,13 @@ than a zip file is passed in then ZipImportError is raised. """ - if not archivepath: - raise TypeError("argument must represent a path to a zip file") path = archivepath while path and path != os.sep: if zipfile.is_zipfile(path): break path = os.path.split(path)[0] else: - raise ZipImportError("%s is not a zip file" % archivepath) + raise ZipImportError("%s is not a path to a zip file" % archivepath) self.archive = os.path.abspath(path) # Path to zip file. self.prefix = archivepath[len(self.archive)+1:] # Package directory. if not self.archive in _zip_directory_cache: From python-checkins at python.org Wed Oct 31 07:33:20 2007 From: python-checkins at python.org (neal.norwitz) Date: Wed, 31 Oct 2007 07:33:20 +0100 (CET) Subject: [Python-checkins] r58728 - python/trunk/Modules/mmapmodule.c Message-ID: <20071031063320.E5EFC1E400F@bag.python.org> Author: neal.norwitz Date: Wed Oct 31 07:33:20 2007 New Revision: 58728 Modified: python/trunk/Modules/mmapmodule.c Log: Fix some compiler warnings for signed comparisons on Unix and Windows. Modified: python/trunk/Modules/mmapmodule.c ============================================================================== --- python/trunk/Modules/mmapmodule.c (original) +++ python/trunk/Modules/mmapmodule.c Wed Oct 31 07:33:20 2007 @@ -710,7 +710,7 @@ return NULL; if (i < 0) i += self->size; - if (i < 0 || i > self->size) { + if (i < 0 || (size_t)i > self->size) { PyErr_SetString(PyExc_IndexError, "mmap index out of range"); return NULL; @@ -851,7 +851,7 @@ return -1; if (i < 0) i += self->size; - if (i < 0 || i > self->size) { + if (i < 0 || (size_t)i > self->size) { PyErr_SetString(PyExc_IndexError, "mmap index out of range"); return -1; From buildbot at python.org Wed Oct 31 07:38:27 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 06:38:27 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20071031063827.BA6C91E4007@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/2577 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Wed Oct 31 07:38:32 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 06:38:32 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable trunk Message-ID: <20071031063832.2CC2A1E4007@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%20trunk/builds/307 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Wed Oct 31 07:38:33 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 06:38:33 +0000 Subject: [Python-checkins] buildbot failure in x86 mvlgcc trunk Message-ID: <20071031063833.4B7F51E400C@bag.python.org> The Buildbot has detected a new failure of x86 mvlgcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20mvlgcc%20trunk/builds/917 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-linux Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Wed Oct 31 07:38:34 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 06:38:34 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20071031063834.441C91E400B@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/303 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Wed Oct 31 07:38:35 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 06:38:35 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian trunk Message-ID: <20071031063835.718271E4007@bag.python.org> The Buildbot has detected a new failure of S-390 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%20trunk/builds/1290 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Wed Oct 31 07:38:45 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 06:38:45 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20071031063845.D62C31E4009@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/2335 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Wed Oct 31 07:38:51 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 06:38:51 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20071031063851.CEBBA1E4007@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/2291 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Wed Oct 31 07:38:58 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 06:38:58 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc trunk Message-ID: <20071031063859.49D6C1E400C@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%20trunk/builds/2392 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Wed Oct 31 07:39:12 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 06:39:12 +0000 Subject: [Python-checkins] buildbot failure in x86 FreeBSD trunk Message-ID: <20071031063912.4EDA91E4007@bag.python.org> The Buildbot has detected a new failure of x86 FreeBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20FreeBSD%20trunk/builds/141 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-freebsd Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Wed Oct 31 07:40:19 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 06:40:19 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20071031064019.52F721E4007@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/151 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,neal.norwitz BUILD FAILED: failed svn sincerely, -The Buildbot From python-checkins at python.org Wed Oct 31 08:56:42 2007 From: python-checkins at python.org (thomas.heller) Date: Wed, 31 Oct 2007 08:56:42 +0100 (CET) Subject: [Python-checkins] r58729 - python/branches/ctypes-branch/Lib/ctypes/test/test_cfuncs.py python/branches/ctypes-branch/Lib/ctypes/test/test_functions.py Message-ID: <20071031075642.84C951E4007@bag.python.org> Author: thomas.heller Date: Wed Oct 31 08:56:42 2007 New Revision: 58729 Modified: python/branches/ctypes-branch/Lib/ctypes/test/test_cfuncs.py python/branches/ctypes-branch/Lib/ctypes/test/test_functions.py Log: Enable all the c_longdouble tests again. Modified: python/branches/ctypes-branch/Lib/ctypes/test/test_cfuncs.py ============================================================================== --- python/branches/ctypes-branch/Lib/ctypes/test/test_cfuncs.py (original) +++ python/branches/ctypes-branch/Lib/ctypes/test/test_cfuncs.py Wed Oct 31 08:56:42 2007 @@ -158,17 +158,17 @@ self.failUnlessEqual(self._dll.tf_bd(0, 42.), 14.) self.failUnlessEqual(self.S(), 42) -## def test_longdouble(self): -## self._dll.tf_D.restype = c_longdouble -## self._dll.tf_D.argtypes = (c_longdouble,) -## self.failUnlessEqual(self._dll.tf_D(42.), 14.) -## self.failUnlessEqual(self.S(), 42) - -## def test_longdouble_plus(self): -## self._dll.tf_bD.restype = c_longdouble -## self._dll.tf_bD.argtypes = (c_byte, c_longdouble) -## self.failUnlessEqual(self._dll.tf_bD(0, 42.), 14.) -## self.failUnlessEqual(self.S(), 42) + def test_longdouble(self): + self._dll.tf_D.restype = c_longdouble + self._dll.tf_D.argtypes = (c_longdouble,) + self.failUnlessEqual(self._dll.tf_D(42.), 14.) + self.failUnlessEqual(self.S(), 42) + + def test_longdouble_plus(self): + self._dll.tf_bD.restype = c_longdouble + self._dll.tf_bD.argtypes = (c_byte, c_longdouble) + self.failUnlessEqual(self._dll.tf_bD(0, 42.), 14.) + self.failUnlessEqual(self.S(), 42) def test_callwithresult(self): def process_result(result): Modified: python/branches/ctypes-branch/Lib/ctypes/test/test_functions.py ============================================================================== --- python/branches/ctypes-branch/Lib/ctypes/test/test_functions.py (original) +++ python/branches/ctypes-branch/Lib/ctypes/test/test_functions.py Wed Oct 31 08:56:42 2007 @@ -143,17 +143,17 @@ self.failUnlessEqual(result, -21) self.failUnlessEqual(type(result), float) -## def test_longdoubleresult(self): -## f = dll._testfunc_D_bhilfD -## f.argtypes = [c_byte, c_short, c_int, c_long, c_float, c_longdouble] -## f.restype = c_longdouble -## result = f(1, 2, 3, 4, 5.0, 6.0) -## self.failUnlessEqual(result, 21) -## self.failUnlessEqual(type(result), float) - -## result = f(-1, -2, -3, -4, -5.0, -6.0) -## self.failUnlessEqual(result, -21) -## self.failUnlessEqual(type(result), float) + def test_longdoubleresult(self): + f = dll._testfunc_D_bhilfD + f.argtypes = [c_byte, c_short, c_int, c_long, c_float, c_longdouble] + f.restype = c_longdouble + result = f(1, 2, 3, 4, 5.0, 6.0) + self.failUnlessEqual(result, 21) + self.failUnlessEqual(type(result), float) + + result = f(-1, -2, -3, -4, -5.0, -6.0) + self.failUnlessEqual(result, -21) + self.failUnlessEqual(type(result), float) def test_longlongresult(self): try: From python-checkins at python.org Wed Oct 31 18:19:33 2007 From: python-checkins at python.org (martin.v.loewis) Date: Wed, 31 Oct 2007 18:19:33 +0100 (CET) Subject: [Python-checkins] r58731 - python/trunk/Misc/developers.txt Message-ID: <20071031171933.B7A231E400A@bag.python.org> Author: martin.v.loewis Date: Wed Oct 31 18:19:33 2007 New Revision: 58731 Modified: python/trunk/Misc/developers.txt Log: Adding Christian Heimes. Modified: python/trunk/Misc/developers.txt ============================================================================== --- python/trunk/Misc/developers.txt (original) +++ python/trunk/Misc/developers.txt Wed Oct 31 18:19:33 2007 @@ -17,6 +17,9 @@ Permissions History ------------------- +- Christian Heimes was given SVN access on 31 October 2007 by MvL, + for general contributions to Python. + - Chris Monson was given SVN access on 20 October 2007 by NCN, for his work on editing PEPs. From buildbot at python.org Wed Oct 31 20:40:24 2007 From: buildbot at python.org (buildbot at python.org) Date: Wed, 31 Oct 2007 19:40:24 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20071031194024.5014B1E400A@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/192 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: christian.heimes BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Wed Oct 31 22:57:59 2007 From: python-checkins at python.org (raymond.hettinger) Date: Wed, 31 Oct 2007 22:57:59 +0100 (CET) Subject: [Python-checkins] r58737 - python/trunk/Doc/library/marshal.rst Message-ID: <20071031215759.2CBB21E400A@bag.python.org> Author: raymond.hettinger Date: Wed Oct 31 22:57:58 2007 New Revision: 58737 Modified: python/trunk/Doc/library/marshal.rst Log: Clarify the reasons why pickle is almost always better than marshal Modified: python/trunk/Doc/library/marshal.rst ============================================================================== --- python/trunk/Doc/library/marshal.rst (original) +++ python/trunk/Doc/library/marshal.rst Wed Oct 31 22:57:58 2007 @@ -25,7 +25,9 @@ writing the "pseudo-compiled" code for Python modules of :file:`.pyc` files. Therefore, the Python maintainers reserve the right to modify the marshal format in backward incompatible ways should the need arise. If you're serializing and -de-serializing Python objects, use the :mod:`pickle` module instead. +de-serializing Python objects, use the :mod:`pickle` module instead -- the +performance is comparable, version independence is guaranteed, and pickle +supports a substantially wider range of objects than marshal. .. warning:: @@ -43,6 +45,12 @@ (they will cause infinite loops). .. warning:: + + Some unsupported types such as subclasses of builtins will appear to marshal + and unmarshal correctly, but in fact, their type will change and the + additional subclass functionality and instance attributes will be lost. + +.. warning:: On machines where C's ``long int`` type has more than 32 bits (such as the DEC Alpha), it is possible to create plain Python integers that are longer From python-checkins at python.org Wed Oct 31 23:02:21 2007 From: python-checkins at python.org (raymond.hettinger) Date: Wed, 31 Oct 2007 23:02:21 +0100 (CET) Subject: [Python-checkins] r58738 - python/branches/release25-maint/Doc/lib/libmarshal.tex Message-ID: <20071031220221.D66971E401E@bag.python.org> Author: raymond.hettinger Date: Wed Oct 31 23:02:21 2007 New Revision: 58738 Modified: python/branches/release25-maint/Doc/lib/libmarshal.tex Log: Clarify the reasons why pickle is almost always better than marshal Modified: python/branches/release25-maint/Doc/lib/libmarshal.tex ============================================================================== --- python/branches/release25-maint/Doc/lib/libmarshal.tex (original) +++ python/branches/release25-maint/Doc/lib/libmarshal.tex Wed Oct 31 23:02:21 2007 @@ -26,7 +26,9 @@ Python modules of \file{.pyc} files. Therefore, the Python maintainers reserve the right to modify the marshal format in backward incompatible ways should the need arise. If you're serializing and -de-serializing Python objects, use the \module{pickle} module instead. +de-serializing Python objects, use the \module{pickle} module instead + --- the performance is comparable, version independence is guaranteed, +and pickle supports a substantially wider range of objects than marshal. \refstmodindex{pickle} \refstmodindex{shelve} \obindex{code} @@ -47,6 +49,12 @@ therein are themselves supported; and recursive lists and dictionaries should not be written (they will cause infinite loops). +\begin{notice}[warning] +Some unsupported types such as subclasses of builtins will appear to marshal +and unmarshal correctly, but in fact, their type will change and the +additional subclass functionality and instance attributes will be lost. +\end{notice} + \strong{Caveat:} On machines where C's \code{long int} type has more than 32 bits (such as the DEC Alpha), it is possible to create plain Python integers that are longer than 32 bits. From python-checkins at python.org Wed Oct 31 23:15:50 2007 From: python-checkins at python.org (raymond.hettinger) Date: Wed, 31 Oct 2007 23:15:50 +0100 (CET) Subject: [Python-checkins] r58739 - python/trunk/Doc/library/marshal.rst Message-ID: <20071031221550.0AE3C1E4012@bag.python.org> Author: raymond.hettinger Date: Wed Oct 31 23:15:49 2007 New Revision: 58739 Modified: python/trunk/Doc/library/marshal.rst Log: Sets are marshalable. Modified: python/trunk/Doc/library/marshal.rst ============================================================================== --- python/trunk/Doc/library/marshal.rst (original) +++ python/trunk/Doc/library/marshal.rst Wed Oct 31 23:15:49 2007 @@ -38,7 +38,7 @@ Not all Python object types are supported; in general, only objects whose value is independent from a particular invocation of Python can be written and read by this module. The following types are supported: ``None``, integers, long -integers, floating point numbers, strings, Unicode objects, tuples, lists, +integers, floating point numbers, strings, Unicode objects, tuples, lists, sets, dictionaries, and code objects, where it should be understood that tuples, lists and dictionaries are only supported as long as the values contained therein are themselves supported; and recursive lists and dictionaries should not be written From python-checkins at python.org Wed Oct 31 23:16:25 2007 From: python-checkins at python.org (raymond.hettinger) Date: Wed, 31 Oct 2007 23:16:25 +0100 (CET) Subject: [Python-checkins] r58740 - python/branches/release25-maint/Doc/lib/libmarshal.tex Message-ID: <20071031221625.AEE7D1E401C@bag.python.org> Author: raymond.hettinger Date: Wed Oct 31 23:16:25 2007 New Revision: 58740 Modified: python/branches/release25-maint/Doc/lib/libmarshal.tex Log: Sets are marshalable. Modified: python/branches/release25-maint/Doc/lib/libmarshal.tex ============================================================================== --- python/branches/release25-maint/Doc/lib/libmarshal.tex (original) +++ python/branches/release25-maint/Doc/lib/libmarshal.tex Wed Oct 31 23:16:25 2007 @@ -43,7 +43,7 @@ whose value is independent from a particular invocation of Python can be written and read by this module. The following types are supported: \code{None}, integers, long integers, floating point numbers, -strings, Unicode objects, tuples, lists, dictionaries, and code +strings, Unicode objects, tuples, lists, sets, dictionaries, and code objects, where it should be understood that tuples, lists and dictionaries are only supported as long as the values contained therein are themselves supported; and recursive lists and dictionaries