1
1
import gzip
2
2
from io import StringIO
3
3
from urllib .request import urlopen
4
+ import numpy as np
4
5
5
6
from larray import Session , read_eurostat
6
7
7
8
8
9
def _remove_chars (s , chars ):
9
10
return s .translate ({ord (c ): None for c in chars })
10
11
12
+
11
13
def transform_time_labels (label ):
12
14
# Account for ambiguous label type (in multifreq larrays, year is str; in only-year larrays, year is given as int)
13
15
# Need string format to search for patterns (e.g. Q1,M12), but return int format when only years are given.
@@ -24,8 +26,10 @@ def transform_time_labels(label):
24
26
else :
25
27
return str_label
26
28
29
+
27
30
EUROSTAT_BASEURL = "https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/"
28
31
32
+
29
33
def _get_one (indicator , * , drop_markers = True ):
30
34
"""Get one Eurostat indicator and return it as an array."""
31
35
url = f"{ EUROSTAT_BASEURL } { indicator } ?format=TSV&compressed=true"
@@ -41,7 +45,8 @@ def _get_one(indicator, *, drop_markers=True):
41
45
42
46
# Rename time axis. Rename time labels and reverse them (compatibility old API)
43
47
la_data = la_data .rename (TIME_PERIOD = 'time' )
44
- la_data = la_data .set_labels ('time' , transform_time_labels )
48
+ if np .issubdtype (la_data .time .dtype , np .character ):
49
+ la_data = la_data .set_labels ('time' , transform_time_labels )
45
50
la_data = la_data .reverse ('time' )
46
51
47
52
# If only one frequency: subset and return without redundant freq Axis (compatibility old API)
0 commit comments