time-machine is intended to combine the advantages of freezegun and libfaketime
Python modules. It works without LD_PRELOAD but still mocks the standard
library functions everywhere they may be referenced. It does so by modifying
the built-in functions at the C level, to point them through wrappers that
return different values when mocking. Normally in Python, built-in functions
are immutable, but time-machine overcomes this by using C code to replace their
function pointers.
NOTE: If this package has multiple flavors (see below), then use one of them instead of the name specified above. NOTE: This is a Python port. Instead of py312-time-machine listed in the above command, you can pick from the names under the Packages section.
python.mk: rename PYTHON_EXT_SUFFIX to PYTHON_TAG, document, etc
EXT_SUFFIX, according to PEP 3149, refers to the full tag and
extension for compiled extension module objects, eg .cpython-311.so,
.cpython-313t.so, etc. We do not use the correct semantic meaning,
and this usage becomes ambiguous and confusing when tags do not
match between bytecode and compiled extension module objects.
Rename our PYTHON_EXT_SUFFIX to PYTHON_TAG to align with PEP 3147's
specification of a magic tag, which consists of implementation name
and shorthand version only. This is meant for bytecode and other
files containing this tag in their filename that do not depend on
a specific Python ABI for the same version. Chase all existing
consumers.
(Only the first 15 lines of the commit message are shown above )
devel/py-python-dateutil: Move devel/py-dateutil to devel/py-python-dateutil
- Convert to USE_PYTHON=pep517
- Bump PORTREVISION of dependent ports for dependency change
- While I'm here, update audio/py-pyradio to use PYTHON_PKGNAMEPREFIX instead of
PKGNAMEPREFIX for *_DEPENDS
devel/py-setuptools: convert individual consumers to ${PY_SETUPTOOLS}
Currently a no-op, but in the future outputs the correct setuptools
port depending on whether USES_PYTHON=distutils is specified.
With hat: python
PR: 270510, 270358
devel/py-time-machine: Add new port
time-machine, is intended to combine the advantages of freezegun and
libfaketime Python modules. It works without LD_PRELOAD but still mocks
the standard library functions everywhere they may be referenced.
It does so by modifying the built-in functions at the C level, to point
them through wrappers that return different values when mocking.
Normally in Python, built-in functions are immutable, but
time-machine overcomes this by using C code to replace their function
pointers.
https://github.com/adamchainz/time-machine