Skip to content

CI: Test failing on master #33077

Closed
@TomAugspurger

Description

@TomAugspurger

An s3 / pyarrow test is failing on master. Does anyone have time to debug it?
https://dev.azure.com/pandas-dev/pandas/_build/results?buildId=31733&view=logs&j=a3a13ea8-7cf0-5bdb-71bb-6ac8830ae35c&t=add65f64-6c25-5783-8fd6-d9aa1b63d9d4&l=115.

There was an s3fs release earlier today, if that's related.

2020-03-27T18:16:37.6354466Z =================================== FAILURES ===================================
2020-03-27T18:16:37.6354971Z _____________________ TestParquetPyArrow.test_s3_roundtrip _____________________
2020-03-27T18:16:37.6356687Z [gw1] linux -- Python 3.7.6 /home/vsts/miniconda3/envs/pandas-dev/bin/python
2020-03-27T18:16:37.6357366Z 
2020-03-27T18:16:37.6358186Z value = '五, 27 3月 2020 18:11:53 GMT', tzinfo = <class 'dateutil.tz.tz.tzlocal'>
2020-03-27T18:16:37.6358700Z 
2020-03-27T18:16:37.6359050Z     def _parse_timestamp_with_tzinfo(value, tzinfo):
2020-03-27T18:16:37.6359491Z         """Parse timestamp with pluggable tzinfo options."""
2020-03-27T18:16:37.6359936Z         if isinstance(value, (int, float)):
2020-03-27T18:16:37.6360574Z             # Possibly an epoch time.
2020-03-27T18:16:37.6361048Z             return datetime.datetime.fromtimestamp(value, tzinfo())
2020-03-27T18:16:37.6361681Z         else:
2020-03-27T18:16:37.6362073Z             try:
2020-03-27T18:16:37.6362431Z                 return datetime.datetime.fromtimestamp(float(value), tzinfo())
2020-03-27T18:16:37.6362828Z             except (TypeError, ValueError):
2020-03-27T18:16:37.6363153Z                 pass
2020-03-27T18:16:37.6363414Z         try:
2020-03-27T18:16:37.6363776Z             # In certain cases, a timestamp marked with GMT can be parsed into a
2020-03-27T18:16:37.6364222Z             # different time zone, so here we provide a context which will
2020-03-27T18:16:37.6364618Z             # enforce that GMT == UTC.
2020-03-27T18:16:37.6365341Z >           return dateutil.parser.parse(value, tzinfos={'GMT': tzutc()})
2020-03-27T18:16:37.6365750Z 
2020-03-27T18:16:37.6366507Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/utils.py:607: 
2020-03-27T18:16:37.6367110Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
2020-03-27T18:16:37.6367487Z 
2020-03-27T18:16:37.6368063Z timestr = '五, 27 3月 2020 18:11:53 GMT', parserinfo = None
2020-03-27T18:16:37.6368765Z kwargs = {'tzinfos': {'GMT': tzutc()}}
2020-03-27T18:16:37.6369118Z 
2020-03-27T18:16:37.6369430Z     def parse(timestr, parserinfo=None, **kwargs):
2020-03-27T18:16:37.6369874Z         """
2020-03-27T18:16:37.6370113Z     
2020-03-27T18:16:37.6370427Z         Parse a string in one of the supported formats, using the
2020-03-27T18:16:37.6370810Z         ``parserinfo`` parameters.
2020-03-27T18:16:37.6371081Z     
2020-03-27T18:16:37.6371354Z         :param timestr:
2020-03-27T18:16:37.6371687Z             A string containing a date/time stamp.
2020-03-27T18:16:37.6371991Z     
2020-03-27T18:16:37.6372246Z         :param parserinfo:
2020-03-27T18:16:37.6372622Z             A :class:`parserinfo` object containing parameters for the parser.
2020-03-27T18:16:37.6373134Z             If ``None``, the default arguments to the :class:`parserinfo`
2020-03-27T18:16:37.6373533Z             constructor are used.
2020-03-27T18:16:37.6373811Z     
2020-03-27T18:16:37.6374133Z         The ``**kwargs`` parameter takes the following keyword arguments:
2020-03-27T18:16:37.6374471Z     
2020-03-27T18:16:37.6374723Z         :param default:
2020-03-27T18:16:37.6375085Z             The default datetime object, if this is a datetime object and not
2020-03-27T18:16:37.6375578Z             ``None``, elements specified in ``timestr`` replace elements in the
2020-03-27T18:16:37.6375955Z             default object.
2020-03-27T18:16:37.6376228Z     
2020-03-27T18:16:37.6376479Z         :param ignoretz:
2020-03-27T18:16:37.6376863Z             If set ``True``, time zones in parsed strings are ignored and a naive
2020-03-27T18:16:37.6377278Z             :class:`datetime` object is returned.
2020-03-27T18:16:37.6377589Z     
2020-03-27T18:16:37.6378571Z         :param tzinfos:
2020-03-27T18:16:37.6379161Z             Additional time zone names / aliases which may be present in the
2020-03-27T18:16:37.6379643Z             string. This argument maps time zone names (and optionally offsets
2020-03-27T18:16:37.6380091Z             from those time zones) to time zones. This parameter can be a
2020-03-27T18:16:37.6380546Z             dictionary with timezone aliases mapping time zone names to time
2020-03-27T18:16:37.6380981Z             zones or a function taking two parameters (``tzname`` and
2020-03-27T18:16:37.6381394Z             ``tzoffset``) and returning a time zone.
2020-03-27T18:16:37.6381699Z     
2020-03-27T18:16:37.6382025Z             The timezones to which the names are mapped can be an integer
2020-03-27T18:16:37.6382494Z             offset from UTC in seconds or a :class:`tzinfo` object.
2020-03-27T18:16:37.6382838Z     
2020-03-27T18:16:37.6383237Z             .. doctest::
2020-03-27T18:16:37.6383606Z                :options: +NORMALIZE_WHITESPACE
2020-03-27T18:16:37.6384047Z     
2020-03-27T18:16:37.6384378Z                 >>> from dateutil.parser import parse
2020-03-27T18:16:37.6384771Z                 >>> from dateutil.tz import gettz
2020-03-27T18:16:37.6385594Z                 >>> tzinfos = {"BRST": -7200, "CST": gettz("America/Chicago")}
2020-03-27T18:16:37.6386479Z                 >>> parse("2012-01-19 17:21:00 BRST", tzinfos=tzinfos)
2020-03-27T18:16:37.6387401Z                 datetime.datetime(2012, 1, 19, 17, 21, tzinfo=tzoffset(u'BRST', -7200))
2020-03-27T18:16:37.6388159Z                 >>> parse("2012-01-19 17:21:00 CST", tzinfos=tzinfos)
2020-03-27T18:16:37.6388663Z                 datetime.datetime(2012, 1, 19, 17, 21,
2020-03-27T18:16:37.6389349Z                                   tzinfo=tzfile('/usr/share/zoneinfo/America/Chicago'))
2020-03-27T18:16:37.6390349Z     
2020-03-27T18:16:37.6390823Z             This parameter is ignored if ``ignoretz`` is set.
2020-03-27T18:16:37.6391283Z     
2020-03-27T18:16:37.6391595Z         :param dayfirst:
2020-03-27T18:16:37.6392353Z             Whether to interpret the first value in an ambiguous 3-integer date
2020-03-27T18:16:37.6393105Z             (e.g. 01/05/09) as the day (``True``) or month (``False``). If
2020-03-27T18:16:37.6393685Z             ``yearfirst`` is set to ``True``, this distinguishes between YDM and
2020-03-27T18:16:37.6394156Z             YMD. If set to ``None``, this value is retrieved from the current
2020-03-27T18:16:37.6394610Z             :class:`parserinfo` object (which itself defaults to ``False``).
2020-03-27T18:16:37.6394968Z     
2020-03-27T18:16:37.6395226Z         :param yearfirst:
2020-03-27T18:16:37.6395841Z             Whether to interpret the first value in an ambiguous 3-integer date
2020-03-27T18:16:37.6396511Z             (e.g. 01/05/09) as the year. If ``True``, the first number is taken to
2020-03-27T18:16:37.6397349Z             be the year, otherwise the last number is taken to be the year. If
2020-03-27T18:16:37.6398069Z             this is set to ``None``, the value is retrieved from the current
2020-03-27T18:16:37.6398617Z             :class:`parserinfo` object (which itself defaults to ``False``).
2020-03-27T18:16:37.6399037Z     
2020-03-27T18:16:37.6399333Z         :param fuzzy:
2020-03-27T18:16:37.6399809Z             Whether to allow fuzzy parsing, allowing for string like "Today is
2020-03-27T18:16:37.6400291Z             January 1, 2047 at 8:21:00AM".
2020-03-27T18:16:37.6400628Z     
2020-03-27T18:16:37.6400954Z         :param fuzzy_with_tokens:
2020-03-27T18:16:37.6401391Z             If ``True``, ``fuzzy`` is automatically set to True, and the parser
2020-03-27T18:16:37.6401903Z             will return a tuple where the first element is the parsed
2020-03-27T18:16:37.6402536Z             :class:`datetime.datetime` datetimestamp and the second element is
2020-03-27T18:16:37.6403633Z             a tuple containing the portions of the string which were ignored:
2020-03-27T18:16:37.6404036Z     
2020-03-27T18:16:37.6404341Z             .. doctest::
2020-03-27T18:16:37.6404638Z     
2020-03-27T18:16:37.6405107Z                 >>> from dateutil.parser import parse
2020-03-27T18:16:37.6405634Z                 >>> parse("Today is January 1, 2047 at 8:21:00AM", fuzzy_with_tokens=True)
2020-03-27T18:16:37.6406513Z                 (datetime.datetime(2047, 1, 1, 8, 21), (u'Today is ', u' ', u'at '))
2020-03-27T18:16:37.6407199Z     
2020-03-27T18:16:37.6407464Z         :return:
2020-03-27T18:16:37.6407834Z             Returns a :class:`datetime.datetime` object or, if the
2020-03-27T18:16:37.6408278Z             ``fuzzy_with_tokens`` option is ``True``, returns a tuple, the
2020-03-27T18:16:37.6408981Z             first element being a :class:`datetime.datetime` object, the second
2020-03-27T18:16:37.6409472Z             a tuple containing the fuzzy tokens.
2020-03-27T18:16:37.6409793Z     
2020-03-27T18:16:37.6416049Z         :raises ValueError:
2020-03-27T18:16:37.6416719Z             Raised for invalid or unknown string format, if the provided
2020-03-27T18:16:37.6417444Z             :class:`tzinfo` is not in a valid format, or if an invalid date
2020-03-27T18:16:37.6417891Z             would be created.
2020-03-27T18:16:37.6418311Z     
2020-03-27T18:16:37.6418726Z         :raises OverflowError:
2020-03-27T18:16:37.6419273Z             Raised if the parsed date exceeds the largest valid C integer on
2020-03-27T18:16:37.6419711Z             your system.
2020-03-27T18:16:37.6420018Z         """
2020-03-27T18:16:37.6420330Z         if parserinfo:
2020-03-27T18:16:37.6420877Z             return parser(parserinfo).parse(timestr, **kwargs)
2020-03-27T18:16:37.6421255Z         else:
2020-03-27T18:16:37.6421644Z >           return DEFAULTPARSER.parse(timestr, **kwargs)
2020-03-27T18:16:37.6422091Z 
2020-03-27T18:16:37.6423228Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/dateutil/parser/_parser.py:1374: 
2020-03-27T18:16:37.6423959Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
2020-03-27T18:16:37.6424342Z 
2020-03-27T18:16:37.6424658Z self = <dateutil.parser._parser.parser object at 0x7f1de46b9350>
2020-03-27T18:16:37.6425310Z timestr = '五, 27 3月 2020 18:11:53 GMT'
2020-03-27T18:16:37.6425800Z default = datetime.datetime(2020, 3, 27, 0, 0), ignoretz = False
2020-03-27T18:16:37.6426475Z tzinfos = {'GMT': tzutc()}, kwargs = {}, res = None, skipped_tokens = None
2020-03-27T18:16:37.6426876Z 
2020-03-27T18:16:37.6427164Z     def parse(self, timestr, default=None,
2020-03-27T18:16:37.6427538Z               ignoretz=False, tzinfos=None, **kwargs):
2020-03-27T18:16:37.6427849Z         """
2020-03-27T18:16:37.6428204Z         Parse the date/time string into a :class:`datetime.datetime` object.
2020-03-27T18:16:37.6428565Z     
2020-03-27T18:16:37.6428819Z         :param timestr:
2020-03-27T18:16:37.6429210Z             Any date/time string using the supported formats.
2020-03-27T18:16:37.6429526Z     
2020-03-27T18:16:37.6429779Z         :param default:
2020-03-27T18:16:37.6430167Z             The default datetime object, if this is a datetime object and not
2020-03-27T18:16:37.6430776Z             ``None``, elements specified in ``timestr`` replace elements in the
2020-03-27T18:16:37.6431441Z             default object.
2020-03-27T18:16:37.6431742Z     
2020-03-27T18:16:37.6432049Z         :param ignoretz:
2020-03-27T18:16:37.6432467Z             If set ``True``, time zones in parsed strings are ignored and a
2020-03-27T18:16:37.6432975Z             naive :class:`datetime.datetime` object is returned.
2020-03-27T18:16:37.6433343Z     
2020-03-27T18:16:37.6433628Z         :param tzinfos:
2020-03-27T18:16:37.6434055Z             Additional time zone names / aliases which may be present in the
2020-03-27T18:16:37.6434682Z             string. This argument maps time zone names (and optionally offsets
2020-03-27T18:16:37.6435260Z             from those time zones) to time zones. This parameter can be a
2020-03-27T18:16:37.6435702Z             dictionary with timezone aliases mapping time zone names to time
2020-03-27T18:16:37.6436155Z             zones or a function taking two parameters (``tzname`` and
2020-03-27T18:16:37.6436696Z             ``tzoffset``) and returning a time zone.
2020-03-27T18:16:37.6437208Z     
2020-03-27T18:16:37.6437620Z             The timezones to which the names are mapped can be an integer
2020-03-27T18:16:37.6438077Z             offset from UTC in seconds or a :class:`tzinfo` object.
2020-03-27T18:16:37.6438437Z     
2020-03-27T18:16:37.6438699Z             .. doctest::
2020-03-27T18:16:37.6439054Z                :options: +NORMALIZE_WHITESPACE
2020-03-27T18:16:37.6439354Z     
2020-03-27T18:16:37.6439678Z                 >>> from dateutil.parser import parse
2020-03-27T18:16:37.6440070Z                 >>> from dateutil.tz import gettz
2020-03-27T18:16:37.6440793Z                 >>> tzinfos = {"BRST": -7200, "CST": gettz("America/Chicago")}
2020-03-27T18:16:37.6441604Z                 >>> parse("2012-01-19 17:21:00 BRST", tzinfos=tzinfos)
2020-03-27T18:16:37.6442377Z                 datetime.datetime(2012, 1, 19, 17, 21, tzinfo=tzoffset(u'BRST', -7200))
2020-03-27T18:16:37.6443465Z                 >>> parse("2012-01-19 17:21:00 CST", tzinfos=tzinfos)
2020-03-27T18:16:37.6443989Z                 datetime.datetime(2012, 1, 19, 17, 21,
2020-03-27T18:16:37.6444715Z                                   tzinfo=tzfile('/usr/share/zoneinfo/America/Chicago'))
2020-03-27T18:16:37.6445160Z     
2020-03-27T18:16:37.6445519Z             This parameter is ignored if ``ignoretz`` is set.
2020-03-27T18:16:37.6445856Z     
2020-03-27T18:16:37.6446238Z         :param \\*\\*kwargs:
2020-03-27T18:16:37.6447528Z             Keyword arguments as passed to ``_parse()``.
2020-03-27T18:16:37.6448032Z     
2020-03-27T18:16:37.6448353Z         :return:
2020-03-27T18:16:37.6448768Z             Returns a :class:`datetime.datetime` object or, if the
2020-03-27T18:16:37.6449286Z             ``fuzzy_with_tokens`` option is ``True``, returns a tuple, the
2020-03-27T18:16:37.6449817Z             first element being a :class:`datetime.datetime` object, the second
2020-03-27T18:16:37.6450310Z             a tuple containing the fuzzy tokens.
2020-03-27T18:16:37.6450667Z     
2020-03-27T18:16:37.6450965Z         :raises ParserError:
2020-03-27T18:16:37.6451396Z             Raised for invalid or unknown string format, if the provided
2020-03-27T18:16:37.6451904Z             :class:`tzinfo` is not in a valid format, or if an invalid date
2020-03-27T18:16:37.6452350Z             would be created.
2020-03-27T18:16:37.6452800Z     
2020-03-27T18:16:37.6453091Z         :raises TypeError:
2020-03-27T18:16:37.6453885Z             Raised for non-string or character stream input.
2020-03-27T18:16:37.6454326Z     
2020-03-27T18:16:37.6454656Z         :raises OverflowError:
2020-03-27T18:16:37.6455085Z             Raised if the parsed date exceeds the largest valid C integer on
2020-03-27T18:16:37.6455507Z             your system.
2020-03-27T18:16:37.6455922Z         """
2020-03-27T18:16:37.6456431Z     
2020-03-27T18:16:37.6456744Z         if default is None:
2020-03-27T18:16:37.6457160Z             default = datetime.datetime.now().replace(hour=0, minute=0,
2020-03-27T18:16:37.6457686Z                                                       second=0, microsecond=0)
2020-03-27T18:16:37.6458066Z     
2020-03-27T18:16:37.6458428Z         res, skipped_tokens = self._parse(timestr, **kwargs)
2020-03-27T18:16:37.6458778Z     
2020-03-27T18:16:37.6459191Z         if res is None:
2020-03-27T18:16:37.6459743Z >           raise ParserError("Unknown string format: %s", timestr)
2020-03-27T18:16:37.6460612Z E           dateutil.parser._parser.ParserError: Unknown string format: 五, 27 3月 2020 18:11:53 GMT
2020-03-27T18:16:37.6461135Z 
2020-03-27T18:16:37.6461831Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/dateutil/parser/_parser.py:649: ParserError
2020-03-27T18:16:37.6462294Z 
2020-03-27T18:16:37.6462654Z During handling of the above exception, another exception occurred:
2020-03-27T18:16:37.6463101Z 
2020-03-27T18:16:37.6463488Z self = <pandas.tests.io.test_parquet.TestParquetPyArrow object at 0x7f1d76d75210>
2020-03-27T18:16:37.6464218Z df_compat =    A    B
2020-03-27T18:16:37.6464554Z 0  1  foo
2020-03-27T18:16:37.6464841Z 1  2  foo
2020-03-27T18:16:37.6465108Z 2  3  foo
2020-03-27T18:16:37.6465977Z s3_resource = s3.ServiceResource(), pa = 'pyarrow'
2020-03-27T18:16:37.6466419Z 
2020-03-27T18:16:37.6466772Z     def test_s3_roundtrip(self, df_compat, s3_resource, pa):
2020-03-27T18:16:37.6467176Z         # GH #19134
2020-03-27T18:16:37.6467888Z >       check_round_trip(df_compat, pa, path="s3://pandas-test/pyarrow.parquet")
2020-03-27T18:16:37.6468598Z 
2020-03-27T18:16:37.6468923Z pandas/tests/io/test_parquet.py:488: 
2020-03-27T18:16:37.6469382Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
2020-03-27T18:16:37.6469883Z pandas/tests/io/test_parquet.py:176: in check_round_trip
2020-03-27T18:16:37.6470262Z     compare(repeat)
2020-03-27T18:16:37.6470636Z pandas/tests/io/test_parquet.py:168: in compare
2020-03-27T18:16:37.6471190Z     actual = read_parquet(path, **read_kwargs)
2020-03-27T18:16:37.6471616Z pandas/io/parquet.py:300: in read_parquet
2020-03-27T18:16:37.6472030Z     return impl.read(path, columns=columns, **kwargs)
2020-03-27T18:16:37.6472668Z pandas/io/parquet.py:113: in read
2020-03-27T18:16:37.6473217Z     path, _, _, should_close = get_filepath_or_buffer(path)
2020-03-27T18:16:37.6473645Z pandas/io/common.py:201: in get_filepath_or_buffer
2020-03-27T18:16:37.6474112Z     filepath_or_buffer, encoding=encoding, compression=compression, mode=mode
2020-03-27T18:16:37.6474560Z pandas/io/s3.py:48: in get_filepath_or_buffer
2020-03-27T18:16:37.6475000Z     file, _fs = get_file_and_filesystem(filepath_or_buffer, mode=mode)
2020-03-27T18:16:37.6475436Z pandas/io/s3.py:29: in get_file_and_filesystem
2020-03-27T18:16:37.6475860Z     file = fs.open(_strip_schema(filepath_or_buffer), mode)
2020-03-27T18:16:37.6476799Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/fsspec/spec.py:774: in open
2020-03-27T18:16:37.6477280Z     **kwargs
2020-03-27T18:16:37.6478236Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/s3fs/core.py:377: in _open
2020-03-27T18:16:37.6478798Z     autocommit=autocommit, requester_pays=requester_pays)
2020-03-27T18:16:37.6479601Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/s3fs/core.py:1095: in __init__
2020-03-27T18:16:37.6480120Z     cache_type=cache_type)
2020-03-27T18:16:37.6480867Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/fsspec/spec.py:1056: in __init__
2020-03-27T18:16:37.6481404Z     self.details = fs.info(path)
2020-03-27T18:16:37.6482347Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/s3fs/core.py:528: in info
2020-03-27T18:16:37.6483012Z     Key=key, **version_id_kw(version_id), **self.req_kw)
2020-03-27T18:16:37.6484814Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/s3fs/core.py:199: in _call_s3
2020-03-27T18:16:37.6485427Z     return method(**additional_kwargs)
2020-03-27T18:16:37.6486423Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/client.py:316: in _api_call
2020-03-27T18:16:37.6487194Z     return self._make_api_call(operation_name, kwargs)
2020-03-27T18:16:37.6488049Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/client.py:613: in _make_api_call
2020-03-27T18:16:37.6488645Z     operation_model, request_dict, request_context)
2020-03-27T18:16:37.6489404Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/client.py:632: in _make_request
2020-03-27T18:16:37.6489999Z     return self._endpoint.make_request(operation_model, request_dict)
2020-03-27T18:16:37.6491059Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/endpoint.py:102: in make_request
2020-03-27T18:16:37.6491692Z     return self._send_request(request_dict, operation_model)
2020-03-27T18:16:37.6492529Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/endpoint.py:135: in _send_request
2020-03-27T18:16:37.6493171Z     request, operation_model, context)
2020-03-27T18:16:37.6494139Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/endpoint.py:167: in _get_response
2020-03-27T18:16:37.6494730Z     request, operation_model)
2020-03-27T18:16:37.6495541Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/endpoint.py:218: in _do_get_response
2020-03-27T18:16:37.6496167Z     response_dict, operation_model.output_shape)
2020-03-27T18:16:37.6497203Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/parsers.py:242: in parse
2020-03-27T18:16:37.6497800Z     parsed = self._do_parse(response, shape)
2020-03-27T18:16:37.6498590Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/parsers.py:774: in _do_parse
2020-03-27T18:16:37.6499160Z     member_shapes, final_parsed)
2020-03-27T18:16:37.6499969Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/parsers.py:833: in _parse_non_payload_attrs
2020-03-27T18:16:37.6500723Z     member_shape, headers[header_name])
2020-03-27T18:16:37.6501547Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/parsers.py:302: in _parse_shape
2020-03-27T18:16:37.6502128Z     return handler(shape, node)
2020-03-27T18:16:37.6502916Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/parsers.py:175: in _get_text_content
2020-03-27T18:16:37.6503488Z     return func(self, shape, text)
2020-03-27T18:16:37.6504298Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/parsers.py:462: in _handle_timestamp
2020-03-27T18:16:37.6504870Z     return self._timestamp_parser(text)
2020-03-27T18:16:37.6505668Z ../../../miniconda3/envs/pandas-dev/lib/python3.7/site-packages/botocore/utils.py:626: in parse_timestamp
2020-03-27T18:16:37.6506266Z     return _parse_timestamp_with_tzinfo(value, tzinfo)
2020-03-27T18:16:37.6506771Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
2020-03-27T18:16:37.6507148Z 
2020-03-27T18:16:37.6507825Z value = '五, 27 3月 2020 18:11:53 GMT', tzinfo = <class 'dateutil.tz.tz.tzlocal'>
2020-03-27T18:16:37.6508344Z 
2020-03-27T18:16:37.6508684Z     def _parse_timestamp_with_tzinfo(value, tzinfo):
2020-03-27T18:16:37.6509139Z         """Parse timestamp with pluggable tzinfo options."""
2020-03-27T18:16:37.6509563Z         if isinstance(value, (int, float)):
2020-03-27T18:16:37.6509962Z             # Possibly an epoch time.
2020-03-27T18:16:37.6510383Z             return datetime.datetime.fromtimestamp(value, tzinfo())
2020-03-27T18:16:37.6510764Z         else:
2020-03-27T18:16:37.6511070Z             try:
2020-03-27T18:16:37.6511478Z                 return datetime.datetime.fromtimestamp(float(value), tzinfo())
2020-03-27T18:16:37.6511946Z             except (TypeError, ValueError):
2020-03-27T18:16:37.6512297Z                 pass
2020-03-27T18:16:37.6512606Z         try:
2020-03-27T18:16:37.6513006Z             # In certain cases, a timestamp marked with GMT can be parsed into a
2020-03-27T18:16:37.6513528Z             # different time zone, so here we provide a context which will
2020-03-27T18:16:37.6513992Z             # enforce that GMT == UTC.
2020-03-27T18:16:37.6514846Z             return dateutil.parser.parse(value, tzinfos={'GMT': tzutc()})
2020-03-27T18:16:37.6515508Z         except (TypeError, ValueError) as e:
2020-03-27T18:16:37.6516237Z >           raise ValueError('Invalid timestamp "%s": %s' % (value, e))
2020-03-27T18:16:37.6517538Z E           ValueError: Invalid timestamp "五, 27 3月 2020 18:11:53 GMT": Unknown string format: 五, 27 3月 2020 18:11:53 GMT

Metadata

Metadata

Assignees

No one assigned

    Labels

    CIContinuous Integration

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions