diff --git a/benchmarks/benchmarks/location.py b/benchmarks/benchmarks/location.py index 2356ca1e7e..57ce125846 100644 --- a/benchmarks/benchmarks/location.py +++ b/benchmarks/benchmarks/location.py @@ -4,7 +4,7 @@ import pandas as pd import pvlib -from pkg_resources import parse_version +from packaging.version import Version def set_solar_position(obj): @@ -37,7 +37,7 @@ def time_location_get_clearsky(self): class Location_0_6_1: def setup(self): - if parse_version(pvlib.__version__) < parse_version('0.6.1'): + if Version(pvlib.__version__) < Version('0.6.1'): raise NotImplementedError set_solar_position(self) diff --git a/benchmarks/benchmarks/solarposition.py b/benchmarks/benchmarks/solarposition.py index 4fac0ea470..0ccb379d8c 100644 --- a/benchmarks/benchmarks/solarposition.py +++ b/benchmarks/benchmarks/solarposition.py @@ -7,10 +7,10 @@ import pvlib from pvlib import solarposition -from pkg_resources import parse_version +from packaging.version import Version -if parse_version(pvlib.__version__) >= parse_version('0.6.1'): +if Version(pvlib.__version__) >= Version('0.6.1'): sun_rise_set_transit_spa = solarposition.sun_rise_set_transit_spa else: sun_rise_set_transit_spa = solarposition.get_sun_rise_set_transit diff --git a/benchmarks/benchmarks/solarposition_numba.py b/benchmarks/benchmarks/solarposition_numba.py index bcadfd1893..5d4c277eb1 100644 --- a/benchmarks/benchmarks/solarposition_numba.py +++ b/benchmarks/benchmarks/solarposition_numba.py @@ -7,7 +7,7 @@ Try to keep relevant sections in sync with benchmarks/solarposition.py """ -from pkg_resources import parse_version +from packaging.version import Version import pandas as pd import os @@ -18,7 +18,7 @@ from pvlib import solarposition # NOQA: E402 -if parse_version(pvlib.__version__) >= parse_version('0.6.1'): +if Version(pvlib.__version__) >= Version('0.6.1'): sun_rise_set_transit_spa = solarposition.sun_rise_set_transit_spa else: sun_rise_set_transit_spa = solarposition.get_sun_rise_set_transit diff --git a/benchmarks/benchmarks/temperature.py b/benchmarks/benchmarks/temperature.py index d8a8dad9a0..a2ffe331f5 100644 --- a/benchmarks/benchmarks/temperature.py +++ b/benchmarks/benchmarks/temperature.py @@ -4,7 +4,7 @@ import pandas as pd import pvlib -from pkg_resources import parse_version +from packaging.version import Version from functools import partial @@ -20,7 +20,7 @@ class SAPM: def setup(self): set_weather_data(self) - if parse_version(pvlib.__version__) >= parse_version('0.7.0'): + if Version(pvlib.__version__) >= Version('0.7.0'): kwargs = pvlib.temperature.TEMPERATURE_MODEL_PARAMETERS['sapm'] kwargs = kwargs['open_rack_glass_glass'] self.sapm_cell_wrapper = partial(pvlib.temperature.sapm_cell, @@ -41,7 +41,7 @@ def time_sapm_cell(self): class Fuentes: def setup(self): - if parse_version(pvlib.__version__) < parse_version('0.8.0'): + if Version(pvlib.__version__) < Version('0.8.0'): raise NotImplementedError set_weather_data(self) diff --git a/docs/sphinx/source/whatsnew/v0.10.3.rst b/docs/sphinx/source/whatsnew/v0.10.3.rst index 0d46d035ec..1fcd8271b6 100644 --- a/docs/sphinx/source/whatsnew/v0.10.3.rst +++ b/docs/sphinx/source/whatsnew/v0.10.3.rst @@ -15,6 +15,7 @@ Bug fixes Testing ~~~~~~~ +* Replace use of deprecated ``pkg_resources``. (:issue:`1881`, :pull:`1882`) Documentation @@ -24,3 +25,4 @@ Documentation Contributors ~~~~~~~~~~~~ * Arjan Keeman (:ghuser:`akeeman`) +* Miguel Sánchez de León Peque (:ghuser:`Peque`) diff --git a/pvlib/tests/conftest.py b/pvlib/tests/conftest.py index 3e1a22d031..15b0cd70e8 100644 --- a/pvlib/tests/conftest.py +++ b/pvlib/tests/conftest.py @@ -4,15 +4,14 @@ import pandas as pd import os -from pkg_resources import parse_version +from packaging.version import Version import pytest from functools import wraps import pvlib from pvlib.location import Location -pvlib_base_version = \ - parse_version(parse_version(pvlib.__version__).base_version) +pvlib_base_version = Version(Version(pvlib.__version__).base_version) # decorator takes one argument: the base version for which it should fail @@ -27,7 +26,7 @@ def wrapper(func): @wraps(func) def inner(*args, **kwargs): # fail if the version is too high - if pvlib_base_version >= parse_version(version): + if pvlib_base_version >= Version(version): pytest.fail('the tested function is scheduled to be ' 'removed in %s' % version) # otherwise return the function to be executed @@ -40,7 +39,7 @@ def inner(*args, **kwargs): def _check_pandas_assert_kwargs(kwargs): # handles the change in API related to default # tolerances in pandas 1.1.0. See pvlib GH #1018 - if parse_version(pd.__version__) >= parse_version('1.1.0'): + if Version(pd.__version__) >= Version('1.1.0'): if kwargs.pop('check_less_precise', False): kwargs['atol'] = 1e-3 kwargs['rtol'] = 1e-3 diff --git a/setup.py b/setup.py index dcc49edf2f..5d9b1a69fd 100755 --- a/setup.py +++ b/setup.py @@ -45,7 +45,7 @@ TESTS_REQUIRE = ['pytest', 'pytest-cov', 'pytest-mock', 'requests-mock', 'pytest-timeout', 'pytest-rerunfailures', - 'pytest-remotedata'] + 'pytest-remotedata', 'packaging'] EXTRAS_REQUIRE = { 'optional': ['cython', 'ephem', 'nrel-pysam', 'numba', 'solarfactors', 'statsmodels'],