Skip to content

Commit 72a95b0

Browse files
committed
Remove redundant .keys() calls for dicts
1 parent e762e8a commit 72a95b0

File tree

11 files changed

+30
-35
lines changed

11 files changed

+30
-35
lines changed

pvlib/iam.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,7 @@ def marion_diffuse(model, surface_tilt, **kwargs):
633633
try:
634634
iam_model = models[model]
635635
except KeyError:
636-
raise ValueError('model must be one of: ' + str(list(models.keys())))
636+
raise ValueError('model must be one of: ' + str(list(models)))
637637

638638
iam_function = functools.partial(iam_model, **kwargs)
639639
iam = {}

pvlib/iotools/acis.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def _get_acis(start, end, params, map_variables, url, **kwargs):
6969
if map_variables:
7070
df = df.rename(columns=VARIABLE_MAP)
7171

72-
for key in list(metadata.keys()):
72+
for key in list(metadata):
7373
if key in VARIABLE_MAP:
7474
metadata[VARIABLE_MAP[key]] = metadata.pop(key)
7575

pvlib/iotools/bsrn.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ def parse_bsrn(fbuf, logical_records=('0100',)):
307307
dfs = [] # Initialize empty list for dataframe
308308

309309
# Parse LR0100 - basic measurements including GHI, DNI, DHI and temperature
310-
if ('0100' in lr_startrow.keys()) & ('0100' in logical_records):
310+
if ('0100' in lr_startrow) & ('0100' in logical_records):
311311
fbuf.seek(0) # reset buffer to start of file
312312
LR_0100 = pd.read_fwf(fbuf, skiprows=lr_startrow['0100'] + 1,
313313
nrows=lr_nrows['0100'], header=None,
@@ -327,7 +327,7 @@ def parse_bsrn(fbuf, logical_records=('0100',)):
327327
dfs.append(LR_0100)
328328

329329
# Parse LR0300 - other time series data, including upward and net radiation
330-
if ('0300' in lr_startrow.keys()) & ('0300' in logical_records):
330+
if ('0300' in lr_startrow) & ('0300' in logical_records):
331331
fbuf.seek(0) # reset buffer to start of file
332332
LR_0300 = pd.read_fwf(fbuf, skiprows=lr_startrow['0300']+1,
333333
nrows=lr_nrows['0300'], header=None,
@@ -340,7 +340,7 @@ def parse_bsrn(fbuf, logical_records=('0100',)):
340340
dfs.append(LR_0300)
341341

342342
# Parse LR0500 - UV measurements
343-
if ('0500' in lr_startrow.keys()) & ('0500' in logical_records):
343+
if ('0500' in lr_startrow) & ('0500' in logical_records):
344344
fbuf.seek(0) # reset buffer to start of file
345345
LR_0500 = pd.read_fwf(fbuf, skiprows=lr_startrow['0500']+1,
346346
nrows=lr_nrows['0500'], na_values=[-99.9],

pvlib/iotools/sodapro.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def get_cams(latitude, longitude, start, end, email, identifier='mcclear',
162162
time_step_str = TIME_STEPS_MAP[time_step]
163163
except KeyError:
164164
raise ValueError(f'Time step not recognized. Must be one of '
165-
f'{list(TIME_STEPS_MAP.keys())}')
165+
f'{list(TIME_STEPS_MAP)}')
166166

167167
if (verbose) and ((time_step != '1min') or (time_ref != 'UT')):
168168
verbose = False
@@ -276,7 +276,7 @@ def parse_cams(fbuf, integrated=False, label=None, map_variables=True):
276276
metadata[line.split(': ')[0].lstrip('# ')] = line.split(': ')[1]
277277

278278
# Convert latitude, longitude, and altitude values from strings to floats
279-
for k_old in list(metadata.keys()):
279+
for k_old in list(metadata):
280280
k_new = k_old.lstrip().split(' ')[0].lower()
281281
if k_new in ['latitude', 'longitude', 'altitude']:
282282
metadata[k_new] = float(metadata.pop(k_old))

pvlib/modelchain.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,7 @@ def dc_model(self, model):
720720
# Set model and validate parameters
721721
if isinstance(model, str):
722722
model = model.lower()
723-
if model in _DC_MODEL_PARAMS.keys():
723+
if model in _DC_MODEL_PARAMS:
724724
# validate module parameters
725725
module_parameters = tuple(
726726
array.module_parameters for array in self.system.arrays)
@@ -861,7 +861,7 @@ def ac_model(self, model):
861861

862862
def infer_ac_model(self):
863863
"""Infer AC power model from system attributes."""
864-
inverter_params = set(self.system.inverter_parameters.keys())
864+
inverter_params = set(self.system.inverter_parameters)
865865
if _snl_params(inverter_params):
866866
return self.sandia_inverter
867867
if _adr_params(inverter_params):
@@ -2034,11 +2034,9 @@ def _all_same_index(data):
20342034
def _common_keys(dicts):
20352035
"""Return the intersection of the set of keys for each dictionary
20362036
in `dicts`"""
2037-
def _keys(x):
2038-
return set(x.keys())
20392037
if isinstance(dicts, tuple):
2040-
return set.intersection(*map(_keys, dicts))
2041-
return _keys(dicts)
2038+
return set.intersection(*map(set, dicts))
2039+
return set(dicts)
20422040

20432041

20442042
def _tuple_from_dfs(dfs, name):

pvlib/pvsystem.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -699,8 +699,7 @@ def first_solar_spectral_loss(self, pw, airmass_absolute):
699699
pw = self._validate_per_array(pw, system_wide=True)
700700

701701
def _spectral_correction(array, pw):
702-
if 'first_solar_spectral_coefficients' in \
703-
array.module_parameters.keys():
702+
if 'first_solar_spectral_coefficients' in array.module_parameters:
704703
coefficients = \
705704
array.module_parameters[
706705
'first_solar_spectral_coefficients'
@@ -1037,10 +1036,10 @@ def _infer_cell_type(self):
10371036
'GaAs': None,
10381037
'a-Si / mono-Si': 'monosi'}
10391038

1040-
if 'Technology' in self.module_parameters.keys():
1039+
if 'Technology' in self.module_parameters:
10411040
# CEC module parameter set
10421041
cell_type = _cell_type_dict[self.module_parameters['Technology']]
1043-
elif 'Material' in self.module_parameters.keys():
1042+
elif 'Material' in self.module_parameters:
10441043
# Sandia module parameter set
10451044
cell_type = _cell_type_dict[self.module_parameters['Material']]
10461045
else:

pvlib/tests/iotools/test_psm3.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,9 @@ def test_get_psm3_attribute_mapping(nrel_api_key):
193193
expected_columns = [
194194
'Year', 'Month', 'Day', 'Hour', 'Minute', 'ghi', 'wind_speed']
195195
pd.testing.assert_index_equal(pd.Index(expected_columns), data.columns)
196-
assert 'latitude' in meta.keys()
197-
assert 'longitude' in meta.keys()
198-
assert 'altitude' in meta.keys()
196+
assert 'latitude' in meta
197+
assert 'longitude' in meta
198+
assert 'altitude' in meta
199199

200200

201201
@pytest.mark.remote_data

pvlib/tests/iotools/test_pvgis.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ def _compare_pvgis_tmy_json(expected, month_year_expected, inputs_expected,
378378
meta_expected, pvgis_data):
379379
data, months_selected, inputs, meta = pvgis_data
380380
# check each column of output separately
381-
for outvar in meta_expected['outputs']['tmy_hourly']['variables'].keys():
381+
for outvar in meta_expected['outputs']['tmy_hourly']['variables']:
382382
assert np.allclose(data[outvar], expected[outvar])
383383
assert np.allclose(
384384
[_['month'] for _ in months_selected], np.arange(1, 13, 1))
@@ -430,7 +430,7 @@ def test_get_pvgis_tmy_basic(expected, meta_expected):
430430
def _compare_pvgis_tmy_basic(expected, meta_expected, pvgis_data):
431431
data, _, _, _ = pvgis_data
432432
# check each column of output separately
433-
for outvar in meta_expected['outputs']['tmy_hourly']['variables'].keys():
433+
for outvar in meta_expected['outputs']['tmy_hourly']['variables']:
434434
assert np.allclose(data[outvar], expected[outvar])
435435

436436

@@ -447,7 +447,7 @@ def _compare_pvgis_tmy_csv(expected, month_year_expected, inputs_expected,
447447
meta_expected, csv_meta, pvgis_data):
448448
data, months_selected, inputs, meta = pvgis_data
449449
# check each column of output separately
450-
for outvar in meta_expected['outputs']['tmy_hourly']['variables'].keys():
450+
for outvar in meta_expected['outputs']['tmy_hourly']['variables']:
451451
assert np.allclose(data[outvar], expected[outvar])
452452
assert np.allclose(
453453
[_['month'] for _ in months_selected], np.arange(1, 13, 1))

pvlib/tests/ivtools/test_sdm.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,15 +112,15 @@ def test_fit_desoto_sandia(cec_params_cansol_cs5p_220p):
112112
sim_ivcurves.update(v=v.T, i=i.T, ee=ee, tc=tc)
113113

114114
result = sdm.fit_desoto_sandia(sim_ivcurves, specs)
115-
modeled = pd.Series(index=params.keys(), data=np.nan)
115+
modeled = pd.Series(index=params, data=np.nan)
116116
modeled['a_ref'] = result['a_ref']
117117
modeled['I_L_ref'] = result['I_L_ref']
118118
modeled['I_o_ref'] = result['I_o_ref']
119119
modeled['R_s'] = result['R_s']
120120
modeled['R_sh_ref'] = result['R_sh_ref']
121121
expected = pd.Series(params)
122-
assert np.allclose(modeled[params.keys()].values,
123-
expected[params.keys()].values, rtol=5e-2)
122+
assert np.allclose(modeled[list(params)].values,
123+
expected[list(params)].values, rtol=5e-2)
124124

125125

126126
def _read_iv_curves_for_test(datafile, npts):
@@ -261,7 +261,7 @@ def test_fit_pvsyst_sandia(npts=3000):
261261
assert np.allclose(
262262
ivcurves['v_oc'], iv_res['v_oc'], equal_nan=True, rtol=0.019)
263263
# cells_in_series, alpha_sc, beta_voc, descr
264-
assert all((iv_specs[k] == pvsyst_specs[k]) for k in iv_specs.keys())
264+
assert all(v == pvsyst_specs[k] for k, v in iv_specs.items())
265265
# I_L_ref, I_o_ref, EgRef, R_sh_ref, R_sh_0, R_sh_exp, R_s, gamma_ref,
266266
# mu_gamma
267267
assert np.isclose(modeled['I_L_ref'], pvsyst['I_L_ref'], rtol=6.5e-5)

pvlib/tests/test_irradiance.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,8 @@ def test_get_total_irradiance_scalars(model):
467467
model=model,
468468
surface_type='urban')
469469

470-
assert list(total.keys()) == ['poa_global', 'poa_direct',
471-
'poa_diffuse', 'poa_sky_diffuse',
472-
'poa_ground_diffuse']
470+
assert list(total) == ['poa_global', 'poa_direct', 'poa_diffuse',
471+
'poa_sky_diffuse', 'poa_ground_diffuse']
473472
# test that none of the values are nan
474473
assert np.isnan(np.array(list(total.values()))).sum() == 0
475474

@@ -493,9 +492,8 @@ def test_get_total_irradiance_missing_airmass():
493492
dhi=100,
494493
dni_extra=1400,
495494
model='perez')
496-
assert list(total.keys()) == ['poa_global', 'poa_direct',
497-
'poa_diffuse', 'poa_sky_diffuse',
498-
'poa_ground_diffuse']
495+
assert list(total) == ['poa_global', 'poa_direct', 'poa_diffuse',
496+
'poa_sky_diffuse', 'poa_ground_diffuse']
499497

500498

501499
def test_poa_components(irrad_data, ephem_data, dni_et, relative_airmass):

pvlib/tests/test_pvsystem.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def test_retrieve_sam_cecmod():
144144
]
145145
module = 'Itek_Energy_LLC_iT_300_HE'
146146
assert module in data
147-
assert set(data[module].keys()) == set(keys)
147+
assert set(data[module]) == set(keys)
148148

149149

150150
def test_retrieve_sam_cecinverter():
@@ -174,7 +174,7 @@ def test_retrieve_sam_cecinverter():
174174
]
175175
inverter = 'Yaskawa_Solectria_Solar__PVI_5300_208__208V_'
176176
assert inverter in data
177-
assert set(data[inverter].keys()) == set(keys)
177+
assert set(data[inverter]) == set(keys)
178178

179179

180180
def test_sapm(sapm_module_params):

0 commit comments

Comments
 (0)