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 1563270549,PR_kwDOAMm_X85I2_Fl,7494,Update contains_cftime_datetimes to avoid loading entire variable array,5179430,closed,0,,,8,2023-01-30T21:54:35Z,2023-03-07T16:22:24Z,2023-03-07T16:10:30Z,CONTRIBUTOR,,0,pydata/xarray/pulls/7494,"- [x] Closes #7484 - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` This PR greatly improves the performance for opening datasets with large arrays of object type (typically string arrays) since `contains_cftime_datetimes` was triggering the entire array to be read from the file just to check the very first element in the entire array. @Illviljan continuing our discussion from the issue thread, I did try to pass in `var._data` to `_contains_cftime_datetimes`, but I had a lot of trouble finding a way to generalize how to index the first array element. The best I could do was `var._data.array.get_array()`, but I don't think `get_array` is implemented for every backend. So for now I am leaving my original proposed solution.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7494/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull