/backports.time_perf_counter

time.perf_counter() for Python < 3.3

Primary LanguagePythonMIT LicenseMIT

backports.time_perf_counter

This package contains a backport of the time.perf_counter() function introduced in Python 3.3. This package is intended for use with Python versions older than 3.3 but will work just fine under newer Pythons. When used with Python 3.3 and newer, the main module simply exports time.perf_counter().

The backported functionality is based on the pseudocode in PEP 418 that describes how time.perf_counter() could be implemented. When used with Python versions older than 3.3, the exported perf_counter() function relies on the monotonic() function provided by the monotonic package.

Usage

I recommend not introducing a dependency on this package under Pythons which provide time.perf_counter(). In your package's setup.py:

import setuptools
setuptools.setup(
    install_requires=[
        'backports.time_perf_counter; python_version < "3.3"'
    ]
)

In the module that relies on perf_counter():

try:
    # Python >= 3.3
    from time import perf_counter
except ImportError:
    # Python < 3.3
    from backports.time_perf_counter import perf_counter

Tests

This package's tests use the builtin unittest and can be run without first installing the package:

python setup.py test

The test cases are based on tests from the Python standard library's time module that exercise time.perf_counter(). There are an admittedly small number of tests; pull requests with more tests are welcome.