issues
2 rows where "closed_at" is on date 2022-01-03, repo = 13221727 and user = 14371165 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: created_at (date), updated_at (date), closed_at (date)
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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
957439114 | MDExOlB1bGxSZXF1ZXN0NzAwODY1NDE3 | 5662 | Limit and format number of displayed dimensions in repr | Illviljan 14371165 | closed | 0 | 11 | 2021-08-01T09:12:24Z | 2022-08-12T09:07:49Z | 2022-01-03T17:38:49Z | MEMBER | 0 | pydata/xarray/pulls/5662 | When there's a lot of dims, create a new line and continue printing. If there's even more dims that even a few rows can't display them all then limit the number of dims displayed in similar fashion to coordinates. Questions:
* Where should this be used? Datasets, dataarrays, dimensions without coords?
* Should
Test case: ```python import numpy as np import xarray as xr A few dims with long names:a = np.arange(0, 24) data_vars = dict() for i in a: data_vars[f"long_variable_name_{i}"] = xr.DataArray( name=f"long_variable_name_{i}", data=np.arange(0, 20), dims=[f"long_coord_name_{i}x"], coords={f"long_coord_name{i}x": np.arange(0, 20) * 2}, ) ds0 = xr.Dataset(data_vars) ds0.attrs = {f"attr{k}": 2 for k in a} print(ds0) <xarray.Dataset> Dimensions: (long_coord_name_0_x: 20, long_coord_name_10_x: 20, long_coord_name_11_x: 20, long_coord_name_12_x: 20, long_coord_name_13_x: 20, long_coord_name_14_x: 20, long_coord_name_15_x: 20, long_coord_name_16_x: 20, long_coord_name_17_x: 20, long_coord_name_18_x: 20, long_coord_name_19_x: 20, long_coord_name_1_x: 20, long_coord_name_20_x: 20, long_coord_name_21_x: 20, long_coord_name_22_x: 20, long_coord_name_23_x: 20, long_coord_name_2_x: 20, long_coord_name_3_x: 20, long_coord_name_4_x: 20, long_coord_name_5_x: 20, long_coord_name_6_x: 20, long_coord_name_7_x: 20, long_coord_name_8_x: 20, long_coord_name_9_x: 20) Coordinates: (12/24) * long_coord_name_0_x (long_coord_name_0_x) int32 0 2 4 6 8 ... 32 34 36 38 * long_coord_name_1_x (long_coord_name_1_x) int32 0 2 4 6 8 ... 32 34 36 38 * long_coord_name_2_x (long_coord_name_2_x) int32 0 2 4 6 8 ... 32 34 36 38 * long_coord_name_3_x (long_coord_name_3_x) int32 0 2 4 6 8 ... 32 34 36 38 * long_coord_name_4_x (long_coord_name_4_x) int32 0 2 4 6 8 ... 32 34 36 38 * long_coord_name_5_x (long_coord_name_5_x) int32 0 2 4 6 8 ... 32 34 36 38 ... * long_coord_name_18_x (long_coord_name_18_x) int32 0 2 4 6 ... 32 34 36 38 * long_coord_name_19_x (long_coord_name_19_x) int32 0 2 4 6 ... 32 34 36 38 * long_coord_name_20_x (long_coord_name_20_x) int32 0 2 4 6 ... 32 34 36 38 * long_coord_name_21_x (long_coord_name_21_x) int32 0 2 4 6 ... 32 34 36 38 * long_coord_name_22_x (long_coord_name_22_x) int32 0 2 4 6 ... 32 34 36 38 * long_coord_name_23_x (long_coord_name_23_x) int32 0 2 4 6 ... 32 34 36 38 Data variables: (12/24) long_variable_name_0 (long_coord_name_0_x) int32 0 1 2 3 4 ... 16 17 18 19 long_variable_name_1 (long_coord_name_1_x) int32 0 1 2 3 4 ... 16 17 18 19 long_variable_name_2 (long_coord_name_2_x) int32 0 1 2 3 4 ... 16 17 18 19 long_variable_name_3 (long_coord_name_3_x) int32 0 1 2 3 4 ... 16 17 18 19 long_variable_name_4 (long_coord_name_4_x) int32 0 1 2 3 4 ... 16 17 18 19 long_variable_name_5 (long_coord_name_5_x) int32 0 1 2 3 4 ... 16 17 18 19 ... long_variable_name_18 (long_coord_name_18_x) int32 0 1 2 3 ... 16 17 18 19 long_variable_name_19 (long_coord_name_19_x) int32 0 1 2 3 ... 16 17 18 19 long_variable_name_20 (long_coord_name_20_x) int32 0 1 2 3 ... 16 17 18 19 long_variable_name_21 (long_coord_name_21_x) int32 0 1 2 3 ... 16 17 18 19 long_variable_name_22 (long_coord_name_22_x) int32 0 1 2 3 ... 16 17 18 19 long_variable_name_23 (long_coord_name_23_x) int32 0 1 2 3 ... 16 17 18 19 Attributes: (12/24) attr_0: 2 attr_1: 2 attr_2: 2 attr_3: 2 attr_4: 2 attr_5: 2 ... attr_18: 2 attr_19: 2 attr_20: 2 attr_21: 2 attr_22: 2 attr_23: 2 ``` ```python Many dims with long names:a = np.arange(0, 200) data_vars = dict() for i in a: data_vars[f"long_variable_name_{i}"] = xr.DataArray( name=f"long_variable_name_{i}", data=np.arange(0, 20), dims=[f"long_coord_name_{i}x"], coords={f"long_coord_name{i}x": np.arange(0, 20) * 2}, ) ds1 = xr.Dataset(data_vars) ds1.attrs = {f"attr{k}": 2 for k in a} print(ds1) <xarray.Dataset> Dimensions: (long_coord_name_0_x: 20, long_coord_name_100_x: 20, long_coord_name_101_x: 20, long_coord_name_102_x: 20, long_coord_name_103_x: 20, long_coord_name_104_x: 20, ... long_coord_name_94_x: 20, long_coord_name_95_x: 20, long_coord_name_96_x: 20, long_coord_name_97_x: 20, long_coord_name_98_x: 20, long_coord_name_99_x: 20, long_coord_name_9_x: 20) Coordinates: (12/200) * long_coord_name_0_x (long_coord_name_0_x) int32 0 2 4 6 ... 32 34 36 38 * long_coord_name_1_x (long_coord_name_1_x) int32 0 2 4 6 ... 32 34 36 38 * long_coord_name_2_x (long_coord_name_2_x) int32 0 2 4 6 ... 32 34 36 38 * long_coord_name_3_x (long_coord_name_3_x) int32 0 2 4 6 ... 32 34 36 38 * long_coord_name_4_x (long_coord_name_4_x) int32 0 2 4 6 ... 32 34 36 38 * long_coord_name_5_x (long_coord_name_5_x) int32 0 2 4 6 ... 32 34 36 38 ... * long_coord_name_194_x (long_coord_name_194_x) int32 0 2 4 6 ... 34 36 38 * long_coord_name_195_x (long_coord_name_195_x) int32 0 2 4 6 ... 34 36 38 * long_coord_name_196_x (long_coord_name_196_x) int32 0 2 4 6 ... 34 36 38 * long_coord_name_197_x (long_coord_name_197_x) int32 0 2 4 6 ... 34 36 38 * long_coord_name_198_x (long_coord_name_198_x) int32 0 2 4 6 ... 34 36 38 * long_coord_name_199_x (long_coord_name_199_x) int32 0 2 4 6 ... 34 36 38 Data variables: (12/200) long_variable_name_0 (long_coord_name_0_x) int32 0 1 2 3 ... 16 17 18 19 long_variable_name_1 (long_coord_name_1_x) int32 0 1 2 3 ... 16 17 18 19 long_variable_name_2 (long_coord_name_2_x) int32 0 1 2 3 ... 16 17 18 19 long_variable_name_3 (long_coord_name_3_x) int32 0 1 2 3 ... 16 17 18 19 long_variable_name_4 (long_coord_name_4_x) int32 0 1 2 3 ... 16 17 18 19 long_variable_name_5 (long_coord_name_5_x) int32 0 1 2 3 ... 16 17 18 19 ... long_variable_name_194 (long_coord_name_194_x) int32 0 1 2 3 ... 17 18 19 long_variable_name_195 (long_coord_name_195_x) int32 0 1 2 3 ... 17 18 19 long_variable_name_196 (long_coord_name_196_x) int32 0 1 2 3 ... 17 18 19 long_variable_name_197 (long_coord_name_197_x) int32 0 1 2 3 ... 17 18 19 long_variable_name_198 (long_coord_name_198_x) int32 0 1 2 3 ... 17 18 19 long_variable_name_199 (long_coord_name_199_x) int32 0 1 2 3 ... 17 18 19 Attributes: (12/200) attr_0: 2 attr_1: 2 attr_2: 2 attr_3: 2 attr_4: 2 attr_5: 2 ... attr_194: 2 attr_195: 2 attr_196: 2 attr_197: 2 attr_198: 2 attr_199: 2 ``` ```python Many dims with short names:data_vars = dict() for i in a: data_vars[f"n_{i}"] = xr.DataArray( name=f"n_{i}", data=np.arange(0, 20), dims=[f"{i}x"], coords={f"{i}_x": np.arange(0, 20) * 2}, ) ds2 = xr.Dataset(data_vars) ds2.attrs = {f"attr{k}": 2 for k in a} print(ds2) <xarray.Dataset> Dimensions: (0_x: 20, 100_x: 20, 101_x: 20, 102_x: 20, 103_x: 20, 104_x: 20, 105_x: 20, 106_x: 20, 107_x: 20, 108_x: 20, 109_x: 20, 10_x: 20, 110_x: 20, 111_x: 20, 112_x: 20, 113_x: 20, 114_x: 20, 115_x: 20, 116_x: 20, 117_x: 20, 118_x: 20, 119_x: 20, 11_x: 20, 120_x: 20, 121_x: 20, 122_x: 20, 123_x: 20, 124_x: 20, 125_x: 20, 126_x: 20, 127_x: 20, 128_x: 20, 129_x: 20, 12_x: 20, 130_x: 20, 131_x: 20, ... 71_x: 20, 72_x: 20, 73_x: 20, 74_x: 20, 75_x: 20, 76_x: 20, 77_x: 20, 78_x: 20, 79_x: 20, 7_x: 20, 80_x: 20, 81_x: 20, 82_x: 20, 83_x: 20, 84_x: 20, 85_x: 20, 86_x: 20, 87_x: 20, 88_x: 20, 89_x: 20, 8_x: 20, 90_x: 20, 91_x: 20, 92_x: 20, 93_x: 20, 94_x: 20, 95_x: 20, 96_x: 20, 97_x: 20, 98_x: 20, 99_x: 20, 9_x: 20) Coordinates: (12/200) * 0_x (0_x) int32 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 * 1_x (1_x) int32 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 * 2_x (2_x) int32 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 * 3_x (3_x) int32 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 * 4_x (4_x) int32 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 * 5_x (5_x) int32 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 ... * 194_x (194_x) int32 0 2 4 6 8 10 12 14 16 ... 22 24 26 28 30 32 34 36 38 * 195_x (195_x) int32 0 2 4 6 8 10 12 14 16 ... 22 24 26 28 30 32 34 36 38 * 196_x (196_x) int32 0 2 4 6 8 10 12 14 16 ... 22 24 26 28 30 32 34 36 38 * 197_x (197_x) int32 0 2 4 6 8 10 12 14 16 ... 22 24 26 28 30 32 34 36 38 * 198_x (198_x) int32 0 2 4 6 8 10 12 14 16 ... 22 24 26 28 30 32 34 36 38 * 199_x (199_x) int32 0 2 4 6 8 10 12 14 16 ... 22 24 26 28 30 32 34 36 38 Data variables: (12/200) n_0 (0_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n_1 (1_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n_2 (2_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n_3 (3_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n_4 (4_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n_5 (5_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... n_194 (194_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n_195 (195_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n_196 (196_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n_197 (197_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n_198 (198_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n_199 (199_x) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Attributes: (12/200) attr_0: 2 attr_1: 2 attr_2: 2 attr_3: 2 attr_4: 2 attr_5: 2 ... attr_194: 2 attr_195: 2 attr_196: 2 attr_197: 2 attr_198: 2 attr_199: 2 ``` ```python DataArray with many dimensions:dims = {f"dim_{v}": 2 for v in np.arange(12)} a = xr.DataArray( name="LongDataArrayName", data=np.random.randn(*dims.values()), dims=dims.keys(), coords={k: np.arange(v) * (i + 1) for i, (k, v) in enumerate(dims.items())}, ) print(a) <xarray.DataArray 'LongDataArrayName' (dim_0: 2, dim_1: 2, dim_2: 2, dim_3: 2, dim_4: 2, dim_5: 2, dim_6: 2, dim_7: 2, dim_8: 2, dim_9: 2, dim_10: 2, dim_11: 2)> array([[[[[[[[[[[[ 8.28296160e-01, 2.08993090e-01], [ 8.70468836e-01, 8.90423004e-01]],
... [[[ 1.24664897e+00, 1.72548620e+00], [-7.64230130e-02, -7.96243220e-01]],
Coordinates: * dim_0 (dim_0) int32 0 1 * dim_1 (dim_1) int32 0 2 * dim_2 (dim_2) int32 0 3 * dim_3 (dim_3) int32 0 4 * dim_4 (dim_4) int32 0 5 * dim_5 (dim_5) int32 0 6 * dim_6 (dim_6) int32 0 7 * dim_7 (dim_7) int32 0 8 * dim_8 (dim_8) int32 0 9 * dim_9 (dim_9) int32 0 10 * dim_10 (dim_10) int32 0 11 * dim_11 (dim_11) int32 0 12 ``` ```python DataArray with many dimensions but no coords:dims = {f"dim_{v}": 2 for v in np.arange(12)} a = xr.DataArray( name="LongDataArrayName", data=np.random.randn(*dims.values()), dims=dims.keys(), ) print(a) <xarray.DataArray 'LongDataArrayName' (dim_0: 2, dim_1: 2, dim_2: 2, dim_3: 2, dim_4: 2, dim_5: 2, dim_6: 2, dim_7: 2, dim_8: 2, dim_9: 2, dim_10: 2, dim_11: 2)> array([[[[[[[[[[[[ 2.53218063e-02, -2.01034380e+00], [ 3.07624042e-01, 1.82085569e-01]],
... [[[-1.11275429e+00, -9.33574221e-01], [ 8.62574702e-01, 1.14185983e+00]],
Dimensions without coordinates: dim_0, dim_1, dim_2, dim_3, dim_4, dim_5, dim_6, dim_7, dim_8, dim_9, dim_10, dim_11 ``` |
{ "url": "https://api.github.com/repos/pydata/xarray/issues/5662/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
xarray 13221727 | pull | |||||
931796211 | MDU6SXNzdWU5MzE3OTYyMTE= | 5546 | Limit number of displayed dimensions in repr | Illviljan 14371165 | closed | 0 | 1 | 2021-06-28T17:25:18Z | 2022-01-03T17:38:48Z | 2022-01-03T17:38:48Z | MEMBER | What happened: Dimension doesn't seem to be limited when there are too many of them. See example below. This slows down the repr significantly and is quite unreadable to me. What you expected to happen: To be limited so that it aligns with whatever the maximum line length is for variables. It's also fine if it continues on a couple of rows below in similar fashion to variables. Minimal Complete Verifiable Example:
This is probably a bit of an edge case. My real datasets usually have around 12 "dimensions" and coords, +2000 variables, 50 attrs.
Anything else we need to know?: Environment: Output of <tt>xr.show_versions()</tt>INSTALLED VERSIONS ------------------ commit: None python: 3.8.8 | packaged by conda-forge | (default, Feb 20 2021, 15:50:08) [MSC v.1916 64 bit (AMD64)] python-bits: 64 OS: Windows OS-release: 10 byteorder: little LC_ALL: None LANG: en libhdf5: 1.10.6 libnetcdf: None xarray: 0.18.2 pandas: 1.2.4 numpy: 1.20.3 scipy: 1.6.3 netCDF4: None pydap: None h5netcdf: None h5py: 3.2.1 Nio: None zarr: None cftime: None nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: 1.3.2 dask: 2021.05.0 distributed: 2021.05.0 matplotlib: 3.4.2 cartopy: None seaborn: 0.11.1 numbagg: None pint: None setuptools: 49.6.0.post20210108 pip: 21.1.2 conda: 4.10.1 pytest: 6.2.4 IPython: 7.24.1 sphinx: 4.0.2 |
{ "url": "https://api.github.com/repos/pydata/xarray/issues/5546/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | xarray 13221727 | issue |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issues] ( [id] INTEGER PRIMARY KEY, [node_id] TEXT, [number] INTEGER, [title] TEXT, [user] INTEGER REFERENCES [users]([id]), [state] TEXT, [locked] INTEGER, [assignee] INTEGER REFERENCES [users]([id]), [milestone] INTEGER REFERENCES [milestones]([id]), [comments] INTEGER, [created_at] TEXT, [updated_at] TEXT, [closed_at] TEXT, [author_association] TEXT, [active_lock_reason] TEXT, [draft] INTEGER, [pull_request] TEXT, [body] TEXT, [reactions] TEXT, [performed_via_github_app] TEXT, [state_reason] TEXT, [repo] INTEGER REFERENCES [repos]([id]), [type] TEXT ); CREATE INDEX [idx_issues_repo] ON [issues] ([repo]); CREATE INDEX [idx_issues_milestone] ON [issues] ([milestone]); CREATE INDEX [idx_issues_assignee] ON [issues] ([assignee]); CREATE INDEX [idx_issues_user] ON [issues] ([user]);