]> granicus.if.org Git - python/commitdiff
PEP 418: Rename adjusted attribute to adjustable in time.get_clock_info() result
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 12 Jun 2012 20:46:37 +0000 (22:46 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Tue, 12 Jun 2012 20:46:37 +0000 (22:46 +0200)
Fix also its value on Windows and Linux according to its documentation:
"adjustable" indicates if the clock *can be* adjusted, not if it is or was
adjusted.

In most cases, it is not possible to indicate if a clock is or was adjusted.

Doc/library/time.rst
Include/pytime.h
Lib/test/test_time.py
Misc/NEWS
Modules/timemodule.c
Python/pytime.c

index ba6b176e8e624b8a2a8a48412a9b6cdec813e3fc..2a765ac17c70cedb8bdca71d1355d5d53520588f 100644 (file)
@@ -255,8 +255,8 @@ The module defines the following functions and data items:
 
    The result has the following attributes:
 
-   - *adjusted*: ``True`` if the clock can be adjusted (e.g. by a NTP daemon),
-     ``False`` otherwise
+   - *adjustable*: ``True`` if the clock can be changed automatically (e.g. by
+     a NTP daemon) or manually by the system administrator, ``False`` otherwise
    - *implementation*: The name of the underlying C function used to get
      the clock value
    - *monotonic*: ``True`` if the clock cannot go backward,
index dd4cc6922bd1648bc5c7b60a4830b98bf36f1b55..52902f5e3ac254116dc4e550f008210ef72dec3d 100644 (file)
@@ -26,7 +26,7 @@ typedef struct {
 typedef struct {
     const char *implementation;
     int monotonic;
-    int adjusted;
+    int adjustable;
     double resolution;
 } _Py_clock_info_t;
 
index 02f05c364a71a69c15c38261c9938ea77acec34c..bd72af5ce5b220808137d40d8598b8b0f85410dc 100644 (file)
@@ -32,14 +32,14 @@ class TimeTestCase(unittest.TestCase):
         info = time.get_clock_info('time')
         self.assertFalse(info.monotonic)
         if sys.platform != 'win32':
-            self.assertTrue(info.adjusted)
+            self.assertTrue(info.adjustable)
 
     def test_clock(self):
         time.clock()
 
         info = time.get_clock_info('clock')
         self.assertTrue(info.monotonic)
-        self.assertFalse(info.adjusted)
+        self.assertFalse(info.adjustable)
 
     @unittest.skipUnless(hasattr(time, 'clock_gettime'),
                          'need time.clock_gettime()')
@@ -372,9 +372,9 @@ class TimeTestCase(unittest.TestCase):
         info = time.get_clock_info('monotonic')
         self.assertTrue(info.monotonic)
         if sys.platform == 'linux':
-            self.assertTrue(info.adjusted)
+            self.assertTrue(info.adjustable)
         else:
-            self.assertFalse(info.adjusted)
+            self.assertFalse(info.adjustable)
 
     def test_perf_counter(self):
         time.perf_counter()
@@ -390,7 +390,7 @@ class TimeTestCase(unittest.TestCase):
 
         info = time.get_clock_info('process_time')
         self.assertTrue(info.monotonic)
-        self.assertFalse(info.adjusted)
+        self.assertFalse(info.adjustable)
 
     @unittest.skipUnless(hasattr(time, 'monotonic'),
                          'need time.monotonic')
@@ -441,7 +441,7 @@ class TimeTestCase(unittest.TestCase):
             # 0.0 < resolution <= 1.0
             self.assertGreater(info.resolution, 0.0)
             self.assertLessEqual(info.resolution, 1.0)
-            self.assertIsInstance(info.adjusted, bool)
+            self.assertIsInstance(info.adjustable, bool)
 
         self.assertRaises(ValueError, time.get_clock_info, 'xxx')
 
index 4012c96d56cb6abfda7532539ec86bc28870c1d2..e47766a56b75e6eba4ef60d66c94d8881f838b83 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -21,6 +21,8 @@ Core and Builtins
 Library
 -------
 
+- Rename adjusted attribute to adjustable in time.get_clock_info() result.
+
 - Issue #3518: Remove references to non-existent BaseManager.from_address()
   method.
 
index d844bc38f318b51009be9de020998f58cdfb8716..0a9c4319f6af07947b17c7a9c0596c414d053a6d 100644 (file)
@@ -96,7 +96,7 @@ floatclock(_Py_clock_info_t *info)
         info->implementation = "clock()";
         info->resolution = 1.0 / (double)CLOCKS_PER_SEC;
         info->monotonic = 1;
-        info->adjusted = 0;
+        info->adjustable = 0;
     }
     return PyFloat_FromDouble((double)value / CLOCKS_PER_SEC);
 }
@@ -132,7 +132,7 @@ win_perf_counter(_Py_clock_info_t *info, PyObject **result)
         info->implementation = "QueryPerformanceCounter()";
         info->resolution = 1.0 / (double)cpu_frequency;
         info->monotonic = 1;
-        info->adjusted = 0;
+        info->adjustable = 0;
     }
     *result = PyFloat_FromDouble(diff / (double)cpu_frequency);
     return 0;
@@ -882,7 +882,7 @@ pymonotonic(_Py_clock_info_t *info)
             return NULL;
         }
         info->resolution = timeIncrement * 1e-7;
-        info->adjusted = 0;
+        info->adjustable = 0;
     }
     return PyFloat_FromDouble(result);
 
