From 0ffed82225ec429a1b64b2ddeba1e25ab6e3c1a8 Mon Sep 17 00:00:00 2001 From: Marek Ozana Date: Wed, 24 Jul 2024 15:03:21 +0200 Subject: [PATCH 1/2] updated fixed warnings --- data/t_exp.parquet | Bin 5513 -> 6079 bytes data/t_keyfigures.parquet | Bin 1249 -> 1652 bytes data/t_price.parquet | Bin 10641 -> 13075 bytes pytest.ini | 3 ++- src/data_manager.py | 4 ++-- tests/test_app.py | 8 ++++---- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/data/t_exp.parquet b/data/t_exp.parquet index af19965bb2cd4814c83cfec97ded8bb5f3040c22..ecfae96bd300ee9c6b11edf4665f59ae582e9923 100644 GIT binary patch delta 4534 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 d#Cll8B-A*>KCy0|#d3*}<1iBgLx5wDApo|w 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 Zv+UTAk?baa{*NfwHmD$ww%i;3{{@#+rhotd diff --git a/pytest.ini b/pytest.ini index 5702fad..d169df8 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,3 +1,4 @@ [pytest] pythonpath = . -addopts = --cov=. --cov-config=.coveragerc --cov-report=term --cov-report=html \ No newline at end of file +addopts = --cov=. --cov-config=.coveragerc --cov-report=term --cov-report=html +filterwarnings = ignore:.*google.protobuf.pyext._message.ScalarMapContainer.*:DeprecationWarning \ No newline at end of file diff --git a/src/data_manager.py b/src/data_manager.py index b398aa5..0fd3810 100644 --- a/src/data_manager.py +++ b/src/data_manager.py @@ -534,7 +534,7 @@ def _import_fund_info(self, f_name: Path) -> pl.LazyFrame: # rating = ix -> moodys -> sp -> fitch pl.col("ix_rtg") .fill_null(pl.col("rtg_moody")) - .map_elements(lambda x: self.MOODY_TO_SP.get(x)) + .map_elements(lambda x: self.MOODY_TO_SP.get(x), return_dtype=pl.String) .fill_null(pl.col("rtg_sp")) .fill_null(pl.col("rtg_fitch")) .cast(self.RATING_TYPE) @@ -542,7 +542,7 @@ def _import_fund_info(self, f_name: Path) -> pl.LazyFrame: ) .with_columns( pl.col("rating") - .map_elements(lambda x: self.RATING_TO_MRATING.get(x)) + .map_elements(lambda x: self.RATING_TO_MRATING.get(x), return_dtype=pl.String) .cast(self.MRATING_TYPE) .alias("m_rating") ) diff --git a/tests/test_app.py b/tests/test_app.py index 92ea3e3..eeb6962 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -22,7 +22,7 @@ def test_app_with_adjusted_r_min(): # Initial check to ensure the app started correctly. assert not at.exception, "The app should start without exceptions." assert "**Expected Return in 1y** = 7.0%" in at.markdown[0].value - assert "**Expected volatility** = 2.6%" in at.markdown[0].value + assert "**Expected volatility** = 2.5%" in at.markdown[0].value # Set the r_min slider to 8%. r_min_slider = at.sidebar.slider[0] @@ -31,7 +31,7 @@ def test_app_with_adjusted_r_min(): # Verify that the app didn't throw an exception after the change. assert not at.exception, "The app should not throw after setting r_min to 8%." assert "**Expected Return in 1y** = 8.0%" in at.markdown[0].value - assert "**Expected volatility** = 3.9%" in at.markdown[0].value + assert "**Expected volatility** = 3.8%" in at.markdown[0].value def test_app_remove_tickers(): @@ -41,11 +41,11 @@ def test_app_remove_tickers(): # Initial check to ensure the app started correctly. assert not at.exception, "The app should start without exceptions." assert "**Expected Return in 1y** = 7.0%" in at.markdown[0].value - assert "**Expected volatility** = 2.6%" in at.markdown[0].value + assert "**Expected volatility** = 2.5%" in at.markdown[0].value at.sidebar.multiselect[0].unselect("Climate Focus").run() # Verify that the app didn't throw an exception after the change. assert not at.exception, "The app should not throw removing ticker" assert "**Expected Return in 1y** = 7.0%" in at.markdown[0].value - assert "**Expected volatility** = 2.9%" in at.markdown[0].value + assert "**Expected volatility** = 2.8%" in at.markdown[0].value From 4194db86526a8a895678438d5b5651aa01329b4d Mon Sep 17 00:00:00 2001 From: Marek Ozana Date: Wed, 24 Jul 2024 15:09:25 +0200 Subject: [PATCH 2/2] update to latest --- requirements.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/requirements.txt b/requirements.txt index 4fb59b7..2c690ba 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ altair>=5.3 -filelock>=3.13 -numpy>=1.26.4 +filelock>=3.15 +numpy>=2.0.1 pandas>=2.2.2 -polars>=0.20.19 -pytest>=8.1.1 +polars>=1.2.1 +pytest>=8.3.1 pytest-cov>=5.0.0 -scipy>=1.12.0 -streamlit>=1.33 -yfinance>=0.2.37 +scipy>=1.14.0 +streamlit>=1.36 +yfinance>=0.2.41