home / github / issues

Menu
  • GraphQL API
  • Search all tables

issues: 558977158

This data as json

id node_id number title user state locked assignee milestone comments created_at updated_at closed_at author_association active_lock_reason draft pull_request body reactions performed_via_github_app state_reason repo type
558977158 MDU6SXNzdWU1NTg5NzcxNTg= 3743 A suggested solution to the `TypeError: Invalid value for attr:` error upon `.to_netcdf` 6872529 open 0     3 2020-02-03T10:10:51Z 2023-04-06T17:43:37Z   NONE      

Even though netcdf conventions don't allow some data types in the attributes, it might be usefull to simply serialize those as strings rather than throw an error. Maybe add a force_serialization keyword argument to the .to_netcdf method.

Example: Setup a DataArray with bad values in the attributes: ```python import numpy as np from xarray import DataArray, load_dataset from pandas import Timestamp

from numbers import Number

valid_types = (str, Number, np.ndarray, np.number, list, tuple)

da = DataArray( name='bad_values', attrs=dict( bool_value=True, none_value=None, datetime_value=Timestamp.now() ) )

ds = da.to_dataset() ds.bad_values.attrs ```

Output: python {'bool_value': True, 'none_value': None, 'datetime_value': Timestamp('2020-02-03 10:53:02.350105')}

The code in the except clause can be easily impolemented under _validate_attrs.

```python try: ds.to_netcdf('test.nc') # Fails with TypeError: Invalid value for attr: ... except TypeError as e: print(e.class.name, e) for variable in ds.variables.values(): for k, v in variable.attrs.items(): if not isinstance(v, valid_types) or isinstance(v, bool): variable.attrs[k] = str(v)

ds.to_netcdf('test.nc')  # Works as expected

ds_from_file = load_dataset('test.nc') ds_from_file.bad_values.attrs ```

Output: ```python TypeError Invalid value for attr: None must be a number, a string, an ndarray or a list/tuple of numbers/strings for serialization to netCDF files

{'bool_value': 'True', 'none_value': 'None', 'datetime_value': '2020-02-03 10:43:38.479866'} ```

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/3743/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    13221727 issue

Links from other tables

  • 0 rows from issues_id in issues_labels
  • 3 rows from issue in issue_comments
Powered by Datasette · Queries took 79.579ms · About: xarray-datasette