Skip to content

Commit 6903621

Browse files
Merge pull request #10 from apsvieira/main
Adiciona parsing de colunas de data da API de expectativas
2 parents a1b6218 + b5bb5df commit 6903621

7 files changed

Lines changed: 64 additions & 15 deletions

File tree

bcb/__init__.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
)
1010
import pandas as pd
1111

12-
1312
OLINDA_BASE_URL = "https://olinda.bcb.gov.br/olinda/servico"
1413

1514

@@ -30,9 +29,19 @@ def __call__(self, *args):
3029

3130

3231
class EndpointQuery(ODataQuery):
32+
_DATE_COLUMN_NAMES = {
33+
"Data",
34+
"DataReferencia",
35+
}
36+
3337
def collect(self):
34-
data = super().collect()
35-
return pd.DataFrame(data["value"])
38+
raw_data = super().collect()
39+
data = pd.DataFrame(raw_data["value"])
40+
for col in self._DATE_COLUMN_NAMES:
41+
if col not in data.columns:
42+
continue
43+
data[col] = pd.to_datetime(data[col])
44+
return data
3645

3746

3847
class Endpoint(metaclass=EndpointMeta):

poetry.lock

Lines changed: 27 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ requests = "^2.31.0"
1515

1616
[tool.poetry.group.test.dependencies]
1717
pytest = "^7.1.3"
18+
flaky = "^3.7.0"
1819

1920
[tool.poetry.group.docs.dependencies]
2021
Sphinx = "^5.1.1"
@@ -23,7 +24,6 @@ matplotlib = "^3.5.3"
2324
ipython = "^8.14.0"
2425
furo = "^2022.6.21"
2526

26-
2727
[tool.poetry.group.dev.dependencies]
2828
pycodestyle = "^2.9.1"
2929
ipykernel = "^6.15.2"

tests/test_currency.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
import sys
2-
3-
sys.path.append(".")
41
from datetime import datetime, date
52
import pandas as pd
3+
from pytest import mark
64
from bcb import currency
75

86

97
def test_currency_id():
108
assert currency._get_currency_id("USD") == 61
119

1210

11+
@mark.flaky(max_runs=20, min_passes=1)
1312
def test_currency_get_symbol():
1413
start_date = datetime.strptime("2020-12-01", "%Y-%m-%d")
1514
end_date = datetime.strptime("2020-12-05", "%Y-%m-%d")

tests/test_expectativas.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import pandas as pd
2+
from datetime import datetime
3+
from pytest import fixture
4+
5+
from bcb import Expectativas
6+
7+
8+
@fixture
9+
def endpoints():
10+
ep = Expectativas()
11+
return [ep.get_endpoint(e.data["name"]) for e in ep.service.endpoints]
12+
13+
14+
def test_expectativas_date_format(endpoints):
15+
for endpoint in endpoints:
16+
query = endpoint.query().limit(1)
17+
data = query.collect()
18+
assert isinstance(data, pd.DataFrame)
19+
assert data.shape[0] == 1
20+
assert isinstance(data["Data"].iloc[0], datetime)
21+
if "DataReferencia" in data.columns:
22+
assert isinstance(data["DataReferencia"].iloc[0], datetime)

tests/test_series.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
import sys
2-
3-
sys.path.append(".")
41
from datetime import datetime
52
import pandas as pd
63
from bcb import sgs

tests/test_utils.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
import sys
2-
3-
sys.path.append(".")
4-
51
from datetime import datetime, date
62

73
from bcb import utils

0 commit comments

Comments
 (0)