Skip to content
Snippets Groups Projects
Commit 5b6cd1b0 authored by Henrik tom Wörden's avatar Henrik tom Wörden
Browse files

MAINT: obligatory no longer forces columns to exist

parent 81ccbd95
No related branches found
No related tags found
2 merge requests!73MAINT: change wording of TableImporter argument and allow converters and...,!70ENH: allow to provide required columns explicitly
Pipeline #35528 passed
......@@ -8,10 +8,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ###
- TableImporter now accepts a `existing_columns` argument which demands that certain columns exist
although they may have missing values
### Changed ###
- The converters and datatype arguments of TableImporter now may have keys for nonexisting columns
- The obligatory key word no longer enforces that the columns exist. Since all rows are still
checked whether this column has a non-NULL value, this is deemed a non breaking change.
### Deprecated ###
......
......@@ -221,7 +221,7 @@ class TableImporter():
value check is not necessary.
obligatory_columns : list, optional
List of column names, each listed column must exist and must not have missing values.
List of column names that must not have missing values.
unique_keys : list, optional
List of column names that in combination must be unique: each row has a unique
......@@ -272,7 +272,7 @@ class TableImporter():
"""
for col in self.obligatory_columns+self.existing_columns:
for col in self.existing_columns:
if col not in df.columns:
errmsg = "Column '{}' missing in ".format(col)
errmsg += ("\n{}.\n".format(filename) if filename
......
......@@ -153,10 +153,6 @@ class TableImporterTest(unittest.TestCase):
[['a', 1, 2.0, 'yes', np.nan]], columns=['a', 'b', 'c', 'd', 'e'])
def test_missing_col(self):
# check missing from obligatory
df = pd.DataFrame(columns=['a', 'e'])
importer = TableImporter(**self.importer_kwargs)
self.assertRaises(ValueError, importer.check_columns, df)
# check missing from existing
df = pd.DataFrame(columns=['a', 'b'])
importer = TableImporter(**self.importer_kwargs)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment