[Python-checkins] cpython: PEP 418: Rename adjusted attribute to adjustable in time.get_clock_info() result

victor.stinner python-checkins at python.org
Tue Jun 12 22:50:50 CEST 2012


http://hg.python.org/cpython/rev/0e46e0cd368f
changeset:   77415:0e46e0cd368f
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Tue Jun 12 22:46:37 2012 +0200
summary:
  PEP 418: Rename adjusted attribute to adjustable in time.get_clock_info() result

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.

files:
  Doc/library/time.rst  |   4 +-
  Include/pytime.h      |   2 +-
  Lib/test/test_time.py |  12 +++++-----
  Misc/NEWS             |   2 +
  Modules/timemodule.c  |  36 ++++++++++++------------------
  Python/pytime.c       |  11 +++------
  6 files changed, 30 insertions(+), 37 deletions(-)


diff --git a/Doc/library/time.rst b/Doc/library/time.rst
--- a/Doc/library/time.rst
+++ b/Doc/library/time.rst
@@ -255,8 +255,8 @@
 
    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,
diff --git a/Include/pytime.h b/Include/pytime.h
--- a/Include/pytime.h
+++ b/Include/pytime.h
@@ -26,7 +26,7 @@
 typedef struct {
     const char *implementation;
     int monotonic;
-    int adjusted;
+    int adjustable;
     double resolution;
 } _Py_clock_info_t;
 
diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
--- a/Lib/test/test_time.py
+++ b/Lib/test/test_time.py
@@ -32,14 +32,14 @@
         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 @@
         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 @@
 
         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 @@
             # 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')
 
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -21,6 +21,8 @@
 Library
 -------
 
+- Rename adjusted attribute to adjustable in time.get_clock_info() result.
+
 - Issue #3518: Remove references to non-existent BaseManager.from_address()
   method.
 
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -96,7 +96,7 @@
         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 @@
         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 @@
             return NULL;
         }
         info->resolution = timeIncrement * 1e-7;
-        info->adjusted = 0;
+        info->adjustable = 0;
     }
     return PyFloat_FromDouble(result);
 
@@ -903,7 +903,7 @@
         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 @@
         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 @@
         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 @@
             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 @@
         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 @@
             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 @@
 #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 @@
         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 @@
             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
diff --git a/Python/pytime.c b/Python/pytime.c
--- a/Python/pytime.c
+++ b/Python/pytime.c
@@ -44,10 +44,7 @@
         (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 @@
             info->implementation = "gettimeofday()";
             info->resolution = 1e-6;
             info->monotonic = 0;
-            info->adjusted = 1;
+            info->adjustable = 1;
         }
         return;
     }
@@ -87,7 +84,7 @@
             info->implementation = "ftime()";
             info->resolution = 1e-3;
             info->monotonic = 0;
-            info->adjusted = 1;
+            info->adjustable = 1;
         }
     }
 #else /* !HAVE_FTIME */
@@ -97,7 +94,7 @@
         info->implementation = "time()";
         info->resolution = 1.0;
         info->monotonic = 0;
-        info->adjusted = 1;
+        info->adjustable = 1;
     }
 #endif /* !HAVE_FTIME */
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list