Skip to content

Merge pull request #918 from CLIMADA-project/feature/restructure_fitf…

Jenkins - WCR / Jenkins / Nightly Build failed Nov 7, 2024 in 17m 26s

Declarative: Post Actions: warning in 'junit' step

integ_test / Shell Script

Error in sh step, with arguments #!/bin/bash export PATH=$PATH:$CONDAPATH source activate climada_env rm -rf tests_xml/ rm -rf coverage/ make test.

script returned exit code 2
Build log
pytest --junitxml=tests_xml/tests.xml --cov --cov-config=.coveragerc --cov-report html:coverage --cov-report xml:coverage.xml --cov-report term:skip-covered climada/
============================= test session starts ==============================
platform linux -- Python 3.11.6, pytest-8.3.3, pluggy-1.5.0
rootdir: /var/lib/jenkins/jobs/climada_ci_night/workspace
plugins: subtests-0.13.1, cov-6.0.0
collected 787 items

climada/engine/test/test_cost_benefit.py ......................          [  2%]
climada/engine/test/test_forecast.py ...                                 [  3%]
climada/engine/test/test_impact.py ..................................... [  7%]
.....                                                                    [  8%]
climada/engine/test/test_impact_calc.py ..............................   [ 12%]
climada/engine/test/test_impact_data.py ...........                      [ 13%]
climada/engine/unsequa/test/test_unsequa.py ..................           [ 16%]
climada/entity/disc_rates/test/test_base.py ..............               [ 17%]
climada/entity/exposures/test/test_base.py .........................     [ 20%]
climada/entity/exposures/test/test_litpop.py ......................      [ 23%]
climada/entity/exposures/test/test_mat.py .........                      [ 24%]
climada/entity/exposures/test/test_nightlight.py ...                     [ 25%]
climada/entity/impact_funcs/test/test_base.py ....                       [ 25%]
climada/entity/impact_funcs/test/test_imp_fun_set.py ................... [ 28%]
....                                                                     [ 28%]
climada/entity/impact_funcs/test/test_tc.py ........                     [ 29%]
climada/entity/impact_funcs/test/test_ws.py .                            [ 29%]
climada/entity/measures/test/test_base.py ...........                    [ 31%]
climada/entity/measures/test/test_meas_set.py .....................      [ 33%]
climada/entity/tag/test/test_tag.py ...                                  [ 34%]
climada/entity/test/test_entity.py .....                                 [ 34%]
climada/hazard/centroids/test/test_centr.py ............................ [ 38%]
........................                                                 [ 41%]
climada/hazard/test/test_base.py ....................................... [ 46%]
...............                                                          [ 48%]
climada/hazard/test/test_io.py ..................                        [ 50%]
climada/hazard/test/test_storm_europe.py .......                         [ 51%]
climada/hazard/test/test_tc_cc.py ........                               [ 52%]
climada/hazard/test/test_tc_tracks.py .................................. [ 56%]
......                                                                   [ 57%]
climada/hazard/test/test_tc_tracks_synth.py ..................           [ 59%]
climada/hazard/test/test_trop_cyclone.py ..........                      [ 61%]
climada/hazard/test/test_trop_cyclone_windfields.py .........            [ 62%]
climada/test/test_api_client.py ...................                      [ 64%]
climada/test/test_calibration.py .                                       [ 64%]
climada/test/test_engine.py .....                                        [ 65%]
climada/test/test_hazard.py ...........                                  [ 66%]
climada/test/test_litpop_integr.py ..................                    [ 69%]
climada/test/test_nightlight.py ..F.....                                 [ 70%]
climada/test/test_plot.py ..........                                     [ 71%]
climada/test/test_util.py .                                              [ 71%]
climada/test/test_util_calibrate.py ......                               [ 72%]
climada/util/calibrate/test/test_base.py .....                           [ 73%]
climada/util/calibrate/test/test_bayesian_optimizer.py ...........       [ 74%]
climada/util/calibrate/test/test_scipy_optimizer.py ...                  [ 74%]
climada/util/test/test__init__.py .                                      [ 74%]
climada/util/test/test_checker.py .....                                  [ 75%]
climada/util/test/test_config.py ...                                     [ 75%]
climada/util/test/test_coordinates.py .................................. [ 80%]
........................................                                 [ 85%]
climada/util/test/test_dates_times.py ......                             [ 86%]
climada/util/test/test_dwd_icon.py .....                                 [ 86%]
climada/util/test/test_files.py ............                             [ 88%]
climada/util/test/test_finance.py ...............                        [ 90%]
climada/util/test/test_hdf5.py ......                                    [ 90%]
climada/util/test/test_interpolation.py ..........                       [ 92%]
climada/util/test/test_lines_polys_handler.py .........................  [ 95%]
climada/util/test/test_plot.py .........                                 [ 96%]
climada/util/test/test_save.py ..                                        [ 96%]
climada/util/test/test_select.py .                                       [ 96%]
climada/util/test/test_value_representation.py ..................        [ 99%]
climada/util/test/test_yearsets.py ......                                [100%]

=================================== FAILURES ===================================
____________________ TestNightlight.test_download_nl_files _____________________

self = <urllib3.response.HTTPResponse object at 0x7fd16b411c30>

    @contextmanager
    def _error_catcher(self) -> typing.Generator[None, None, None]:
        """
        Catch low-level python exceptions, instead re-raising urllib3
        variants, so that low-level exceptions are not leaked in the
        high-level api.
    
        On exit, release the connection back to the pool.
        """
        clean_exit = False
    
        try:
            try:
>               yield

