Skip to content

Commit e8c135b

Browse files
committed
Add location as name
1 parent 57a1cb3 commit e8c135b

3 files changed

Lines changed: 15 additions & 11 deletions

File tree

bcb/sgs/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ def __init__(self, code, name=None):
2525
self.name = str(name)
2626
self.value = int(code)
2727

28+
def __repr__(self):
29+
return f"{self.code} - {self.name}" if self.name else f"{self.code}"
30+
2831

2932
def _codes(codes):
3033
if isinstance(codes, int) or isinstance(codes, str):
@@ -36,8 +39,8 @@ def _codes(codes):
3639
_ist = isinstance(cd, tuple)
3740
yield SGSCode(cd[1], cd[0]) if _ist else SGSCode(cd)
3841
elif isinstance(codes, dict):
39-
for cd in codes:
40-
yield SGSCode(codes[cd], cd)
42+
for name, code in codes.items():
43+
yield SGSCode(code, name)
4144

4245

4346
def _get_url_and_payload(code, start_date, end_date, last):

bcb/sgs/regional_economy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def get_non_performing_loans_codes(states_or_region, mode="total"):
127127
if not is_state and not is_region:
128128
raise Exception(f"Not a valid state or region: {states_or_region}")
129129

130-
codes = []
130+
codes = {}
131131
non_performing_loans_by_location = NON_PERFORMING_LOANS_BY_STATE_TOTAL
132132
if is_state:
133133
if mode.upper() == "PF":
@@ -142,7 +142,7 @@ def get_non_performing_loans_codes(states_or_region, mode="total"):
142142
non_performing_loans_by_location = NON_PERFORMING_LOANS_BY_REGION_PJ
143143

144144
for location in states_or_region:
145-
codes.append(non_performing_loans_by_location[location])
145+
codes[location] = non_performing_loans_by_location[location]
146146
return codes
147147

148148

tests/sgs/test_regional_economy.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,23 @@
55

66
class TestGetNonPerformingLoansCodes:
77
@pytest.mark.parametrize("states,expected_codes", [
8-
(["ba", "pa"], ["15865", "15938"]),
9-
(["BA"], ["15865"]),
10-
("N", ["15952"]),
8+
(["ba", "pa"], {"BA": "15865", "PA": "15938"}),
9+
(["BA"], {"BA": "15865"}),
10+
("N", {"N": "15952"}),
1111
])
1212
def test_get_non_performing_loans_codes_by_state_total(self, states, expected_codes):
1313
assert get_non_performing_loans_codes(states) == expected_codes
1414

1515

1616
class TestGetNonPerformingLoans:
1717
@pytest.mark.parametrize("states,expected_columns", [
18-
(["BA"], ["15865"]),
19-
(["ba"], ["15865"]),
20-
("N", ["15888"]),
18+
(["BA"], ["BA"]),
19+
(["am", "pa"], ["AM", "PA"]),
20+
("N", ["N"]),
2121
])
2222
def test_get_series_by_states_pf(self, states, expected_columns):
2323
series = get_non_performing_loans(states, last=10, mode="pf")
24+
2425
assert isinstance(series, pd.DataFrame)
25-
assert series.columns == expected_columns
26+
assert (series.columns == expected_columns).all()
2627
assert len(series) == 10

0 commit comments

Comments
 (0)