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 510937756,MDExOlB1bGxSZXF1ZXN0MzMxMjI2Mjg0,3435,Deprecate allow_lazy,2448579,closed,0,,,6,2019-10-22T21:44:20Z,2019-11-13T15:48:50Z,2019-11-13T15:48:46Z,MEMBER,,0,pydata/xarray/pulls/3435," - [x] Closes #3161 - [x] Tests added - [x] Passes `black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3435/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 510386062,MDU6SXNzdWU1MTAzODYwNjI=,3427,another cftime failure,2448579,closed,0,,,2,2019-10-22T01:49:54Z,2019-10-22T18:31:35Z,2019-10-22T18:31:35Z,MEMBER,,,,"``` ________ TestNetCDF3ViaNetCDF4Data.test_roundtrip_cftime_datetime_data _________ dates = array([cftime.DatetimeProlepticGregorian(0001-01-01 00:00:00), cftime.DatetimeProlepticGregorian(0001-01-02 00:00:00)], dtype=object) units = 'days since 0001-01-01 00:00:00.000000' calendar = 'proleptic_gregorian' def encode_cf_datetime(dates, units=None, calendar=None): """"""Given an array of datetime objects, returns the tuple `(num, units, calendar)` suitable for a CF compliant time variable. Unlike `date2num`, this function can handle datetime64 arrays. See also -------- cftime.date2num """""" dates = np.asarray(dates) if units is None: units = infer_datetime_units(dates) else: units = _cleanup_netcdf_time_units(units) if calendar is None: calendar = infer_calendar_name(dates) delta, ref_date = _unpack_netcdf_time_units(units) try: if calendar not in _STANDARD_CALENDARS or dates.dtype.kind == ""O"": # parse with cftime instead > raise OutOfBoundsDatetime E pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime xarray/coding/times.py:400: OutOfBoundsDatetime During handling of the above exception, another exception occurred: self = @requires_cftime def test_roundtrip_cftime_datetime_data(self): from .test_coding_times import _all_cftime_date_types date_types = _all_cftime_date_types() for date_type in date_types.values(): times = [date_type(1, 1, 1), date_type(1, 1, 2)] expected = Dataset({""t"": (""t"", times), ""t0"": times[0]}) kwargs = {""encoding"": {""t0"": {""units"": ""days since 0001-01-01""}}} expected_decoded_t = np.array(times) expected_decoded_t0 = np.array([date_type(1, 1, 1)]) expected_calendar = times[0].calendar with warnings.catch_warnings(): if expected_calendar in {""proleptic_gregorian"", ""gregorian""}: warnings.filterwarnings(""ignore"", ""Unable to decode time axis"") > with self.roundtrip(expected, save_kwargs=kwargs) as actual: xarray/tests/test_backends.py:483: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/share/miniconda/envs/xarray-tests/lib/python3.6/contextlib.py:81: in __enter__ return next(self.gen) xarray/tests/test_backends.py:243: in roundtrip self.save(data, path, **save_kwargs) xarray/tests/test_backends.py:265: in save path, engine=self.engine, format=self.file_format, **kwargs xarray/core/dataset.py:1536: in to_netcdf invalid_netcdf=invalid_netcdf, xarray/backends/api.py:1071: in to_netcdf dataset, store, writer, encoding=encoding, unlimited_dims=unlimited_dims xarray/backends/api.py:1117: in dump_to_store store.store(variables, attrs, check_encoding, writer, unlimited_dims=unlimited_dims) xarray/backends/common.py:293: in store variables, attributes = self.encode(variables, attributes) xarray/backends/common.py:382: in encode variables, attributes = cf_encoder(variables, attributes) xarray/conventions.py:748: in cf_encoder new_vars = {k: encode_cf_variable(v, name=k) for k, v in variables.items()} xarray/conventions.py:748: in new_vars = {k: encode_cf_variable(v, name=k) for k, v in variables.items()} xarray/conventions.py:250: in encode_cf_variable var = coder.encode(var, name=name) xarray/coding/times.py:446: in encode data, encoding.pop(""units"", None), encoding.pop(""calendar"", None) xarray/coding/times.py:419: in encode_cf_datetime num = _encode_datetime_with_cftime(dates, units, calendar) xarray/coding/times.py:366: in _encode_datetime_with_cftime return np.vectorize(encode_datetime)(dates) /usr/share/miniconda/envs/xarray-tests/lib/python3.6/site-packages/numpy/lib/function_base.py:2755: in __call__ return self._vectorize_call(func=func, args=vargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.6/site-packages/numpy/lib/function_base.py:2825: in _vectorize_call ufunc, otypes = self._get_ufunc_and_otypes(func=func, args=args) /usr/share/miniconda/envs/xarray-tests/lib/python3.6/site-packages/numpy/lib/function_base.py:2785: in _get_ufunc_and_otypes outputs = func(*inputs) xarray/coding/times.py:364: in encode_datetime return np.nan if d is None else cftime.date2num(d, units, calendar) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > ??? E AttributeError: 'cftime._cftime.DatetimeProlepticGregorian' object has no attribute 'tzinfo' cftime/_cftime.pyx:186: AttributeError ```","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3427/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 510738166,MDExOlB1bGxSZXF1ZXN0MzMxMDYwMDA5,3431,Add cftime git tip to upstream-dev + temporarily pin cftime,2448579,closed,0,,,2,2019-10-22T15:31:59Z,2019-10-22T18:30:47Z,2019-10-22T18:30:44Z,MEMBER,,0,pydata/xarray/pulls/3431,temporarily pin cftime so that we can keep merging.,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3431/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull