issue_comments
4 rows where issue = 187373423 and user = 1217238 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: created_at (date), updated_at (date)
issue 1
- acccessor extending approach limits functional programming approach, make direct monkey-patching also possible · 4 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | performed_via_github_app | issue |
---|---|---|---|---|---|---|---|---|---|---|---|
261144489 | https://github.com/pydata/xarray/issues/1080#issuecomment-261144489 | https://api.github.com/repos/pydata/xarray/issues/1080 | MDEyOklzc3VlQ29tbWVudDI2MTE0NDQ4OQ== | shoyer 1217238 | 2016-11-17T03:22:02Z | 2016-11-17T03:22:02Z | MEMBER | I think we probably need to agree to disagree here. I will update the docs in response to feedback (which is greatly appreciated!) and when I do so I will close out this issue.
This seems too magical to me, but you are welcome to make another issue to see what others think. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
acccessor extending approach limits functional programming approach, make direct monkey-patching also possible 187373423 | |
259270684 | https://github.com/pydata/xarray/issues/1080#issuecomment-259270684 | https://api.github.com/repos/pydata/xarray/issues/1080 | MDEyOklzc3VlQ29tbWVudDI1OTI3MDY4NA== | shoyer 1217238 | 2016-11-08T21:50:33Z | 2016-11-08T21:50:33Z | MEMBER |
I don't really agree here. Code is read in text form more often than it is interactively explored. At Google, our Python style guide actually prohibits writing import like
xarray objects are already non-threadsafe, in the same way that the built-in Finally, I'll note that we also have the You are certainly welcome to monkey patch -- that's the Python philosophy, after all -- but I'm not going to recommend it or make it easy. But I would even subclassing before considering monkey patching -- at least then your methods are contained to your own code, instead of contaminating a global namespace. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
acccessor extending approach limits functional programming approach, make direct monkey-patching also possible 187373423 | |
258680571 | https://github.com/pydata/xarray/issues/1080#issuecomment-258680571 | https://api.github.com/repos/pydata/xarray/issues/1080 | MDEyOklzc3VlQ29tbWVudDI1ODY4MDU3MQ== | shoyer 1217238 | 2016-11-06T13:22:42Z | 2016-11-06T13:22:51Z | MEMBER |
Indeed. My thinking was the A stricter approach would have been to put everything under an attribute just for extensions, e.g.,
I'll add a note about the value of namespaces to the doc.
We could certainly turn this off (optionally) if there are cases where it does the wrong thing. Could you go into this in a little more detail, perhaps with a concrete example? My expectation was that this should have minimal design or performance downsides. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
acccessor extending approach limits functional programming approach, make direct monkey-patching also possible 187373423 | |
258582609 | https://github.com/pydata/xarray/issues/1080#issuecomment-258582609 | https://api.github.com/repos/pydata/xarray/issues/1080 | MDEyOklzc3VlQ29tbWVudDI1ODU4MjYwOQ== | shoyer 1217238 | 2016-11-05T01:32:02Z | 2016-11-05T01:32:02Z | MEMBER | I don't see a conflict between encouraging accessors and making duplicate methods/functions. If you want duplicate method/functions, you can totally do that on an accessor class: ``` python import functools import xarray @xarray.register_dataarray_accessor('custom') class CustomAccessor(object): def init(self, data_array): self._data_array = data_array def patch_custom(func): @functools.wraps(func) def method(accessor, args, kwargs): return func(accessor._data_array, args, **kwargs) setattr(CustomAccessor, func.name, method) return func @patch_custom def square(data_array): return data_array ** 2 xarray.DataArray([1, 2, 3], dims='x').custom.square() <xarray.DataArray (x: 3)>array([1, 4, 9])Coordinates:* x (x) int64 0 1 2``` If you really desire, you can even make method-like accessors by adding a
or even simpler
I would definitely discourage writing too many of such methods, though. Finally, it seems like the simplest solution to your concern about needing methods for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
acccessor extending approach limits functional programming approach, make direct monkey-patching also possible 187373423 |
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