summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2012-06-12 20:46:37 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2012-06-12 20:46:37 (GMT)
commit2b89fdf7eb17b5ca3928aa3c2f6552e79386c677 (patch)
tree644b67cd605fd28d1b8d676b79787cf03fd4d3df
parentbda4b8802c9693cd1c6f97cc09e34c4f63b030ef (diff)
downloadcpython-2b89fdf7eb17b5ca3928aa3c2f6552e79386c677.zip
cpython-2b89fdf7eb17b5ca3928aa3c2f6552e79386c677.tar.gz
cpython-2b89fdf7eb17b5ca3928aa3c2f6552e79386c677.tar.bz2
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.
-rw-r--r--Doc/library/time.rst4
-rw-r--r--Include/pytime.h2
-rw-r--r--Lib/test/test_time.py12
-rw-r--r--Misc/NEWS2
-rw-r--r--Modules/timemodule.c36
-rw-r--r--Python/pytime.c11
6 files changed, 30 insertions, 37 deletions
diff --git a/Doc/library/time.rst b/Doc/library/time.rst
index ba6b176..2a765ac 100644
--- a/Doc/library/time.rst
+++ b/Doc/library/time.rst
@@ -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,
diff --git a/Include/pytime.h b/Include/pytime.h
index dd4cc69..52902f5 100644
--- a/Include/pytime.h
+++ b/Include/pytime.h
@@ -26,7 +26,7 @@ typedef struct {
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
index 02f05c3..bd72af5 100644
--- a/Lib/test/test_time.py
+++ b/Lib/test/test_time.py
@@ -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')
diff --git a/Misc/NEWS b/Misc/NEWS
index 4012c96..e47766a 100644
--- 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.
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index d844bc3..0a9c431 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -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
diff --git a/Python/pytime.c b/Python/pytime.c
index eb5685b..beeab87 100644
--- a/Python/pytime.c
+++ b/Python/pytime.c
@@ -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 */