@@ -903,7 +903,7 @@ pymonotonic(_Py_clock_info_t *info)
         info->implementation = "mach_absolute_time()";
         info->resolution = (double)timebase.numer / timebase.denom * 1e-9;
         info->monotonic = 1;
-        info->adjusted = 0;
+        info->adjustable = 0;
     }
     return PyFloat_FromDouble(secs);
 
@@ -926,13 +926,7 @@ pymonotonic(_Py_clock_info_t *info)
         struct timespec res;
         info->monotonic = 1;
         info->implementation = function;
-#if (defined(linux) || defined(__linux) || defined(__linux__)) \
-    && !defined(CLOCK_HIGHRES)
-        /* CLOCK_MONOTONIC is adjusted on Linux */
-        info->adjusted = 1;
-#else
-        info->adjusted = 0;
-#endif
+        info->adjustable = 0;
         if (clock_getres(clk_id, &res) == 0)
             info->resolution = res.tv_sec + res.tv_nsec * 1e-9;
         else
@@ -1024,7 +1018,7 @@ py_process_time(_Py_clock_info_t *info)
         info->implementation = "GetProcessTimes()";
         info->resolution = 1e-7;
         info->monotonic = 1;
-        info->adjusted = 0;
+        info->adjustable = 0;
     }
     return PyFloat_FromDouble(total * 1e-7);
 #else
@@ -1053,7 +1047,7 @@ py_process_time(_Py_clock_info_t *info)
             struct timespec res;
             info->implementation = function;
             info->monotonic = 1;
-            info->adjusted = 0;
+            info->adjustable = 0;
             if (clock_getres(clk_id, &res) == 0)
                 info->resolution = res.tv_sec + res.tv_nsec * 1e-9;
             else
@@ -1071,7 +1065,7 @@ py_process_time(_Py_clock_info_t *info)
         if (info) {
             info->implementation = "getrusage(RUSAGE_SELF)";
             info->monotonic = 1;
-            info->adjusted = 0;
+            info->adjustable = 0;
             info->resolution = 1e-6;
         }
         return PyFloat_FromDouble(total);
@@ -1100,7 +1094,7 @@ py_process_time(_Py_clock_info_t *info)
             if (info) {
                 info->implementation = "times()";
                 info->monotonic = 1;
-                info->adjusted = 0;
+                info->adjustable = 0;
                 info->resolution = 1.0 / ticks_per_second;
             }
             return PyFloat_FromDouble(total);
@@ -1137,12 +1131,12 @@ time_get_clock_info(PyObject *self, PyObject *args)
 #ifdef Py_DEBUG
     info.implementation = NULL;
     info.monotonic = -1;
-    info.adjusted = -1;
+    info.adjustable = -1;
     info.resolution = -1.0;
 #else
     info.implementation = "";
     info.monotonic = 0;
-    info.adjusted = 0;
+    info.adjustable = 0;
     info.resolution = 1.0;
 #endif
 
@@ -1188,11 +1182,11 @@ time_get_clock_info(PyObject *self, PyObject *args)
         goto error;
     Py_CLEAR(obj);
 
-    assert(info.adjusted != -1);
-    obj = PyBool_FromLong(info.adjusted);
+    assert(info.adjustable != -1);
+    obj = PyBool_FromLong(info.adjustable);
     if (obj == NULL)
         goto error;
-    if (PyDict_SetItemString(dict, "adjusted", obj) == -1)
+    if (PyDict_SetItemString(dict, "adjustable", obj) == -1)
         goto error;
     Py_CLEAR(obj);
 
@@ -1471,7 +1465,7 @@ floattime(_Py_clock_info_t *info)
             struct timespec res;
             info->implementation = "clock_gettime(CLOCK_REALTIME)";
             info->monotonic = 0;
-            info->adjusted = 1;
+            info->adjustable = 1;
             if (clock_getres(CLOCK_REALTIME, &res) == 0)
                 info->resolution = res.tv_sec + res.tv_nsec * 1e-9;
             else
index eb5685b98777e1bae48c36b6e2a991a7d081bb8b..beeab87e2c7399f3a6ee0e6553317bd3b7f74752 100644 (file)
@@ -44,10 +44,7 @@ pygettimeofday(_PyTime_timeval *tp, _Py_clock_info_t *info)
         (void) GetSystemTimeAdjustment(&timeAdjustment, &timeIncrement,
                                        &isTimeAdjustmentDisabled);
         info->resolution = timeIncrement * 1e-7;
-        if (isTimeAdjustmentDisabled)
-            info->adjusted = 0;
-        else
-            info->adjusted = 1;
+        info->adjustable = 1;
     }
 #else
     /* There are three ways to get the time:
@@ -71,7 +68,7 @@ pygettimeofday(_PyTime_timeval *tp, _Py_clock_info_t *info)
             info->implementation = "gettimeofday()";
             info->resolution = 1e-6;
             info->monotonic = 0;
-            info->adjusted = 1;
+            info->adjustable = 1;
         }
         return;
     }
@@ -87,7 +84,7 @@ pygettimeofday(_PyTime_timeval *tp, _Py_clock_info_t *info)
             info->implementation = "ftime()";
             info->resolution = 1e-3;
             info->monotonic = 0;
-            info->adjusted = 1;
+            info->adjustable = 1;
         }
     }
 #else /* !HAVE_FTIME */
@@ -97,7 +94,7 @@ pygettimeofday(_PyTime_timeval *tp, _Py_clock_info_t *info)
         info->implementation = "time()";
         info->resolution = 1.0;
         info->monotonic = 0;
-        info->adjusted = 1;
+        info->adjustable = 1;
     }
 #endif /* !HAVE_FTIME */