@@ -13,45 +13,44 @@ class YMDDateField(rows.fields.DateField):
13
13
class Covid19GOSpider (BaseCovid19Spider ):
14
14
name = "GO"
15
15
start_urls = [
16
- "http://datasets.saude.go.gov.br/coronavirus/casos_confirmados.csv" ,
17
- "http://datasets.saude.go.gov.br/coronavirus/obitos_confirmados.csv"
16
+ "http://datasets.saude.go.gov.br/coronavirus/casos_confirmados.csv"
17
+ # , "http://datasets.saude.go.gov.br/coronavirus/obitos_confirmados.csv"
18
18
]
19
19
20
- def __init__ (self , report_fobj , case_fobj , * args , ** kwargs ):
20
+ def __init__ (self , * args , ** kwargs ):
21
21
super ().__init__ (* args , ** kwargs )
22
22
self .cases = defaultdict (dict )
23
23
24
-
25
- # self.total_confirmed = 0
26
- # self.total_deaths = 0
27
- # self.imported_confirmed = 0
28
- # self.imported_deaths = 0
29
-
30
24
def parse (self , response ):
31
25
table = rows .import_from_csv (
32
26
io .BytesIO (response .body ),
33
27
encoding = response .encoding ,
34
28
force_types = {"data_notificacao" : YMDDateField },
35
29
)
36
30
31
+ table = [row for row in table ]
32
+
37
33
last_date = max (row .data_notificacao for row in table )
38
34
self .add_report (date = last_date , url = response .url )
39
35
40
- row_key = lambda row : row ["codigo_ibge" ]
36
+ row_key = lambda row : row .municipio
37
+ table .sort (key = row_key )
41
38
42
- for city_id , city_data in groupby (table , key = row_key ):
39
+ for city , city_data in groupby (table , key = row_key ):
43
40
if "casos_confirmados.csv" in response .url :
44
- self .cases [city_id ]["confirmed" ] = len (list (city_data ))
41
+ self .cases [city ]["confirmed" ] = len (list (city_data ))
45
42
elif "obitos_confirmados.csv" in response .url :
46
- self .cases [city_id ]["deaths" ] = len (list (city_data ))
43
+ self .cases [city ]["deaths" ] = len (list (city_data ))
47
44
48
- def spider_closed (self ):
49
- for city_id , city_data in self .cases .items ():
45
+ total_confirmed = total_deaths = 0
46
+ imported_confirmed = imported_deaths = 0
47
+
48
+ for city , city_data in self .cases .items ():
50
49
confirmed = city_data ["confirmed" ]
51
50
deaths = city_data .get ("deaths" , 0 )
52
51
53
52
try :
54
- city = self .get_city_name_from_id ( city_id )
53
+ self .get_city_id_from_name ( city )
55
54
except KeyError :
56
55
imported_confirmed += confirmed
57
56
imported_deaths += deaths
@@ -70,6 +69,4 @@ def spider_closed(self):
70
69
deaths = imported_deaths ,
71
70
)
72
71
73
- self .add_state_case (confirmed = total_confirmed , deaths = total_deaths )
74
-
75
- super ().spider_closed ()
72
+ self .add_state_case (confirmed = total_confirmed , deaths = total_deaths )
0 commit comments