diff --git a/dinamis_sdk/s3.py b/dinamis_sdk/s3.py index 5cb693cdddcbd51dc68e0d176626a0201bd1d371..ea7318a7b06d34f73b36e73ba581f37a03e40285 100644 --- a/dinamis_sdk/s3.py +++ b/dinamis_sdk/s3.py @@ -23,10 +23,15 @@ from pystac.serialization.identify import identify_stac_object_type from pystac.utils import datetime_to_str import pystac_client from pystac_client import ItemSearch +import packaging.version +import pydantic from .utils import log, SIGNED_URL_TTL_MARGIN, CREDENTIALS, MAX_URLS, \ S3_SIGNING_ENDPOINT, S3_STORAGE_DOMAIN +_PYDANTIC_2_0 = packaging.version.parse( + pydantic.__version__ +) >= packaging.version.parse("2.0.0") AssetLike = TypeVar("AssetLike", Asset, Dict[str, Any]) @@ -46,8 +51,11 @@ class URLBase(BaseModel): # pylint: disable = R0903 class Config: # pylint: disable = R0903 """Config for URLBase model.""" - json_encoders = {datetime: datetime_to_str} - allow_population_by_field_name = True + if _PYDANTIC_2_0: + populate_by_name = True + else: + allow_population_by_field_name = True + json_encoders = {datetime: datetime_to_str} class SignedURL(URLBase): # pylint: disable = R0903 diff --git a/setup.py b/setup.py index ccf275750033f11c42408b03d98c5acb996ebf46..411140b0df9e94eb85fcdff1cdd6fe4f8be54f56 100644 --- a/setup.py +++ b/setup.py @@ -1,12 +1,19 @@ from setuptools import setup, find_packages install_requires = [ - "requests", "qrcode", "appdirs", "pydantic", "pystac", "pystac_client" + "requests", + "qrcode", + "appdirs", + "pydantic", + "pystac", + "pystac_client", + "pydantic>=1.7.3", + "packaging" ] setup( name="dinamis-sdk", - version="0.0.12", + version="0.0.14", description="DINAMIS SDK", python_requires=">=3.8", author="Remi Cresson",