Spaces:
Running
on
Zero
Running
on
Zero
# Copyright (c) Meta Platforms, Inc. and affiliates. | |
# All rights reserved. | |
# | |
# This source code is licensed under the license found in the | |
# LICENSE file in the root directory of this source tree. | |
# __version__ = '2.0.1' ## forked mmcv version | |
__version__ = '1.0.0' | |
def parse_version_info(version_str: str, length: int = 4) -> tuple: | |
"""Parse a version string into a tuple. | |
Args: | |
version_str (str): The version string. | |
length (int): The maximum number of version levels. Default: 4. | |
Returns: | |
tuple[int | str]: The version info, e.g., "1.3.0" is parsed into | |
(1, 3, 0, 0, 0, 0), and "2.0.0rc1" is parsed into | |
(2, 0, 0, 0, 'rc', 1) (when length is set to 4). | |
""" | |
from packaging.version import parse | |
version = parse(version_str) | |
assert version.release, f'failed to parse version {version_str}' | |
release = list(version.release) | |
release = release[:length] | |
if len(release) < length: | |
release = release + [0] * (length - len(release)) | |
if version.is_prerelease: | |
release.extend(list(version.pre)) # type: ignore | |
elif version.is_postrelease: | |
release.extend(list(version.post)) # type: ignore | |
else: | |
release.extend([0, 0]) | |
return tuple(release) | |
version_info = tuple(int(x) for x in __version__.split('.')[:3]) | |
__all__ = ['__version__', 'version_info', 'parse_version_info'] | |