]> granicus.if.org Git - python/commitdiff
Merged revisions 64365,64370,64406,64408-64409,64412,64416-64417,64420-64421,64425...
authorBenjamin Peterson <benjamin@python.org>
Wed, 2 Jul 2008 16:11:42 +0000 (16:11 +0000)
committerBenjamin Peterson <benjamin@python.org>
Wed, 2 Jul 2008 16:11:42 +0000 (16:11 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r64365 | raymond.hettinger | 2008-06-17 19:56:57 -0500 (Tue, 17 Jun 2008) | 1 line

  Fix double decref.
........
  r64370 | mark.dickinson | 2008-06-18 04:20:17 -0500 (Wed, 18 Jun 2008) | 2 lines

  Typo fix
........
  r64406 | andrew.kuchling | 2008-06-19 09:02:30 -0500 (Thu, 19 Jun 2008) | 1 line

  Only include update_lines_cols() function when it's actually going to be used
........
  r64408 | amaury.forgeotdarc | 2008-06-19 14:57:39 -0500 (Thu, 19 Jun 2008) | 2 lines

  test_macos can be skipped on non-mac platforms.
........
  r64409 | andrew.kuchling | 2008-06-19 15:33:31 -0500 (Thu, 19 Jun 2008) | 1 line

  Put threading in front of thread
........
  r64412 | amaury.forgeotdarc | 2008-06-19 16:17:12 -0500 (Thu, 19 Jun 2008) | 3 lines

  In test_site, correctly escape backslashes in path names.
  This allows the test to pass when the username begins with a lowercase 't'...
........
  r64416 | vinay.sajip | 2008-06-19 17:40:17 -0500 (Thu, 19 Jun 2008) | 2 lines

  Bug #3136: fileConfig()'s disabling of old loggers is now conditional via an optional disable_existing_loggers parameter, but the default value is such that the old behaviour is preserved.
  Thanks to Leandro Lucarella for the patch.
........
  r64417 | vinay.sajip | 2008-06-19 17:41:08 -0500 (Thu, 19 Jun 2008) | 1 line

  Updated with fix for #3136.
........
  r64420 | andrew.kuchling | 2008-06-19 21:05:57 -0500 (Thu, 19 Jun 2008) | 1 line

  Various items
........
  r64421 | andrew.kuchling | 2008-06-19 21:11:42 -0500 (Thu, 19 Jun 2008) | 1 line

  Fix comment typos
........
  r64425 | andrew.kuchling | 2008-06-20 06:39:54 -0500 (Fri, 20 Jun 2008) | 1 line

  Various items
........
  r64426 | mark.dickinson | 2008-06-20 09:53:43 -0500 (Fri, 20 Jun 2008) | 4 lines

  Issue #3004:  Minor fix to slice.indices().  slice(-10).indices(9) now
  returns (0, 0, 1) instead of (0, -1, 1), and slice(None, 10, -1).indices(10)
  returns (9, 9, -1) instead of (9, 10, -1).
........
  r64427 | mark.dickinson | 2008-06-20 10:17:41 -0500 (Fri, 20 Jun 2008) | 2 lines

  Fix outdated count of the number of new math module functions.
........
  r64428 | mark.dickinson | 2008-06-20 10:26:19 -0500 (Fri, 20 Jun 2008) | 2 lines

  Fix another typo in math_sum comment
........

Doc/library/math.rst
Lib/logging/config.py
Lib/test/test_site.py
Lib/test/test_slice.py
Modules/_cursesmodule.c
Modules/mathmodule.c
Objects/sliceobject.c

index aba6b0e52978d959f3c7b9850f5220bc97fa53a1..c8090b5afd2e678e7e74b4957ab6bb309280a0bb 100644 (file)
@@ -43,7 +43,7 @@ Number-theoretic and representation functions:
 
 .. function:: factorial(x)
 
-   Return *x* factorial.  Raises :exc:`ValueError` if *x* is not intergral or
+   Return *x* factorial.  Raises :exc:`ValueError` if *x* is not integral or
    is negative.
 
 .. function:: floor(x)
index 73f3eccc6e2dace0a59a498266f85e51c39d3f96..645a7ba30fa1034ca5a6b2878c42766d3b3223af 100644 (file)
@@ -49,7 +49,7 @@ else:
 #   _listener holds the server object doing the listening
 _listener = None
 
-def fileConfig(fname, defaults=None):
+def fileConfig(fname, defaults=None, disable_existing_loggers=1):
     """
     Read the logging configuration from a ConfigParser-format file.
 
@@ -79,7 +79,7 @@ def fileConfig(fname, defaults=None):
         del logging._handlerList[:]
         # Handlers add themselves to logging._handlers
         handlers = _install_handlers(cp, formatters)
-        _install_loggers(cp, handlers)
+        _install_loggers(cp, handlers, disable_existing_loggers)
     finally:
         logging._releaseLock()
 
@@ -167,7 +167,7 @@ def _install_handlers(cp, formatters):
     return handlers
 
 
-def _install_loggers(cp, handlers):
+def _install_loggers(cp, handlers, disable_existing_loggers):
     """Create and install loggers"""
 
     # configure the root first
@@ -252,7 +252,7 @@ def _install_loggers(cp, handlers):
             logger.level = logging.NOTSET
             logger.handlers = []
             logger.propagate = 1
-        else:
+        elif disable_existing_loggers:
             logger.disabled = 1
 
 
index 3f93a38fa43e0b637ef5dba30f85c2e425d69551..8a61e2112897121e4b7e2868ff6bebdd86e70928 100644 (file)
@@ -101,17 +101,17 @@ class HelperFunctionsTests(unittest.TestCase):
         self.assert_(usersite in sys.path)
 
         rc = subprocess.call([sys.executable, '-c',
-            'import sys; sys.exit("%s" in sys.path)' % usersite])
+            'import sys; sys.exit(%r in sys.path)' % usersite])
         self.assertEqual(rc, 1)
 
         rc = subprocess.call([sys.executable, '-s', '-c',
-            'import sys; sys.exit("%s" in sys.path)' % usersite])
+            'import sys; sys.exit(%r in sys.path)' % usersite])
         self.assertEqual(rc, 0)
 
         env = os.environ.copy()
         env["PYTHONNOUSERSITE"] = "1"
         rc = subprocess.call([sys.executable, '-c',
-            'import sys; sys.exit("%s" in sys.path)' % usersite],
+            'import sys; sys.exit(%r in sys.path)' % usersite],
             env=env)
         self.assertEqual(rc, 0)
 
index e61974658c990c81383a0c25a9b5c37e0e0d5070..640c8c0742696b03e463b2eecfaf846e4f975936 100644 (file)
@@ -82,6 +82,20 @@ class SliceTest(unittest.TestCase):
         self.assertEqual(slice(None,  None, -1).indices(10), (9, -1, -1))
         self.assertEqual(slice(None,  None, -2).indices(10), (9, -1, -2))
         self.assertEqual(slice(3,     None, -2).indices(10), (3, -1, -2))
+        # issue 3004 tests
+        self.assertEqual(slice(None, -9).indices(10), (0, 1, 1))
+        self.assertEqual(slice(None, -10).indices(10), (0, 0, 1))
+        self.assertEqual(slice(None, -11).indices(10), (0, 0, 1))
+        self.assertEqual(slice(None, -10, -1).indices(10), (9, 0, -1))
+        self.assertEqual(slice(None, -11, -1).indices(10), (9, -1, -1))
+        self.assertEqual(slice(None, -12, -1).indices(10), (9, -1, -1))
+        self.assertEqual(slice(None, 9).indices(10), (0, 9, 1))
+        self.assertEqual(slice(None, 10).indices(10), (0, 10, 1))
+        self.assertEqual(slice(None, 11).indices(10), (0, 10, 1))
+        self.assertEqual(slice(None, 8, -1).indices(10), (9, 8, -1))
+        self.assertEqual(slice(None, 9, -1).indices(10), (9, 9, -1))
+        self.assertEqual(slice(None, 10, -1).indices(10), (9, 9, -1))
+
         self.assertEqual(
             slice(-100,  100     ).indices(10),
             slice(None).indices(10)
index 45a0821654fe30b32387f41786e57be59fed2b7b..210cb42a69d357271a3a8a68fd69da418013f5ba 100644 (file)
@@ -2380,6 +2380,7 @@ PyCurses_QiFlush(PyObject *self, PyObject *args)
 
 /* Internal helper used for updating curses.LINES, curses.COLS, _curses.LINES
  * and _curses.COLS */
+#if defined(HAVE_CURSES_RESIZETERM) || defined(HAVE_CURSES_RESIZE_TERM)
 static int
 update_lines_cols(void)
 {
@@ -2424,6 +2425,7 @@ update_lines_cols(void)
   Py_DECREF(m);
   return 1;
 }
+#endif
 
 #ifdef HAVE_CURSES_RESIZETERM
 static PyObject *
index c57b77a8f63c7398315eeddbb837dcc5923baa6b..a196834de4a09a874da3ec44e52ef8fe8616c15a 100644 (file)
@@ -382,11 +382,11 @@ FUNC1(tanh, tanh, 0,
    sum([1e+308, 1e+308, 1e-308]) raises an OverflowError due to the
    overflow of the first partial sum.
 
-   Note 3: The itermediate values lo, yr, and hi are declared volatile so
-   aggressive compilers won't algebraicly reduce lo to always be exactly 0.0.
+   Note 3: The intermediate values lo, yr, and hi are declared volatile so
+   aggressive compilers won't algebraically reduce lo to always be exactly 0.0.
    Also, the volatile declaration forces the values to be stored in memory as
    regular doubles instead of extended long precision (80-bit) values.  This
-   prevents double rounding because any addition or substraction of two doubles
+   prevents double rounding because any addition or subtraction of two doubles
    can be resolved exactly into double-sized hi and lo values.  As long as the 
    hi value gets forced into a double before yr and lo are computed, the extra
    bits in downstream extended precision operations (x87 for example) will be
@@ -614,7 +614,6 @@ math_factorial(PyObject *self, PyObject *arg)
 
 error:
        Py_DECREF(result);
-       Py_XDECREF(iobj);
        return NULL;
 }
 
index 69a035d1e5f1f8c385557ee78f2fc5e53f1b857b..fbf0955af49489c05c42fbd92692d89b32af0d60 100644 (file)
@@ -169,8 +169,9 @@ PySlice_GetIndicesEx(PySliceObject *r, Py_ssize_t length,
        else {
                if (!_PyEval_SliceIndex(r->stop, stop)) return -1;
                if (*stop < 0) *stop += length;
-               if (*stop < 0) *stop = -1;
-               if (*stop > length) *stop = length;
+               if (*stop < 0) *stop = (*step < 0) ? -1 : 0;
+               if (*stop >= length)
+                       *stop = (*step < 0) ? length - 1 : length;
        }
 
        if ((*step < 0 && *stop >= *start)