MMCV is a foundational library for computer vision research and provides
the following functionalities:
* Image/Video processing
* Image and annotation visualization
* Image transformation
* Various CNN architectures
* High-quality implementation of common CUDA ops
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-mmcv listed in the above command, you can pick from the names under the Packages section.
misc/py-mmcv: Fix build on Python 3.13 and the runtime dependencies
PR: 299961
setup.py exec()s mmcv/version.py and then reads __version__ back
from locals(), which no longer works on 3.13 (PEP 667): exec into an
explicit namespace instead.
The package also could not be installed or imported on its own: the
extension links against libc10.so from py-pytorch (only a build
dependency so far), and mmcv.image imports cv2 at the top level. Add
both py-pytorch and py-opencv-python-headless to RUN_DEPENDS.
While here, follow the Python Ports Policy, add concurrent to
USE_PYTHON, fix portlint warnings and document the patches.
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 )
python: bump all USE_PYTHON=distutils consumers after RUN_DEPENDS removal
Any missed ports, feel free to bump.
Any ports that need setuptools at runtime can have the devel/py-setuptools
manually added back to RUN_DEPENDS, but understand that this practice
is deprecated; see CHANGES for details.