../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/urllib3/response.py:748: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <urllib3.response.HTTPResponse object at 0x7fd16b411c30>, amt = 1024

    def _raw_read(
        self,
        amt: int | None = None,
        *,
        read1: bool = False,
    ) -> bytes:
        """
        Reads `amt` of bytes from the socket.
        """
        if self._fp is None:
            return None  # type: ignore[return-value]
    
        fp_closed = getattr(self._fp, "closed", False)
    
        with self._error_catcher():
            data = self._fp_read(amt, read1=read1) if not fp_closed else b""
            if amt is not None and amt != 0 and not data:
                # Platform-specific: Buggy versions of Python.
                # Close the connection when no data is returned
                #
                # This is redundant to what httplib/http.client _should_
                # already do.  However, versions of python released before
                # December 15, 2012 (http://bugs.python.org/issue16298) do
                # not properly close the connection in all cases. There is
                # no harm in redundantly calling close.
                self._fp.close()
                if (
                    self.enforce_content_length
                    and self.length_remaining is not None
                    and self.length_remaining != 0
                ):
                    # This is an edge case that httplib failed to cover due
                    # to concerns of backward compatibility. We're
                    # addressing it here to make sure IncompleteRead is
                    # raised during streaming, so all calls with incorrect
                    # Content-Length are caught.
>                   raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
E                   urllib3.exceptions.IncompleteRead: IncompleteRead(9600260 bytes read, 12288121 more expected)

../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/urllib3/response.py:894: IncompleteRead

The above exception was the direct cause of the following exception:

    def generate():
        # Special case for urllib3.
        if hasattr(self.raw, "stream"):
            try:
>               yield from self.raw.stream(chunk_size, decode_content=True)

../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/requests/models.py:820: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/urllib3/response.py:1060: in stream
    data = self.read(amt=amt, decode_content=decode_content)
../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/urllib3/response.py:977: in read
    data = self._raw_read(amt)
../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/urllib3/response.py:872: in _raw_read
    with self._error_catcher():
../../../miniforge3/envs/climada_env/lib/python3.11/contextlib.py:155: in __exit__
    self.gen.throw(typ, value, traceback)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <urllib3.response.HTTPResponse object at 0x7fd16b411c30>

    @contextmanager
    def _error_catcher(self) -> typing.Generator[None, None, None]:
        """
        Catch low-level python exceptions, instead re-raising urllib3
        variants, so that low-level exceptions are not leaked in the
        high-level api.
    
        On exit, release the connection back to the pool.
        """
        clean_exit = False
    
        try:
            try:
                yield
    
            except SocketTimeout as e:
                # FIXME: Ideally we'd like to include the url in the ReadTimeoutError but
                # there is yet no clean way to get at it from this context.
                raise ReadTimeoutError(self._pool, None, "Read timed out.") from e  # type: ignore[arg-type]
    
            except BaseSSLError as e:
                # FIXME: Is there a better way to differentiate between SSLErrors?
                if "read operation timed out" not in str(e):
                    # SSL errors related to framing/MAC get wrapped and reraised here
                    raise SSLError(e) from e
    
                raise ReadTimeoutError(self._pool, None, "Read timed out.") from e  # type: ignore[arg-type]
    
            except IncompleteRead as e:
                if (
                    e.expected is not None
                    and e.partial is not None
                    and e.expected == -e.partial
                ):
                    arg = "Response may not contain content."
                else:
                    arg = f"Connection broken: {e!r}"
>               raise ProtocolError(arg, e) from e
E               urllib3.exceptions.ProtocolError: ('Connection broken: IncompleteRead(9600260 bytes read, 12288121 more expected)', IncompleteRead(9600260 bytes read, 12288121 more expected))

../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/urllib3/response.py:772: ProtocolError

During handling of the above exception, another exception occurred:

req_files = array([1, 0, 0, 0, 0, 0, 0, 0])
files_exist = array([0, 1, 1, 1, 1, 1, 1, 1]), dwnl_path = '/tmp/tmpqqys8q3w'
year = 2016

    def download_nl_files(
        req_files=np.ones(
            len(BM_FILENAMES),
        ),
        files_exist=np.zeros(
            len(BM_FILENAMES),
        ),
        dwnl_path=SYSTEM_DIR,
        year=2016,
    ):
        """Attempts to download nightlight files from NASA webpage.
    
        Parameters
        ----------
        req_files : numpy array, optional
            Boolean array which indicates the files required (0-> skip, 1-> download).
                The default is np.ones(len(BM_FILENAMES),).
        files_exist : numpy array, optional
            Boolean array which indicates if the files already
                exist locally and should not be downloaded (0-> download, 1-> skip).
                The default is np.zeros(len(BM_FILENAMES),).
        dwnl_path : str or path, optional
            Download directory path. The default is SYSTEM_DIR.
        year : int, optional
            Data year to be downloaded. The default is 2016.
    
        Raises
        ------
        ValueError
        RuntimeError
    
        Returns
        -------
        dwnl_path : str or path
            Download directory path.
        """
    
        if (len(req_files) != len(files_exist)) or (len(req_files) != len(BM_FILENAMES)):
            raise ValueError(
                "The given arguments are invalid. req_files and "
                "files_exist must both be as long as there are files to download"
                " (" + str(len(BM_FILENAMES)) + ")."
            )
        if not Path(dwnl_path).is_dir():
            raise ValueError(f"The folder {dwnl_path} does not exist. Operation aborted.")
        if np.all(req_files == files_exist):
            LOGGER.debug("All required files already exist. No downloads necessary.")
            return dwnl_path
        try:
            for num_files in range(0, np.count_nonzero(BM_FILENAMES)):
                if req_files[num_files] == 0 or files_exist[num_files] == 1:
                    continue  # file already available or not required
                path_check = False
                # loop through different possible URLs defined in CONFIG:
                value_err = None
                for url in CONFIG.exposures.litpop.nightlights.nasa_sites.list():
                    try:  # control for ValueError due to wrong URL
                        curr_file = url.str() + BM_FILENAMES[num_files] % (year)
                        LOGGER.info("Attempting to download file from %s", curr_file)
>                       path_check = download_file(curr_file, download_dir=dwnl_path)

