html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/pull/5640#issuecomment-916860922,https://api.github.com/repos/pydata/xarray/issues/5640,916860922,IC_kwDOAMm_X842pi_6,6628425,2021-09-10T12:16:45Z,2021-09-10T12:16:45Z,MEMBER,"Thanks for catching that additional spot. > Its only a performance issue to attempt to import cftime repeatedly. Having it fail once in the top level import is not a big problem. Yes, understood. I just prefer that we are consistent across the code base -- either we use this pattern only where absolutely necessary or we use it everywhere. In light of that do you mind introducing this pattern in `times.py` as well? There are two places where cftime is imported within functions there too: https://github.com/pydata/xarray/blob/7bfee3eaa8fd731494cf6b406d6abb4bec061001/xarray/coding/times.py#L167 https://github.com/pydata/xarray/blob/7bfee3eaa8fd731494cf6b406d6abb4bec061001/xarray/coding/times.py#L417 I think we don't have to worry about the tests, because they already follow this pattern to an extent; in building the `requires_cftime` decorator, a cftime import is only attempted once. After that, just fix the linting error and add [a what's new entry](https://github.com/pydata/xarray/blob/main/doc/whats-new.rst), and I think this should be ready to go from my perspective.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,954574705