@@ -84,23 +84,23 @@ def list_features(self):
8484
8585 return station_codes
8686
87- def collect (self ):
87+ def collect (self , ** kwargs ):
8888 var_filter = None
8989 if hasattr (self , '_variables' ):
9090 var_filter = self ._variables
9191
9292 time_extents = (self .start_time if hasattr (self , 'start_time' ) else None , self .end_time if hasattr (self , 'end_time' ) else None )
9393
94- metadata , raw_data = self .raw ()
94+ metadata , raw_data = self .raw (** kwargs )
9595 return self .parser .parse (metadata , raw_data , var_filter , time_extents )
9696
97- def raw (self , format = None ):
97+ def raw (self , format = None , ** kwargs ):
9898 """
9999 Returns a tuple of (metadata, raw data)
100100 """
101101 station_codes = self ._apply_features_filter (self ._get_station_codes ())
102- metadata = self ._get_metadata (station_codes )
103- raw_data = self ._get_raw_data (station_codes )
102+ metadata = self ._get_metadata (station_codes , ** kwargs )
103+ raw_data = self ._get_raw_data (station_codes , ** kwargs )
104104
105105 return (metadata , raw_data )
106106
@@ -116,12 +116,18 @@ def _apply_features_filter(self, station_codes):
116116
117117 return station_codes
118118
119- def _get_metadata (self , station_codes ):
119+ def _get_metadata (self , station_codes , ** kwargs ):
120+ if 'verify' in kwargs :
121+ verify_cert = kwargs ['verify' ]
122+ else :
123+ verify_cert = True # the default for requests
124+
120125 resp = requests .post (self .metadata_url , data = {'state' : 'nil' ,
121126 'hsa' : 'nil' ,
122127 'of' : '1' ,
123128 'extraids' : " " .join (station_codes ),
124- 'data' : "Get Meta Data" })
129+ 'data' : "Get Meta Data" },
130+ verify = verify_cert )
125131 resp .raise_for_status ()
126132 return resp .text
127133
@@ -155,7 +161,7 @@ def _get_station_codes(self, force=False):
155161 self .station_codes .extend (self ._get_stations_for_state (state_url ))
156162
157163 if self .bbox :
158- # retreive metadata for all stations to properly filter them
164+ # retrieve metadata for all stations to properly filter them
159165 metadata = self ._get_metadata (self .station_codes )
160166 parsed_metadata = self .parser ._parse_metadata (metadata )
161167
@@ -178,7 +184,12 @@ def _get_stations_for_state(self, state_url):
178184 state_root = BeautifulSoup (requests .get (state_url ).text )
179185 return [x for x in [x .attrs ['href' ].split ("nesdis_id=" )[- 1 ] for x in state_root .find_all ('a' )] if len (x ) > 0 ]
180186
181- def _get_raw_data (self , station_codes ):
187+ def _get_raw_data (self , station_codes , ** kwargs ):
188+ if 'verify' in kwargs :
189+ verify_cert = kwargs ['verify' ]
190+ else :
191+ verify_cert = True # the default for requests
192+
182193 since = 7
183194 if hasattr (self , 'start_time' ) and self .start_time is not None :
184195 # calc delta between now and start_time
@@ -196,7 +207,8 @@ def _get_raw_data(self, station_codes):
196207 'hsa' : 'nil' ,
197208 'of' : '1' ,
198209 'extraids' : " " .join (station_codes ),
199- 'sinceday' : since })
210+ 'sinceday' : since },
211+ verify = verify_cert )
200212 resp .raise_for_status ()
201213
202214 return resp .text
0 commit comments