climada/entity/exposures/litpop/nightlight.py:363: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
climada/util/files_handler.py:108: in download_file
    for data in tqdm(
../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/tqdm/std.py:1181: in __iter__
    for obj in iterable:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

    def generate():
        # Special case for urllib3.
        if hasattr(self.raw, "stream"):
            try:
                yield from self.raw.stream(chunk_size, decode_content=True)
            except ProtocolError as e:
>               raise ChunkedEncodingError(e)
E               requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(9600260 bytes read, 12288121 more expected)', IncompleteRead(9600260 bytes read, 12288121 more expected))

../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/requests/models.py:822: ChunkedEncodingError

The above exception was the direct cause of the following exception:

self = <climada.test.test_nightlight.TestNightlight testMethod=test_download_nl_files>

    def test_download_nl_files(self):
        """Test that BlackMarble GeoTiff files are downloaded."""
    
        # Test Raises
        temp_dir = TemporaryDirectory()
        with self.assertRaises(ValueError) as cm:
            nightlight.download_nl_files(
                req_files=np.ones(5), files_exist=np.zeros(4), dwnl_path=temp_dir.name
            )
        self.assertEqual(
            "The given arguments are invalid. req_files and "
            "files_exist must both be as long as there are files to download "
            "(8).",
            str(cm.exception),
        )
        with self.assertRaises(ValueError) as cm:
            nightlight.download_nl_files(dwnl_path="not a folder")
        self.assertEqual(
            "The folder not a folder does not exist. Operation aborted.",
            str(cm.exception),
        )
        # Test logger
        with self.assertLogs(
            "climada.entity.exposures.litpop.nightlight", level="DEBUG"
        ) as cm:
            dwl_path = nightlight.download_nl_files(
                req_files=np.ones(
                    len(BM_FILENAMES),
                ),
                files_exist=np.ones(
                    len(BM_FILENAMES),
                ),
                dwnl_path=temp_dir.name,
                year=2016,
            )
            self.assertIn(
                "All required files already exist. No downloads necessary.",
                cm.output[0],
            )
    
        # Test download
        with self.assertLogs(
            "climada.entity.exposures.litpop.nightlight", level="DEBUG"
        ) as cm:
>           dwl_path = nightlight.download_nl_files(
                req_files=np.array([1, 0, 0, 0, 0, 0, 0, 0]),
                files_exist=np.array([0, 1, 1, 1, 1, 1, 1, 1]),
                dwnl_path=temp_dir.name,
            )

climada/test/test_nightlight.py:193: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

req_files = array([1, 0, 0, 0, 0, 0, 0, 0])
files_exist = array([0, 1, 1, 1, 1, 1, 1, 1]), dwnl_path = '/tmp/tmpqqys8q3w'
year = 2016

    def download_nl_files(
        req_files=np.ones(
            len(BM_FILENAMES),
        ),
        files_exist=np.zeros(
            len(BM_FILENAMES),
        ),
        dwnl_path=SYSTEM_DIR,
        year=2016,
    ):
        """Attempts to download nightlight files from NASA webpage.
    
        Parameters
        ----------
        req_files : numpy array, optional
            Boolean array which indicates the files required (0-> skip, 1-> download).
                The default is np.ones(len(BM_FILENAMES),).
        files_exist : numpy array, optional
            Boolean array which indicates if the files already
                exist locally and should not be downloaded (0-> download, 1-> skip).
                The default is np.zeros(len(BM_FILENAMES),).
        dwnl_path : str or path, optional
            Download directory path. The default is SYSTEM_DIR.
        year : int, optional
            Data year to be downloaded. The default is 2016.
    
        Raises
        ------
        ValueError
        RuntimeError
    
        Returns
        -------
        dwnl_path : str or path
            Download directory path.
        """
    
        if (len(req_files) != len(files_exist)) or (len(req_files) != len(BM_FILENAMES)):
            raise ValueError(
                "The given arguments are invalid. req_files and "
                "files_exist must both be as long as there are files to download"
                " (" + str(len(BM_FILENAMES)) + ")."
            )
        if not Path(dwnl_path).is_dir():
            raise ValueError(f"The folder {dwnl_path} does not exist. Operation aborted.")
        if np.all(req_files == files_exist):
            LOGGER.debug("All required files already exist. No downloads necessary.")
            return dwnl_path
        try:
            for num_files in range(0, np.count_nonzero(BM_FILENAMES)):
                if req_files[num_files] == 0 or files_exist[num_files] == 1:
                    continue  # file already available or not required
                path_check = False
                # loop through different possible URLs defined in CONFIG:
                value_err = None
                for url in CONFIG.exposures.litpop.nightlights.nasa_sites.list():
                    try:  # control for ValueError due to wrong URL
                        curr_file = url.str() + BM_FILENAMES[num_files] % (year)
                        LOGGER.info("Attempting to download file from %s", curr_file)
                        path_check = download_file(curr_file, download_dir=dwnl_path)
                        break  # leave loop if sucessful
                    except ValueError as err:
                        value_err = err
                if path_check:  # download succesful
                    continue
                if value_err:
                    raise ValueError(
                        "Download failed,"
                        " check URLs inCONFIG.exposures.litpop.nightlights.nasa_sites!\n"
                        f" Last error message:\n {value_err.args[0]}"
                    )
                else:
                    raise ValueError(
                        "Download failed, file not found and no nasa sites configured,"
                        " check URLs in CONFIG.exposures.litpop.nightlights.nasa_sites!"
                    )
        except Exception as exc:
>           raise RuntimeError(
                "Download failed. Please check the network "
                "connection and whether filenames are still valid."
            ) from exc
E           RuntimeError: Download failed. Please check the network connection and whether filenames are still valid.

climada/entity/exposures/litpop/nightlight.py:381: RuntimeError
----------------------------- Captured stdout call -----------------------------
2024-11-07 01:47:18,473 - climada.util.files_handler - INFO - Downloading https://eoimages.gsfc.nasa.gov/images/imagerecords/144000/144897/BlackMarble_2016_A1_geo_gray.tif to file /tmp/tmpqqys8q3w/BlackMarble_2016_A1_geo_gray.tif
----------------------------- Captured stderr call -----------------------------

  0%|          | 0.00/21.4k [00:00<?, ?KB/s]
  0%|          | 36.0/21.4k [00:00<01:08, 312KB/s]
  1%|          | 112/21.4k [00:00<00:51, 413KB/s] 
  2%|▏         | 376/21.4k [00:00<00:18, 1.15kKB/s]
  4%|▍         | 827/21.4k [00:00<00:09, 2.26kKB/s]
  9%|▉         | 1.98k/21.4k [00:00<00:04, 4.70kKB/s]
 19%|█▊        | 3.98k/21.4k [00:00<00:02, 8.68kKB/s]
 29%|██▉       | 6.23k/21.4k [00:00<00:01, 11.7kKB/s]
 39%|███▉      | 8.33k/21.4k [00:00<00:00, 14.3kKB/s]
 44%|████▍     | 9.38k/21.4k [00:01<00:01, 8.85kKB/s]
=============================== warnings summary ===============================
climada/util/__init__.py:27
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/__init__.py:27: FionaDeprecationWarning: This function will be removed in version 2.0. Please use CRS.from_epsg() instead.
    from .constants import *

../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/dask/dataframe/_pyarrow_compat.py:15
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/dask/dataframe/_pyarrow_compat.py:15: FutureWarning: Minimal version of pyarrow will soon be increased to 14.0.1. You are using 12.0.1. Please consider upgrading.
    warnings.warn(

../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas_datareader/compat/__init__.py:11
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas_datareader/compat/__init__.py:11: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    PANDAS_VERSION = LooseVersion(pd.__version__)

../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas_datareader/compat/__init__.py:13
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas_datareader/compat/__init__.py:13: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    PANDAS_0210 = PANDAS_VERSION >= LooseVersion("0.21.0")

../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas_datareader/compat/__init__.py:14
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas_datareader/compat/__init__.py:14: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    PANDAS_0220 = PANDAS_VERSION >= LooseVersion("0.22.0")

../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas_datareader/compat/__init__.py:15
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas_datareader/compat/__init__.py:15: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    PANDAS_0230 = PANDAS_VERSION >= LooseVersion("0.23.0")

climada/hazard/io.py:1149: 12 warnings
climada/engine/test/test_cost_benefit.py: 60 warnings
climada/engine/test/test_impact.py: 8 warnings
climada/engine/test/test_impact_calc.py: 4 warnings
climada/engine/unsequa/test/test_unsequa.py: 9664 warnings
climada/entity/measures/test/test_base.py: 32 warnings
climada/hazard/test/test_base.py: 12 warnings
climada/hazard/test/test_io.py: 3 warnings
climada/hazard/test/test_trop_cyclone.py: 5 warnings
climada/test/test_api_client.py: 4 warnings
climada/test/test_calibration.py: 4 warnings
climada/test/test_engine.py: 512 warnings
climada/test/test_hazard.py: 16 warnings
climada/test/test_plot.py: 20 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/io.py:1149: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    hazard_kwargs[var_name] = np.array(hf_data.get(var_name))

climada/hazard/io.py:1169: 3 warnings
climada/engine/test/test_cost_benefit.py: 15 warnings
climada/engine/test/test_impact.py: 2 warnings
climada/engine/test/test_impact_calc.py: 1 warning
climada/engine/unsequa/test/test_unsequa.py: 2416 warnings
climada/entity/measures/test/test_base.py: 8 warnings
climada/hazard/test/test_base.py: 3 warnings
climada/hazard/test/test_io.py: 1 warning
climada/hazard/test/test_trop_cyclone.py: 3 warnings
climada/test/test_api_client.py: 1 warning
climada/test/test_calibration.py: 1 warning
climada/test/test_engine.py: 128 warnings
climada/test/test_hazard.py: 4 warnings
climada/test/test_plot.py: 5 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/io.py:1169: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    u_hdf5.to_string, np.array(hf_data.get(var_name)).tolist()

climada/hazard/centroids/centr.py:995: 4 warnings
climada/engine/test/test_cost_benefit.py: 15 warnings
climada/engine/test/test_impact.py: 2 warnings
climada/engine/test/test_impact_calc.py: 1 warning
climada/entity/measures/test/test_base.py: 6 warnings
climada/hazard/test/test_base.py: 3 warnings
climada/test/test_api_client.py: 2 warnings
climada/test/test_calibration.py: 1 warning
climada/test/test_hazard.py: 2 warnings
climada/test/test_plot.py: 5 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/centroids/centr.py:995: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    latitude = np.array(data.get("lat"))

climada/hazard/centroids/centr.py:996: 4 warnings
climada/engine/test/test_cost_benefit.py: 15 warnings
climada/engine/test/test_impact.py: 2 warnings
climada/engine/test/test_impact_calc.py: 1 warning
climada/entity/measures/test/test_base.py: 6 warnings
climada/hazard/test/test_base.py: 3 warnings
climada/test/test_api_client.py: 2 warnings
climada/test/test_calibration.py: 1 warning
climada/test/test_hazard.py: 2 warnings
climada/test/test_plot.py: 5 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/centroids/centr.py:996: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    longitude = np.array(data.get("lon"))

climada/hazard/centroids/centr.py:1014: 20 warnings
climada/engine/test/test_cost_benefit.py: 75 warnings
climada/engine/test/test_impact.py: 10 warnings
climada/engine/test/test_impact_calc.py: 5 warnings
climada/engine/unsequa/test/test_unsequa.py: 14496 warnings
climada/entity/measures/test/test_base.py: 42 warnings
climada/hazard/test/test_base.py: 15 warnings
climada/test/test_api_client.py: 10 warnings
climada/test/test_calibration.py: 5 warnings
climada/test/test_engine.py: 768 warnings
climada/test/test_hazard.py: 10 warnings
climada/test/test_plot.py: 25 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/centroids/centr.py:1014: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    values = np.array(data.get(centr_name))

../../../miniforge3/envs/climada_env/lib/python3.11/pickle.py:1718: 3 warnings
climada/engine/test/test_impact_calc.py: 1 warning
climada/engine/unsequa/test/test_unsequa.py: 2593 warnings
climada/entity/measures/test/test_base.py: 3 warnings
climada/test/test_api_client.py: 2 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/pickle.py:1718: UserWarning: Unpickling a shapely <2.0 geometry object. Please save the pickle again; shapely 2.1 will not have this compatibility.
    setstate(state)

climada/engine/test/test_cost_benefit.py: 612 warnings
climada/entity/disc_rates/test/test_base.py: 51 warnings
climada/entity/exposures/test/test_mat.py: 510 warnings
climada/entity/impact_funcs/test/test_imp_fun_set.py: 51 warnings
climada/entity/measures/test/test_base.py: 1071 warnings
climada/entity/measures/test/test_meas_set.py: 51 warnings
climada/entity/test/test_entity.py: 204 warnings
climada/test/test_litpop_integr.py: 913 warnings
climada/util/test/test_coordinates.py: 33 warnings
climada/util/test/test_hdf5.py: 619 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/hdf5_handler.py:68: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    contents[name] = np.array(obj)

climada/engine/test/test_cost_benefit.py: 1944 warnings
climada/entity/exposures/test/test_mat.py: 15 warnings
climada/entity/impact_funcs/test/test_imp_fun_set.py: 450 warnings
climada/entity/measures/test/test_base.py: 3888 warnings
climada/entity/measures/test/test_meas_set.py: 195 warnings
climada/entity/test/test_entity.py: 648 warnings
climada/util/test/test_hdf5.py: 251 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/hdf5_handler.py:92: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    return "".join(chr(int(c)) for c in array)

climada/engine/test/test_cost_benefit.py: 8 warnings
climada/engine/unsequa/test/test_unsequa.py: 16 warnings
climada/test/test_engine.py: 8 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/openpyxl/worksheet/_read_only.py:85: UserWarning: Unknown extension is not supported and will be removed
    for idx, row in parser.parse():

climada/engine/test/test_cost_benefit.py::TestRiskFuncs::test_impact
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestRiskFuncs.test_impact of <climada.engine.test.test_cost_benefit.TestRiskFuncs testMethod=test_impact>>)
    return self.run(*args, **kwds)

climada/engine/test/test_forecast.py::TestCalc::test_Forecast_calc_properties
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/cfgrib/xarray_plugin.py:10: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    if LooseVersion(xr.__version__) <= "0.17.0":

climada/engine/test/test_forecast.py::TestCalc::test_Forecast_calc_properties
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/setuptools/_distutils/version.py:337: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    other = LooseVersion(other)

climada/engine/test/test_impact.py::TestRPmatrix::test_local_exceedance_impact_methods
climada/hazard/test/test_base.py::TestStats::test_local_exceedance_intensity_methods
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/interpolation.py:214: RuntimeWarning: divide by zero encountered in log10
    fill_value = (y_train[0], np.log10(y_asymptotic) if logy else y_asymptotic)

climada/engine/test/test_impact.py: 94 warnings
climada/hazard/test/test_io.py: 4 warnings
climada/hazard/test/test_trop_cyclone.py: 4 warnings
climada/test/test_hazard.py: 4 warnings
climada/util/calibrate/test/test_base.py: 6 warnings
climada/util/calibrate/test/test_bayesian_optimizer.py: 4 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/h5py/_hl/attrs.py:104: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    self.create(name, data=value)

climada/engine/test/test_impact.py::TestImpactH5IO::test_cycle_hdf5
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_minimal
climada/test/test_hazard.py::TestBase::test_write_read_pass
climada/test/test_hazard.py::TestBase::test_write_read_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_compressed.py:84: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    arg1 = np.asarray(arg1)

climada/engine/test/test_impact.py::TestImpactH5IO::test_cycle_hdf5
climada/engine/test/test_impact.py::TestImpactH5IO::test_cycle_hdf5
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_sputils.py:185: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    arr = np.asarray(arr)

climada/engine/test/test_impact.py::TestImpactH5IO::test_cycle_hdf5
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_compressed.py:74: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    self.indices = np.array(indices, copy=copy, dtype=idx_dtype)

climada/engine/test/test_impact.py::TestImpactH5IO::test_cycle_hdf5
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_compressed.py:75: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    self.indptr = np.array(indptr, copy=copy, dtype=idx_dtype)

climada/engine/test/test_impact.py::TestImpactH5IO::test_cycle_hdf5
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
climada/engine/test/test_impact.py::TestImpactH5IO::test_read_hdf5_full
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_compressed.py:76: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    self.data = np.array(data, copy=copy, dtype=dtype)

climada/engine/test/test_impact.py: 32 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/numpy/testing/_private/utils.py:649: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    x = np.asanyarray(x)

climada/engine/test/test_impact_calc.py::TestImpactCalc::test_init
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_index.py:108: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil and dok are more efficient.
    self._set_intXint(row, col, x.flat[0])

climada/engine/test/test_impact_calc.py::TestImpactCalc::test_single_exp_zero_mdr
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/engine/test/test_impact_calc.py:557: DeprecatedWarning: from_lat_lon is deprecated. This method will be removed in a future version. Simply use the constructor instead.
    centroids = Centroids.from_lat_lon([-26.16], [28.20])

climada/engine/test/test_impact_calc.py::TestImpactCalc::test_single_exp_zero_mdr
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/engine/test/test_impact_calc.py:576: DeprecatedWarning: set_geometry_points is deprecated. Obsolete method call. As of climada 5.0, geometry points are set during object initialization
    exp.set_geometry_points()

climada/engine/test/test_impact_data.py: 6 warnings
climada/entity/exposures/test/test_litpop.py: 6 warnings
climada/test/test_engine.py: 20 warnings
climada/test/test_litpop_integr.py: 20 warnings
climada/util/test/test_finance.py: 5 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/finance.py:218: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    close_val = float(close_val.iloc[0].values)

climada/engine/unsequa/test/test_unsequa.py: 2 warnings
climada/test/test_plot.py: 11 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/engine/unsequa/unc_output.py:673: UserWarning: Attempting to set identical low and high xlims makes transformation singular; automatically expanding.
    ax.set_xlim([data.min(), data.max()])

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_plot_unc_imp
climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_plot_unc_imp
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/engine/unsequa/unc_output.py:764: UserWarning: No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
    ax.legend(loc="lower right")

climada/engine/unsequa/test/test_unsequa.py: 2416 warnings
climada/entity/measures/test/test_base.py: 2 warnings
climada/test/test_engine.py: 128 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/centroids/centr.py:998: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    latitude = np.array(data.get("latitude"))

climada/engine/unsequa/test/test_unsequa.py: 2416 warnings
climada/entity/measures/test/test_base.py: 2 warnings
climada/test/test_engine.py: 128 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/centroids/centr.py:999: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    longitude = np.array(data.get("longitude"))

climada/engine/unsequa/test/test_unsequa.py: 13 warnings
climada/test/test_engine.py: 3 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/engine/unsequa/calc_base.py:331: DeprecationWarning: `salib.sample.saltelli` will be removed in SALib 1.5.1 Please use `salib.sample.sobol`
    sample_uniform = salib_sampling_method.sample(

climada/engine/unsequa/test/test_unsequa.py: 9 warnings
climada/test/test_engine.py: 4 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/util/__init__.py:274: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version.
    names = list(pd.unique(groups))

climada/engine/unsequa/test/test_unsequa.py: 40 warnings
climada/test/test_engine.py: 5 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas/core/dtypes/common.py:1636: DeprecationWarning: Converting `np.inexact` or `np.floating` to a dtype is deprecated. The current result is `float64` which is not strictly correct.
    npdtype = np.dtype(dtype)

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/test/test_engine.py::TestCalcCostBenefit::test_calc_sensitivity_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/sobol.py:141: RuntimeWarning: invalid value encountered in divide
    Y = (Y - Y.mean()) / Y.std()

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/engine/unsequa/unc_output.py:1172: PerformanceWarning: 
  your performance may suffer as PyTables will pickle object types that it cannot
  map directly to c-types [inferred_type->mixed,key->block1_values] [items->Index(['si', 'param', 'param2'], dtype='object')]
  
    store.put(var_name, var_val, format="fixed", complevel=9)

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/engine/unsequa/unc_output.py:1172: PerformanceWarning: 
  your performance may suffer as PyTables will pickle object types that it cannot
  map directly to c-types [inferred_type->mixed-integer,key->axis0] [items->None]
  
    store.put(var_name, var_val, format="fixed", complevel=9)

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/engine/unsequa/unc_output.py:1172: PerformanceWarning: 
  your performance may suffer as PyTables will pickle object types that it cannot
  map directly to c-types [inferred_type->integer,key->block0_items] [items->None]
  
    store.put(var_name, var_val, format="fixed", complevel=9)

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/pawn.py:142: RuntimeWarning: invalid value encountered in scalar divide
    cv = np.nanstd(p_ind) / mean

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/sample/saltelli.py:110: UserWarning: 
          Convergence properties of the Sobol' sequence is only valid if
          `N` (100) is equal to `2^n`.
          
    warnings.warn(msg)

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/engine/unsequa/calc_base.py:540: DeprecationWarning: This method will be retired in future, please use enhanced_hdmr instead.
    sens_indices = method.analyze(problem_sa, X, Y, **sensitivity_kwargs)

climada/engine/unsequa/test/test_unsequa.py: 1400 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:688: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    S[j] = C[0, 1] / V_Y

climada/engine/unsequa/test/test_unsequa.py: 1400 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:694: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    S_a[j] = C[0, 0] / V_Y

climada/engine/unsequa/test/test_unsequa.py: 1400 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:697: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    S_b[j] = C[0, 1] / V_Y

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:661: RuntimeWarning: invalid value encountered in scalar divide
    F_stat = ((SSR0 - SSR1) / (p1 - p0)) / (SSR1 / (R - p1))

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:688: RuntimeWarning: invalid value encountered in divide
    S[j] = C[0, 1] / V_Y

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:694: RuntimeWarning: invalid value encountered in divide
    S_a[j] = C[0, 0] / V_Y

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:697: RuntimeWarning: invalid value encountered in divide
    S_b[j] = C[0, 1] / V_Y

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/dgsm.py:132: RuntimeWarning: invalid value encountered in scalar divide
    dgsm = vi * (bounds[1] - bounds[0]) ** 2 / (D * np.pi**2)

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/fast.py:117: RuntimeWarning: invalid value encountered in scalar divide
    return (D1 / V), (1.0 - Dt / V)

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/sample/saltelli.py:110: UserWarning: 
          Convergence properties of the Sobol' sequence is only valid if
          `N` (24) is equal to `2^n`.
          
    warnings.warn(msg)

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/rbd_fast.py:128: RuntimeWarning: invalid value encountered in scalar divide
    return D1 / V

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/morris.py:453: RuntimeWarning: invalid value encountered in subtract
    delta_variables = np.subtract(input_matrix[:, 1:, :], input_matrix[:, 0:-1, :])

climada/entity/exposures/test/test_base.py::TestFuncs::test_affected_total_value
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_base.py:466: SparseEfficiencyWarning: Comparing a sparse matrix with a scalar less than zero using > is inefficient, try using <= instead.
    return self.tocsr().__gt__(other)

climada/entity/tag/test/test_tag.py::TestAppend::test_append_different_increase
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/entity/tag/test/test_tag.py:32: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag1 = Tag("file_name1.mat", "dummy file 1")

climada/entity/tag/test/test_tag.py::TestAppend::test_append_different_increase
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/entity/tag/test/test_tag.py:36: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag2 = Tag("file_name2.mat", "dummy file 2")

climada/entity/tag/test/test_tag.py::TestAppend::test_append_empty
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/entity/tag/test/test_tag.py:59: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag1 = Tag("file_name1.mat", "dummy file 1")

climada/entity/tag/test/test_tag.py::TestAppend::test_append_empty
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/entity/tag/test/test_tag.py:60: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag2 = Tag()

climada/entity/tag/test/test_tag.py::TestAppend::test_append_empty
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/entity/tag/test/test_tag.py:66: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag1 = Tag()

climada/entity/tag/test/test_tag.py::TestAppend::test_append_empty
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/entity/tag/test/test_tag.py:67: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag2 = Tag("file_name1.mat", "dummy file 1")

climada/entity/tag/test/test_tag.py::TestAppend::test_append_equal_same
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/entity/tag/test/test_tag.py:50: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag1 = Tag("file_name1.mat", "dummy file 1")

climada/entity/tag/test/test_tag.py::TestAppend::test_append_equal_same
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/entity/tag/test/test_tag.py:51: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag2 = Tag("file_name1.mat", "dummy file 1")

climada/hazard/centroids/test/test_centr.py::TestCentroidsMethods::test_get_closest_point
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/centroids/centr.py:639: UserWarning: Geometry is in a geographic CRS. Results from 'distance' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    close_idx = self.geometry.distance(Point(x_lon, y_lat)).values.argmin()

climada/hazard/test/test_base.py::TestSelect::test_select_tight_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_index.py:151: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil and dok are more efficient.
    self._set_arrayXarray(i, j, x)

climada/hazard/test/test_io.py::TestReadDefaultNetCDF::test_missing_dims
climada/hazard/test/test_io.py::TestReadDimsCoordsNetCDF::test_errors
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/io.py:608: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.
    f"{list(data.dims.keys())}"

climada/hazard/test/test_io.py::TestReadDefaultNetCDF::test_missing_dims
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/test/test_io.py:393: UserWarning: Converting non-nanosecond precision datetime values to nanosecond precision. This behavior can eventually be relaxed in xarray, as it is an artifact from pandas which is now beginning to support non-nanosecond precision values. This warning is caused by passing non-nanosecond np.datetime64 or np.timedelta64 values to the DataArray or Variable constructor; it can be silenced by converting the values to nanosecond precision ahead of time.
    ds = ds.expand_dims(time=[np.datetime64("2022-01-01")])

climada/hazard/test/test_storm_europe.py::TestReader::test_read_with_cent
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/centroids/centr.py:359: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.
    self.gdf = pd.concat([self.gdf, centr.gdf])

climada/hazard/test/test_tc_tracks.py: 25 warnings
climada/hazard/test/test_tc_tracks_synth.py: 2 warnings
climada/hazard/test/test_trop_cyclone.py: 1 warning
climada/test/test_hazard.py: 5 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/tc_tracks.py:734: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.
    if ibtracs_ds.dims["storm"] == 0:

climada/hazard/test/test_tc_tracks.py: 15 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/xarray/core/dataarray.py:3178: DeprecationWarning: Deleting a single level of a MultiIndex is deprecated. Previously, this deleted all levels of a MultiIndex. Please also drop the following variables: {'id'} to avoid an error in the future.
    ds = self._to_temp_dataset().drop_vars(names, errors=errors)

climada/hazard/test/test_tc_tracks.py::TestIO::test_to_geodataframe_line
climada/hazard/test/test_tc_tracks.py::TestIO::test_to_geodataframe_line
climada/hazard/test/test_tc_tracks.py::TestIO::test_to_geodataframe_line
climada/hazard/test/test_tc_tracks.py::TestFuncs::test_tracks_in_exp_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/geopandas/geodataframe.py:204: FutureWarning: You are adding a column named 'geometry' to a GeoDataFrame constructed without an active geometry column. Currently, this automatically sets the active geometry column to 'geometry' but in the future that will no longer happen. Instead, either provide geometry to the GeoDataFrame constructor (GeoDataFrame(... geometry=GeoSeries()) or use `set_geometry('geometry')` to explicitly set the active geometry column.
    object.__setattr__(self, attr, val)

climada/hazard/test/test_tc_tracks.py::TestIO::test_to_geodataframe_points
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/test/test_tc_tracks.py:624: UserWarning: Geometry is in a geographic CRS. Results from 'buffer' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    gdf_points.buffer(3).unary_union.area, 348.79972062947854

climada/hazard/test/test_tc_tracks.py: 7 warnings
climada/hazard/test/test_tc_tracks_synth.py: 2 warnings
climada/hazard/test/test_trop_cyclone.py: 4 warnings
climada/hazard/test/test_trop_cyclone_windfields.py: 1 warning
climada/test/test_hazard.py: 1 warning
  <string>:6: FutureWarning: 'H' is deprecated and will be removed in a future version. Please use 'h' instead of 'H'.

climada/hazard/test/test_tc_tracks.py::TestFuncs::test_interp_track_pass
  <string>:6: FutureWarning: 'L' is deprecated and will be removed in a future version. Please use 'ms' instead of 'L'.

climada/hazard/test/test_tc_tracks.py::TestFuncs::test_tracks_in_exp_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/test/test_tc_tracks.py:1103: FutureWarning: The geopandas.dataset module is deprecated and will be removed in GeoPandas 1.0. You can get the original 'naturalearth_lowres' data from https://www.naturalearthdata.com/downloads/110m-cultural-vectors/.
    world = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))

climada/hazard/test/test_tc_tracks.py::TestFuncs::test_tracks_in_exp_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/tc_tracks.py:347: UserWarning: Geometry is in a geographic CRS. Results from 'buffer' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    exp_buffer = exposure.gdf.buffer(distance=buffer, resolution=0)

climada/hazard/test/test_tc_tracks.py::TestFuncs::test_tracks_in_exp_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/tc_tracks.py:350: UserWarning: Geometry is in a geographic CRS. Results from 'buffer' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    tc_tracks_lines = self.to_geodataframe().buffer(distance=buffer)

climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_apply_decay_no_landfall_pass
climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_calc_decay_no_landfall_pass
climada/hazard/test/test_tc_tracks_synth.py::TestSynth::test_random_no_landfall_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/coordinates.py:653: FutureWarning: `unary_union` returned None due to all-None GeoSeries. In future, `unary_union` will return 'GEOMETRYCOLLECTION EMPTY' instead.
    geom = geom.geometry.unary_union

climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_apply_decay_no_landfall_pass
climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_calc_decay_no_landfall_pass
climada/hazard/test/test_tc_tracks_synth.py::TestSynth::test_random_no_landfall_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/shapely/predicates.py:1135: RuntimeWarning: invalid value encountered in contains_xy
    return lib.contains_xy(geom, x, y, **kwargs)

climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_decay_end_ocean
climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_decay_penv_gt_pcen
climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_wrong_decay_pass
climada/hazard/test/test_tc_tracks_synth.py::TestSynth::test_random_walk_single_point
climada/test/test_hazard.py::TestTcTracks::test_cutoff_tracks
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/tc_tracks_synth.py:1052: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    rndn = 0.1 * float(np.abs(np.random.normal(size=1) * 5) + 6)

climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_func_decay_p_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/tc_tracks_synth.py:1153: RuntimeWarning: invalid value encountered in divide
    return -np.log((ps_y - p_y) / (ps_y - 1.0)) / x_val

climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_func_decay_v_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/tc_tracks_synth.py:1142: RuntimeWarning: invalid value encountered in divide
    return -np.log(v_y) / x_val

climada/hazard/test/test_trop_cyclone.py::TestReader::test_cross_antimeridian
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/test/test_trop_cyclone.py:176: DeprecatedWarning: from_lat_lon is deprecated. This method will be removed in a future version. Simply use the constructor instead.
    cen = Centroids.from_lat_lon([-16.95, -16.8, -16.8], [179.9, 180.1, -179.9])

climada/hazard/test/test_trop_cyclone.py::TestReader::test_cross_antimeridian
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/hazard/test/test_trop_cyclone.py:177: DeprecatedWarning: set_dist_coast is deprecated. This method is futile and will be removed in a future version. `Centroids.get_dist_coast` can be run without initialization.
    cen.set_dist_coast(precomputed=True)

climada/test/test_plot.py::TestPlotter::test_ctx_osm_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/cartopy/mpl/geoaxes.py:856: UserWarning: Attempting to set identical low and high xlims makes transformation singular; automatically expanding.
    self.set_xlim([x1, x2])

climada/test/test_plot.py::TestPlotter::test_hazard_intensity_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/plot.py:658: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). Consider using `matplotlib.pyplot.close()`.
    fig, axis_sub = plt.subplots(

climada/test/test_plot.py::TestPlotter::test_hazard_rp_intensity
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/test/test_plot.py:114: DeprecatedWarning: plot_rp_intensity is deprecated. The use of Hazard.plot_rp_intensity is deprecated.Use Hazard.local_exceedance_intensity and util.plot.plot_from_gdf instead.
    (axis1, axis2), _ = hazard.plot_rp_intensity([25, 50])

climada/test/test_util.py: 6 warnings
climada/util/test/test_lines_polys_handler.py: 13 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/lines_polys_handler.py:638: FutureWarning: The 'axis' keyword in DataFrame.groupby is deprecated and will be removed in a future version.
    group = gdf_pnts.groupby(axis=0, level=0)

climada/test/test_util_calibrate.py: 6 warnings
climada/util/calibrate/test/test_base.py: 5 warnings
climada/util/calibrate/test/test_bayesian_optimizer.py: 3 warnings
climada/util/calibrate/test/test_scipy_optimizer.py: 3 warnings
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/calibrate/test/test_base.py:49: DeprecatedWarning: from_lat_lon is deprecated. This method will be removed in a future version. Simply use the constructor instead.
    centroids = Centroids.from_lat_lon(lat=lat, lon=lon)

climada/test/test_util_calibrate.py: 820 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/optimize/_differentiable_functions.py:551: UserWarning: delta_grad == 0.0. Check if the approximated function is linear. If the function is linear better results can be obtained by defining the Hessian as zero instead of using quasi-Newton approximations.
    self.H.update(delta_x, delta_g)

climada/util/calibrate/test/test_bayesian_optimizer.py::TestBayesianOptimizerController::test_optimizer_params
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/unittest/case.py:1176: DeprecationWarning: assertDictContainsSubset is deprecated
    warnings.warn('assertDictContainsSubset is deprecated',

climada/util/calibrate/test/test_bayesian_optimizer.py::TestBayesianOptimizerOutput::test_cycle
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/calibrate/bayesian_optimizer.py:192: UserWarning: 
  Data point [2.] is outside the bounds of the parameter space. 
    p_space.register(

climada/util/calibrate/test/test_bayesian_optimizer.py::TestBayesianOptimizerOutput::test_cycle
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/calibrate/bayesian_optimizer.py:192: UserWarning: 
  Data point [1.] is outside the bounds of the parameter space. 
    p_space.register(

climada/util/calibrate/test/test_bayesian_optimizer.py::TestBayesianOptimizerOutput::test_cycle
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/calibrate/bayesian_optimizer.py:192: UserWarning: 
  Data point [-0.9] is outside the bounds of the parameter space. 
    p_space.register(

climada/util/test/test_coordinates.py::TestGetGeodata::test_all_points_on_sea
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/coordinates.py:1615: FutureWarning: `unary_union` returned None due to all-None GeoSeries. In future, `unary_union` will return 'GEOMETRYCOLLECTION EMPTY' instead.
    total_land = countries.geometry.unary_union

climada/util/test/test_coordinates.py::TestGetGeodata::test_get_country_geometries_all_pass
  /var/lib/jenkins/jobs/climada_ci_night/workspace/climada/util/test/test_coordinates.py:1456: UserWarning: Geometry is in a geographic CRS. Results from 'area' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    self.assertAlmostEqual(res.area[0], 1.639510995900778)

climada/util/test/test_lines_polys_handler.py::TestExposureGeomToPnt::test_point_exposure_from_lines
climada/util/test/test_lines_polys_handler.py::TestExposureGeomToPnt::test_point_exposure_from_lines
climada/util/test/test_lines_polys_handler.py::TestGeomImpactCalcs::test_calc_geom_impact_lines
climada/util/test/test_lines_polys_handler.py::TestGeomImpactCalcs::test_calc_geom_impact_mixed
climada/util/test/test_lines_polys_handler.py::TestGeomImpactCalcs::test_calc_geom_impact_mixed
Output truncated.

Details

  • Declarative: Checkout SCM (1.6 sec)
    • lint (1 min 15 sec)
    • integ_test (16 min)
      Error: script returned exit code 2
    • Declarative: Post Actions (2 sec)
      Unstable: 1 tests failed