Skip to content

Commit efaf527

Browse files
Make public method to get subset schema (#1218)
* apply changes * update release notes
1 parent 7512f44 commit efaf527

File tree

6 files changed

+15
-9
lines changed

6 files changed

+15
-9
lines changed

docs/source/release_notes.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ Future Release
88
* Add type inference for natural language (:pr:`1210`)
99
* Fixes
1010
* Changes
11+
* Make public method ``get_subset_schema`` (:pr:`1218`)
1112
* Documentation Changes
1213
* Testing Changes
1314

1415
Thanks to the following people for contributing to this release:
15-
:user:`tuethan1999`
16+
:user:`jeff-hernandez`, :user:`tuethan1999`
1617

1718
v0.10.0 Nov 30, 2020
1819
====================

woodwork/indexers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def _process_selection(selection, original_data):
5353
elif _is_dataframe(selection):
5454
# Selecting a new DataFrame from an existing DataFrame
5555
schema = original_data.ww.schema
56-
new_schema = schema._get_subset_schema(list(selection.columns))
56+
new_schema = schema.get_subset_schema(list(selection.columns))
5757
selection.ww.init_with_full_schema(schema=new_schema, validate=False)
5858
# Selecting a single value or return selection from above
5959
return selection

woodwork/table_accessor.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,7 @@ def select(self, include=None, exclude=None, return_schema=False):
577577
cols_to_include = self._schema._filter_cols(include, exclude)
578578

579579
if return_schema:
580-
return self._schema._get_subset_schema(cols_to_include)
580+
return self._schema.get_subset_schema(cols_to_include)
581581
return self._get_subset_df_with_schema(cols_to_include)
582582

583583
@_check_table_schema
@@ -776,7 +776,7 @@ def _get_subset_df_with_schema(self, cols_to_include, inplace=False):
776776

777777
assert all([col_name in self._schema.columns for col_name in cols_to_include])
778778

779-
new_schema = self._schema._get_subset_schema(cols_to_include)
779+
new_schema = self._schema.get_subset_schema(cols_to_include)
780780
if inplace:
781781
cols_to_drop = [
782782
col_name

woodwork/table_schema.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,7 +552,12 @@ def _filter_cols(self, include=None, exclude=None, col_names=False):
552552

553553
return cols_to_return
554554

555-
def _get_subset_schema(self, subset_cols):
555+
@property
556+
def _get_subset_schema(self):
557+
# removing this property might cause breaking changes in EvalML
558+
return self.get_subset_schema
559+
560+
def get_subset_schema(self, subset_cols):
556561
"""Creates a new TableSchema with specified columns, retaining typing information.
557562
558563
Args:

woodwork/tests/accessor/test_table_accessor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2014,7 +2014,7 @@ def test_pop(sample_df):
20142014
assert "age" not in schema_df.ww.logical_types.keys()
20152015
assert "age" not in schema_df.ww.semantic_tags.keys()
20162016

2017-
assert schema_df.ww.schema == original_schema._get_subset_schema(
2017+
assert schema_df.ww.schema == original_schema.get_subset_schema(
20182018
list(schema_df.columns)
20192019
)
20202020

woodwork/tests/schema/test_table_schema.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ def test_get_subset_schema_all_params(
520520
assert set(possible_schema_params) == set(kwargs.keys())
521521

522522
schema = TableSchema(**kwargs)
523-
copy_schema = schema._get_subset_schema(sample_column_names)
523+
copy_schema = schema.get_subset_schema(sample_column_names)
524524

525525
assert schema == copy_schema
526526
assert schema is not copy_schema
@@ -1158,7 +1158,7 @@ def test_set_index_twice(sample_column_names, sample_inferred_logical_types):
11581158
index="id",
11591159
time_index="signup_date",
11601160
)
1161-
original_schema = schema._get_subset_schema(list(schema.columns.keys()))
1161+
original_schema = schema.get_subset_schema(list(schema.columns.keys()))
11621162

11631163
schema.set_index("id")
11641164
assert schema.index == "id"
@@ -1210,7 +1210,7 @@ def test_schema_rename(sample_column_names, sample_inferred_logical_types):
12101210
column_descriptions={"id": id_description},
12111211
column_origins={"id": id_origin},
12121212
)
1213-
original_schema = schema._get_subset_schema(list(schema.columns.keys()))
1213+
original_schema = schema.get_subset_schema(list(schema.columns.keys()))
12141214

12151215
renamed_schema = schema.rename({"age": "birthday"})
12161216

0 commit comments

Comments
 (0)