Skip to content

Commit f39c983

Browse files
committed
Review comments.
1 parent d375f17 commit f39c983

File tree

3 files changed

+25
-22
lines changed

3 files changed

+25
-22
lines changed

src/ttsim/compute_taxes_and_transfers.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from _gettsim.config import (
1414
DEFAULT_TARGETS,
1515
FOREIGN_KEYS,
16+
SUPPORTED_GROUPINGS,
1617
)
1718
from ttsim.combine_functions import (
1819
combine_policy_functions_and_derived_functions,
@@ -26,6 +27,7 @@
2627
)
2728
from ttsim.policy_environment import PolicyEnvironment
2829
from ttsim.shared import (
30+
all_variations_of_base_name,
2931
assert_valid_ttsim_pytree,
3032
format_errors_and_warnings,
3133
format_list_linewise,
@@ -34,8 +36,8 @@
3436
get_re_pattern_for_time_units_and_groupings,
3537
merge_trees,
3638
partition_by_reference_dict,
37-
potential_target_names_from_base_name,
3839
)
40+
from ttsim.time_conversion import _TIME_UNITS
3941
from ttsim.typing import (
4042
check_series_has_expected_type,
4143
convert_series_to_internal_type,
@@ -90,7 +92,11 @@ def compute_taxes_and_transfers(
9092
_fail_if_environment_not_valid(environment)
9193

9294
# Transform functions tree to qualified names dict with qualified arguments
93-
top_level_namespace = _get_top_level_namespace(environment)
95+
top_level_namespace = _get_top_level_namespace(
96+
environment=environment,
97+
supported_time_conversions=list(_TIME_UNITS.keys()),
98+
supported_groupings=list(SUPPORTED_GROUPINGS.keys()),
99+
)
94100
functions = dt.functions_without_tree_logic(
95101
functions=environment.functions_tree, top_level_namespace=top_level_namespace
96102
)
@@ -183,32 +189,29 @@ def _get_top_level_namespace(
183189
top_level_namespace:
184190
The top level namespace.
185191
"""
186-
names_from_environment = set(environment.raw_objects_tree.keys()) | set(
192+
direct_top_level_names = set(environment.raw_objects_tree.keys()) | set(
187193
environment.aggregation_specs_tree.keys()
188194
)
189-
potential_function_names = set()
195+
all_top_level_names = set()
190196
re_pattern = get_re_pattern_for_time_units_and_groupings(
191197
supported_groupings=supported_groupings,
192198
supported_time_units=supported_time_conversions,
193199
)
194200

195-
for element in names_from_environment:
196-
if match := re_pattern.fullmatch(element):
197-
function_base_name = match.group("base_name")
198-
create_conversions_for_time_units = bool(match.group("time_unit"))
199-
else:
200-
function_base_name = element
201-
create_conversions_for_time_units = False
201+
for name in direct_top_level_names:
202+
match = re_pattern.fullmatch(name)
203+
function_base_name = match.group("base_name")
204+
create_conversions_for_time_units = bool(match.group("time_unit"))
202205

203-
potential_derived_functions = potential_target_names_from_base_name(
206+
all_top_level_names_for_name = all_variations_of_base_name(
204207
base_name=function_base_name,
205208
supported_time_conversions=supported_time_conversions,
206209
supported_groupings=supported_groupings,
207210
create_conversions_for_time_units=create_conversions_for_time_units,
208211
)
209-
potential_function_names.update(potential_derived_functions)
212+
all_top_level_names.update(all_top_level_names_for_name)
210213

211-
return potential_function_names
214+
return all_top_level_names
212215

213216

214217
def _convert_data_to_correct_types(

src/ttsim/shared.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def get_re_pattern_for_time_units_and_groupings(
4343
"""Get a regex pattern for time units and groupings.
4444
4545
The pattern matches strings in any of these formats:
46-
- <base_name> (can contain underscores)
46+
- <base_name> (may contain underscores)
4747
- <base_name>_<time_unit>
4848
- <base_name>_<aggregation>
4949
- <base_name>_<time_unit>_<aggregation>
@@ -70,25 +70,25 @@ def get_re_pattern_for_time_units_and_groupings(
7070
)
7171

7272

73-
def potential_target_names_from_base_name(
73+
def all_variations_of_base_name(
7474
base_name: str,
7575
supported_time_conversions: list[str],
7676
supported_groupings: list[str],
7777
create_conversions_for_time_units: bool,
7878
) -> set[str]:
79-
"""Get all derived function names given a base function name.
79+
"""Get possible derived function names given a base function name.
8080
8181
Examples
8282
--------
83-
>>> potential_target_names_from_base_name(
83+
>>> all_variations_of_base_name(
8484
base_name="income",
8585
supported_time_conversions=["y", "m"],
8686
supported_groupings=["hh"],
8787
create_conversions_for_time_units=True,
8888
)
8989
{'income_m', 'income_y', 'income_hh_y', 'income_hh_m'}
9090
91-
>>> potential_target_names_from_base_name(
91+
>>> all_variations_of_base_name(
9292
base_name="claims_benefits",
9393
supported_time_conversions=["y", "m"],
9494
supported_groupings=["hh"],

tests/ttsim/test_shared.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
import pytest
44

55
from ttsim.shared import (
6+
all_variations_of_base_name,
67
create_tree_from_path_and_value,
78
get_name_of_group_by_id,
89
get_re_pattern_for_time_units_and_groupings,
910
insert_path_and_value,
1011
merge_trees,
1112
partition_tree_by_reference_tree,
12-
potential_target_names_from_base_name,
1313
upsert_path_and_value,
1414
upsert_tree,
1515
)
@@ -326,15 +326,15 @@ def test_get_name_of_group_by_id_fails(
326326
),
327327
],
328328
)
329-
def test_potential_target_names_from_base_name(
329+
def test_all_variations_of_base_name(
330330
base_name,
331331
supported_time_conversions,
332332
supported_groupings,
333333
create_conversions_for_time_units,
334334
expected,
335335
):
336336
assert (
337-
potential_target_names_from_base_name(
337+
all_variations_of_base_name(
338338
base_name=base_name,
339339
supported_time_conversions=supported_time_conversions,
340340
supported_groupings=supported_groupings,

0 commit comments

Comments
 (0)