From 6be7b98be83064138746cc4853bb8b82adf9b017 Mon Sep 17 00:00:00 2001 From: Florian Spreckelsen <f.spreckelsen@indiscale.com> Date: Wed, 2 Jun 2021 06:52:43 +0000 Subject: [PATCH] FIX: Use openpyxl instead of xlrd --- CHANGELOG.md | 1 + .../2010_TestProject/2019-02-03/README.md | 2 +- .../2010_TestProject/2019-02-03/README.md | 2 +- .../2019-02-03_really_cool_finding/README.md | 2 +- .../2010_TestProject/2019-02-03/README.md | 2 +- setup.py | 1 + unittests/date.xls | Bin 0 -> 6144 bytes unittests/test_table_importer.py | 18 +++++++++++++++++- 8 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 unittests/date.xls diff --git a/CHANGELOG.md b/CHANGELOG.md index dfba5bc0..5fbe3b97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed ### - An exception in collect_information does no longer lead to a break down. +- Removed dependency on discontiued xlrd version * Fixed an issue where `caosadvancedtools.cache.UpdateCache` would cause an `sqlite3.IntegrityError` if more than one change was cached for the same entity. diff --git a/integrationtests/extroot/DataAnalysis/2010_TestProject/2019-02-03/README.md b/integrationtests/extroot/DataAnalysis/2010_TestProject/2019-02-03/README.md index ce0111b8..71454e89 100644 --- a/integrationtests/extroot/DataAnalysis/2010_TestProject/2019-02-03/README.md +++ b/integrationtests/extroot/DataAnalysis/2010_TestProject/2019-02-03/README.md @@ -1,7 +1,7 @@ --- responsible: - Only Responsible -description: A description of this example analysis. +description: A description of another example analysis. sources: - file: "/ExperimentalData/2010_TestProject/2019-02-03/*.dat" diff --git a/integrationtests/extroot/ExperimentalData/2010_TestProject/2019-02-03/README.md b/integrationtests/extroot/ExperimentalData/2010_TestProject/2019-02-03/README.md index b9d7ef5e..b7e5051c 100644 --- a/integrationtests/extroot/ExperimentalData/2010_TestProject/2019-02-03/README.md +++ b/integrationtests/extroot/ExperimentalData/2010_TestProject/2019-02-03/README.md @@ -1,7 +1,7 @@ --- responsible: - Only Responsible -description: A description of this example experiment. +description: A description of another example experiment. results: - file: "/ExperimentalData/2010_TestProject/2019-02-03/*.dat" diff --git a/integrationtests/extroot/Publications/Posters/2019-02-03_really_cool_finding/README.md b/integrationtests/extroot/Publications/Posters/2019-02-03_really_cool_finding/README.md index 6d378818..c95e37ec 100644 --- a/integrationtests/extroot/Publications/Posters/2019-02-03_really_cool_finding/README.md +++ b/integrationtests/extroot/Publications/Posters/2019-02-03_really_cool_finding/README.md @@ -1,7 +1,7 @@ --- responsible: - Only Responsible -description: A description of this example experiment. +description: A description of another example experiment. sources: - /DataAnalysis/2010_TestProject/2019-02-03/results.pdf diff --git a/integrationtests/extroot/SimulationData/2010_TestProject/2019-02-03/README.md b/integrationtests/extroot/SimulationData/2010_TestProject/2019-02-03/README.md index f978bb77..fba1bd48 100644 --- a/integrationtests/extroot/SimulationData/2010_TestProject/2019-02-03/README.md +++ b/integrationtests/extroot/SimulationData/2010_TestProject/2019-02-03/README.md @@ -1,7 +1,7 @@ --- responsible: - Only Responsible -description: A description of this example experiment. +description: A description of another example experiment. results: - file: "*.dat" diff --git a/setup.py b/setup.py index 1d824f51..f26b126c 100755 --- a/setup.py +++ b/setup.py @@ -155,6 +155,7 @@ def setup_package(): author='Henrik tom Wörden', author_email='h.tomwoerden@indiscale.com', install_requires=["caosdb>=0.4.0", + "openpyxl>=3.0.0", "pandas>=1.2.0", "xlrd>=2.0", ], diff --git a/unittests/date.xls b/unittests/date.xls new file mode 100644 index 0000000000000000000000000000000000000000..966ad4dc1d04055d75b455c8d0f9a5ac6f36200d GIT binary patch literal 6144 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 L4WfzBgKR$l?JPmF literal 0 HcmV?d00001 diff --git a/unittests/test_table_importer.py b/unittests/test_table_importer.py index 6681ed2c..51b4803d 100644 --- a/unittests/test_table_importer.py +++ b/unittests/test_table_importer.py @@ -77,7 +77,8 @@ class ConverterTest(unittest.TestCase): # TODO datatypes are different; fix it assert df.d.iloc[0] == datetime.datetime(1980, 12, 31, 13, 24, 23) - def test_date(self): + def test_date_xlsx(self): + """Test with .xlsx in order to check openpyxl engine.""" test_file = os.path.join(os.path.dirname(__file__), "date.xlsx") self.importer = XLSImporter(converters={'a': date_converter, 'b': date_converter, @@ -91,6 +92,21 @@ class ConverterTest(unittest.TestCase): assert df.shape[0] == 2 assert df.a.iloc[0] == df.b.iloc[0] == df.c.iloc[0] + def test_date_xls(self): + """Test with .xls in order to check xlrd engine.""" + test_file = os.path.join(os.path.dirname(__file__), "date.xls") + self.importer = XLSImporter(converters={'a': date_converter, + 'b': date_converter, + 'c': partial(date_converter, + fmt="%d.%m.%y") + }, obligatory_columns=['a']) + + xls_file = pd.io.excel.ExcelFile(test_file) + df = xls_file.parse() + df = self.importer.read_xls(test_file) + assert df.shape[0] == 2 + assert df.a.iloc[0] == df.b.iloc[0] == df.c.iloc[0] + def test_inc_date(self): incomplete_date_converter("2020", fmts={"%Y": "%Y"}) == "2020" incomplete_date_converter("02/2020", -- GitLab