import packaging to be compatible with setuptools==70.0.0, while also supporting prior setuptools versions
This commit is contained in:
parent
e5693f4006
commit
374b2a3a80
47
clip/clip.py
47
clip/clip.py
|
|
@ -3,7 +3,7 @@ import os
|
||||||
import urllib
|
import urllib
|
||||||
import warnings
|
import warnings
|
||||||
from typing import Any, Union, List
|
from typing import Any, Union, List
|
||||||
import packaging
|
import pkg_resources
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
@ -20,6 +20,30 @@ except ImportError:
|
||||||
BICUBIC = Image.BICUBIC
|
BICUBIC = Image.BICUBIC
|
||||||
|
|
||||||
|
|
||||||
|
import pkg_resources
|
||||||
|
|
||||||
|
# Solves import issue with changes in setuptools 70.0.0 (https://setuptools.pypa.io/en/stable/history.html#v70-0-0)
|
||||||
|
def import_packaging():
|
||||||
|
try:
|
||||||
|
# Get the version of setuptools
|
||||||
|
setuptools_version = pkg_resources.get_distribution("setuptools").version
|
||||||
|
# Print setuptools version for debugging
|
||||||
|
print(f"setuptools version: {setuptools_version}")
|
||||||
|
|
||||||
|
# Parse the version string to compare versions
|
||||||
|
from packaging import version
|
||||||
|
if version.parse(setuptools_version) >= version.parse("70.0.0"):
|
||||||
|
# For setuptools version 70.0.0 and above
|
||||||
|
import packaging
|
||||||
|
else:
|
||||||
|
# For setuptools versions below 70.0.0
|
||||||
|
from pkg_resources import packaging
|
||||||
|
return packaging
|
||||||
|
except Exception as e:
|
||||||
|
raise ImportError(f"Failed to import 'packaging' module: {e}")
|
||||||
|
|
||||||
|
packaging = import_packaging()
|
||||||
|
|
||||||
if packaging.version.parse(torch.__version__) < packaging.version.parse("1.7.1"):
|
if packaging.version.parse(torch.__version__) < packaging.version.parse("1.7.1"):
|
||||||
warnings.warn("PyTorch version 1.7.1 or higher is recommended")
|
warnings.warn("PyTorch version 1.7.1 or higher is recommended")
|
||||||
|
|
||||||
|
|
@ -39,6 +63,27 @@ _MODELS = {
|
||||||
"ViT-L/14@336px": "https://openaipublic.azureedge.net/clip/models/3035c92b350959924f9f00213499208652fc7ea050643e8b385c2dac08641f02/ViT-L-14-336px.pt",
|
"ViT-L/14@336px": "https://openaipublic.azureedge.net/clip/models/3035c92b350959924f9f00213499208652fc7ea050643e8b385c2dac08641f02/ViT-L-14-336px.pt",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def import_packaging():
|
||||||
|
try:
|
||||||
|
# Get the version of setuptools
|
||||||
|
setuptools_version = pkg_resources.get_distribution("setuptools").version
|
||||||
|
# Print setuptools version for debugging
|
||||||
|
print(f"setuptools version: {setuptools_version}")
|
||||||
|
|
||||||
|
# Parse the version string to compare versions
|
||||||
|
from packaging import version
|
||||||
|
if version.parse(setuptools_version) >= version.parse("70.0.0"):
|
||||||
|
# For setuptools version 70.0.0 and above
|
||||||
|
import packaging
|
||||||
|
else:
|
||||||
|
# For setuptools versions below 70.0.0
|
||||||
|
from pkg_resources import packaging
|
||||||
|
return packaging
|
||||||
|
except Exception as e:
|
||||||
|
raise ImportError(f"Failed to import 'packaging' module: {e}")
|
||||||
|
|
||||||
|
packaging = import_packaging()
|
||||||
|
|
||||||
|
|
||||||
def _download(url: str, root: str):
|
def _download(url: str, root: str):
|
||||||
os.makedirs(root, exist_ok=True)
|
os.makedirs(root, exist_ok=True)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue