issue_comments
10 rows where author_association = "MEMBER", issue = 187591179 and user = 1217238 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: reactions, created_at (date), updated_at (date)
issue 1
- Towards a (temporary?) workaround for datetime issues at the xarray-level · 10 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | performed_via_github_app | issue |
---|---|---|---|---|---|---|---|---|---|---|---|
276719845 | https://github.com/pydata/xarray/issues/1084#issuecomment-276719845 | https://api.github.com/repos/pydata/xarray/issues/1084 | MDEyOklzc3VlQ29tbWVudDI3NjcxOTg0NQ== | shoyer 1217238 | 2017-02-01T17:17:46Z | 2017-02-01T17:19:48Z | MEMBER | @spencerkclark I still think subclassing pandas.Index is the best path forward. Subclassing DatetimeIndex is a non-starter because it presumes the use of datetime64 internally. Subclassing PeriodIndex is also potentially viable, but would require hooking pretty deeply into pandas's internal machinery with an API that isn't really designed to be extended externally. For example, frequency conversion is done in C. From a data model perspective, it might work to use custom frequencies for different calendars, but it's not the cleanest abstraction -- really the frequency and the calendar are two separate notions. From a practical perspective, it's also less promising because it would require writing much of the logic from netcdftime to reimplement arithmetic and so on. And there would still be issues with datetime strings and converting back and forth to datetimes. The downside of using pandas.Index is that resampling won't work out of the box. But we can work around that in xarray, and potentially even in pandas if we add an a simple dispatching mechanism into |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Towards a (temporary?) workaround for datetime issues at the xarray-level 187591179 | |
275963433 | https://github.com/pydata/xarray/issues/1084#issuecomment-275963433 | https://api.github.com/repos/pydata/xarray/issues/1084 | MDEyOklzc3VlQ29tbWVudDI3NTk2MzQzMw== | shoyer 1217238 | 2017-01-30T01:31:30Z | 2017-01-30T01:31:30Z | MEMBER | @spencerkclark I'm looking forward to the PR! I understand that pandas wants a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Towards a (temporary?) workaround for datetime issues at the xarray-level 187591179 | |
274379833 | https://github.com/pydata/xarray/issues/1084#issuecomment-274379833 | https://api.github.com/repos/pydata/xarray/issues/1084 | MDEyOklzc3VlQ29tbWVudDI3NDM3OTgzMw== | shoyer 1217238 | 2017-01-23T01:55:26Z | 2017-01-23T01:55:26Z | MEMBER |
If you want to take this approach, name it something different and then use to parse inputs to One advantage of having our parser is that it would be pretty easy to extend as necessary, e.g., to handle negative years as specified by Wikipedia:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Towards a (temporary?) workaround for datetime issues at the xarray-level 187591179 | |
274374525 | https://github.com/pydata/xarray/issues/1084#issuecomment-274374525 | https://api.github.com/repos/pydata/xarray/issues/1084 | MDEyOklzc3VlQ29tbWVudDI3NDM3NDUyNQ== | shoyer 1217238 | 2017-01-23T00:51:39Z | 2017-01-23T00:51:39Z | MEMBER | As for the implementation in your gist, it looks pretty solid to me. One possible concern is that we are overwriting It might also be worth testing this index in a pandas DataFrame/Series. I don't expect things to work 100% but it might be enough to be useful. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Towards a (temporary?) workaround for datetime issues at the xarray-level 187591179 | |
274372547 | https://github.com/pydata/xarray/issues/1084#issuecomment-274372547 | https://api.github.com/repos/pydata/xarray/issues/1084 | MDEyOklzc3VlQ29tbWVudDI3NDM3MjU0Nw== | shoyer 1217238 | 2017-01-23T00:21:49Z | 2017-01-23T00:22:44Z | MEMBER |
Honestly, it's probably more reliable to just parse ISO-8601 ourselves, which is intentionally pretty simple. That will give us complete control. Here's something simple I wrote to parse ISO-8601 using a regex: ```python import re def named(name, pattern): return '(?P<' + name + '>' + pattern + ')' def optional(x): return '(?:' + x + ')?' def trailing_optional(xs): if not xs: return '' return xs[0] + optional(trailing_optional(xs[1:])) def build_pattern(date_sep='-', datetime_sep='T', time_sep='\:'): pieces = [(None, 'year', '\d{4}'), (date_sep, 'month', '\d{2}'), (date_sep, 'day', '\d{2}'), (datetime_sep, 'hour', '\d{2}'), (time_sep, 'minute', '\d{2}'), (time_sep, 'second', '\d{2}' + optional('.\d+'))] pattern_list = [] for sep, name, sub_pattern in pieces: pattern_list.append((sep if sep else '') + named(name, sub_pattern)) # TODO: allow timezone offsets? return '^' + trailing_optional(pattern_list) + '$' def parse_iso8601(datetime_string): basic_pattern = build_pattern(date_sep='', time_sep='') extended_pattern = build_pattern() patterns = [basic_pattern, extended_pattern] for pattern in patterns: match = re.match(pattern, datetime_string) if match: return match.groupdict() raise ValueError('no ISO-8601 match for string: %s' % datetime_string) test casesprint parse_iso8601('1999')
print parse_iso8601('19990101')
print parse_iso8601('1999-01-01')
print parse_iso8601('1999-01-01T12')
print parse_iso8601('1999-01-01T12:34')
print parse_iso8601('1999-01-01T12:34:56.78')
print parse_iso8601('19990101T123456.78')
|
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Towards a (temporary?) workaround for datetime issues at the xarray-level 187591179 | |
274364774 | https://github.com/pydata/xarray/issues/1084#issuecomment-274364774 | https://api.github.com/repos/pydata/xarray/issues/1084 | MDEyOklzc3VlQ29tbWVudDI3NDM2NDc3NA== | shoyer 1217238 | 2017-01-22T22:22:55Z | 2017-01-22T22:22:55Z | MEMBER | @spencerkclark It looks like I'm not super happy with using the private |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Towards a (temporary?) workaround for datetime issues at the xarray-level 187591179 | |
269878256 | https://github.com/pydata/xarray/issues/1084#issuecomment-269878256 | https://api.github.com/repos/pydata/xarray/issues/1084 | MDEyOklzc3VlQ29tbWVudDI2OTg3ODI1Ng== | shoyer 1217238 | 2016-12-31T19:09:19Z | 2017-01-01T00:18:20Z | MEMBER | @spencerkclark
The good news here is that almost all this logic lives in pandas's Python code and should be straightforward to duplicate. I can point you to the relevant locations if you're having trouble figuring this out.
It should be quite straightforward to integrate this into xarray's existing serialization logic.
We could go either way here, but for now I think it makes sense to keep this in xarray proper. Here's why:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Towards a (temporary?) workaround for datetime issues at the xarray-level 187591179 | |
265113215 | https://github.com/pydata/xarray/issues/1084#issuecomment-265113215 | https://api.github.com/repos/pydata/xarray/issues/1084 | MDEyOklzc3VlQ29tbWVudDI2NTExMzIxNQ== | shoyer 1217238 | 2016-12-06T10:20:58Z | 2016-12-06T10:20:58Z | MEMBER | @spencerahill Those are absolutely not essential -- I think your basic example is probably already enough to be useful. Perhaps the most complete list of time series functionality in xarray can be found on this doc page: http://xarray.pydata.org/en/stable/time-series.html |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Towards a (temporary?) workaround for datetime issues at the xarray-level 187591179 | |
264884735 | https://github.com/pydata/xarray/issues/1084#issuecomment-264884735 | https://api.github.com/repos/pydata/xarray/issues/1084 | MDEyOklzc3VlQ29tbWVudDI2NDg4NDczNQ== | shoyer 1217238 | 2016-12-05T15:32:30Z | 2016-12-05T15:32:30Z | MEMBER | @spencerkclark This looks pretty sane to me, though of course it's still missing a few nice things you can do with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Towards a (temporary?) workaround for datetime issues at the xarray-level 187591179 | |
258713425 | https://github.com/pydata/xarray/issues/1084#issuecomment-258713425 | https://api.github.com/repos/pydata/xarray/issues/1084 | MDEyOklzc3VlQ29tbWVudDI1ODcxMzQyNQ== | shoyer 1217238 | 2016-11-06T21:48:30Z | 2016-11-06T21:48:30Z | MEMBER | To be clear, the subclassing question is whether we should subclass Index or not. This would entail overriding a lot of methods, and would probably break in the future (with pandas 2.0). I definitely do not recommend subclassing PeriodIndex -- that could be very fragile. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Towards a (temporary?) workaround for datetime issues at the xarray-level 187591179 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [performed_via_github_app] TEXT, [issue] INTEGER REFERENCES [issues]([id]) ); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
user 1