question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Raise nicer error if passing a list of dimension names to transpose

See original GitHub issue

What happened?

Hello,

in xarray 0.20.1, I am getting the following error

ds = xr.Dataset({"foo": (("x", "y", "z"), [[[42]]]), "bar": (("y", "z"), [[24]])})

ds.transpose("y", "z", "x")

868 """Depending on the setting of missing_dims, drop any dimensions from supplied_dims that
    869 are not present in dims.
    870 
   (...)
    875 missing_dims : {"raise", "warn", "ignore"}
    876 """
    878 if missing_dims == "raise":
--> 879     supplied_dims_set = {val for val in supplied_dims if val is not ...}
    880     invalid = supplied_dims_set - set(dims)
    881     if invalid:

TypeError: unhashable type: 'list'

What did you expect to happen?

The expected result is

ds.transpose("y", "z", "x")

<xarray.Dataset>
Dimensions:  (x: 1, y: 1, z: 1)
Dimensions without coordinates: x, y, z
Data variables:
    foo      (y, z, x) int64 42
    bar      (y, z) int64 24

Minimal Complete Verifiable Example

No response

Relevant log output

No response

Anything else we need to know?

No response

Environment

INSTALLED VERSIONS

commit: None python: 3.9.12 (main, Apr 5 2022, 06:56:58) [GCC 7.5.0] python-bits: 64 OS: Linux OS-release: 3.10.0-1160.42.2.el7.x86_64 machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US LOCALE: (‘en_US’, ‘ISO8859-1’) libhdf5: 1.12.1 libnetcdf: 4.8.1

xarray: 0.20.1 pandas: 1.4.1 numpy: 1.21.5 scipy: 1.8.0 netCDF4: 1.5.7 pydap: None h5netcdf: 999 h5py: 3.6.0 Nio: None zarr: None cftime: 1.5.1.1 nc_time_axis: 1.4.0 PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: 1.3.4 dask: 2022.02.1 distributed: 2022.2.1 matplotlib: 3.5.1 cartopy: 0.18.0 seaborn: 0.11.2 numbagg: None fsspec: 2022.02.0 cupy: None pint: 0.18 sparse: 0.13.0 setuptools: 61.2.0 pip: 21.2.4 conda: None pytest: None IPython: 8.2.0 sphinx: None

Issue Analytics

  • State:closed
  • Created a year ago
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
dcheriancommented, Apr 20, 2022

I think we should raise a nicer error message. Transpose is an outlier in our API. In nearly every other function, you are expected to pass a list of dimension names.

1reaction
fabienpaulotcommented, Apr 20, 2022

Oh… I am so sorry about this. This works as expected now. It’s weird that using list seemed to have worked at some point. Thanks a lot for your help

Read more comments on GitHub >

github_iconTop Results From Across the Web

Transpose of a matrix in python - Stack Overflow
Use a 2D (two-dimensional) list to store the matrix. You should handle the exceptions such as checking the invalid rows with an inconsistent ......
Read more >
How to correct a #VALUE! error in the TRANSPOSE function
This topic provides information on resolving the #VALUE! error in TRANSPOSE. Problem: The formula has not been entered as an array formula.
Read more >
Essential basic functionality — pandas 1.5.2 documentation
Passing a dictionary of column names to a scalar or a list of scalars, to DataFrame.agg allows you to customize which functions are...
Read more >
https://docs.xarray.dev/en/stable/_sources/whats-n...
Include the variable name in the error message when CF decoding fails to ... Raise a ``UserWarning`` when renaming a coordinate or a...
Read more >
NumPy: the absolute basics for beginners
Note that it is not part of the code and will cause an error if typed or pasted into ... All you need...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found