Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_build_data_var_components_no_encode():
index = messages.FileStream(path=TEST_DATA).index(dataset.ALL_KEYS).subindex(paramId=130)
dims, data_var, coord_vars = dataset.build_variable_components(index=index)
assert dims == {'number': 10, 'dataDate': 2, 'dataTime': 2, 'level': 2, 'values': 7320}
assert data_var.data.shape == (10, 2, 2, 2, 7320)
# equivalent to not np.isnan without importing numpy
assert data_var.data[:, :, :, :, :].mean() > 0.0
def test_FileIndex_errors():
class MyMessage(messages.ComputedKeysMessage):
computed_keys = {'error_key': lambda m: 1 / 0}
stream = messages.FileStream(TEST_DATA, message_class=MyMessage)
res = messages.FileIndex.from_filestream(stream, ['paramId', 'error_key'])
assert res['paramId'] == [129, 130]
assert len(res) == 2
assert list(res) == ['paramId', 'error_key']
assert res['error_key'] == ['undef']
return dims, data
COMPUTED_KEYS = {
'time': (from_grib_date_time, to_grib_date_time),
'step': (from_grib_step, to_grib_step),
'valid_time': (
functools.partial(from_grib_date_time, date_key='validityDate', time_key='validityTime'),
functools.partial(to_grib_date_time, date_key='validityDate', time_key='validityTime'),
),
'verifying_time': (from_grib_month, None),
}
@attr.attrs()
class CfMessage(messages.ComputedKeysMessage):
computed_keys = attr.attrib(default=COMPUTED_KEYS)
def build_dataset_attributes(index, filter_by_keys, encoding):
attributes = enforce_unique_attributes(index, GLOBAL_ATTRIBUTES_KEYS, filter_by_keys)
attributes['Conventions'] = 'CF-1.7'
if 'GRIB_centreDescription' in attributes:
attributes['institution'] = attributes['GRIB_centreDescription']
attributes_namespace = {
'cfgrib_version': __version__,
'cfgrib_open_kwargs': json.dumps(encoding),
'eccodes_version': messages.eccodes_version,
'timestamp': datetime.datetime.now().isoformat().partition('.')[0],
}
history_in = (
'{timestamp} GRIB to CDM+CF via '
'cfgrib-{cfgrib_version}/ecCodes-{eccodes_version} with {cfgrib_open_kwargs}'
)
attributes['history'] = history_in.format(**attributes_namespace)
return attributes