Skip to content

Commit be9fa49

Browse files
authored
Merge pull request #63 from ihmeuw/feature/cleanup-initializer-error
Make error message clearer
2 parents 5d7c2f6 + 3445e54 commit be9fa49

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/vivarium/framework/population.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,10 @@ def _validate_no_missing_initializers(initializers: Sequence[Tuple]) -> None:
219219
created_columns.extend(created)
220220
required_columns.extend(required)
221221

222-
if not set(required_columns) <= set(created_columns):
223-
raise PopulationError(f"The initializers {initializers} could not be added. "
224-
"Check for missing dependencies in your components.")
222+
missing_columns = set(required_columns).difference(set(created_columns))
223+
if missing_columns:
224+
raise PopulationError(f"The columns {missing_columns} are required, but are not "
225+
f"created by any components in the system.")
225226

226227
def _order_initializers(self) -> None:
227228
unordered_initializers = deque(self._population_initializers)

tests/framework/test_population.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def test_cyclic_dependencies(num_nodes, edges):
3939

4040
dag = make_initializer_dag(num_nodes, edges)
4141
for node in dag:
42-
manager.register_simulant_initializer(lambda: node['name'],
42+
manager.register_simulant_initializer(lambda: node['name'],
4343
node['creates'],
4444
node['requires'])
4545

@@ -56,11 +56,11 @@ def test_missing_dependencies(num_nodes, edges):
5656

5757
dag = make_initializer_dag(num_nodes, edges)
5858
for node in dag:
59-
manager.register_simulant_initializer(lambda: node['name'],
59+
manager.register_simulant_initializer(lambda: node['name'],
6060
node['creates'],
6161
node['requires'])
6262

63-
with pytest.raises(PopulationError, match="Check for missing dependencies"):
63+
with pytest.raises(PopulationError, match="are not created by any components in the system"):
6464
manager._order_initializers()
6565

6666

0 commit comments

Comments
 (0)