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/issues/2788#issuecomment-472446172,https://api.github.com/repos/pydata/xarray/issues/2788,472446172,MDEyOklzc3VlQ29tbWVudDQ3MjQ0NjE3Mg==,2448579,2019-03-13T14:31:18Z,2019-03-13T14:31:18Z,MEMBER,"http://xarray.pydata.org/en/stable/internals.html#extending-xarray There seems to be a misunderstanding. The docs say that defining an accessor is equivalent to defining an additional property of the `Dataset` class, so you don't have to recreate `DataArray` or `Dataset`. You just need to use `register_dataarray_accessor` and `register_dataset_accessor` as in that example. What about that example isn't clear enough? Would it help if the example in @TomNicholas's comment above was added to the documentation?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,414552031 https://github.com/pydata/xarray/issues/2788#issuecomment-472441105,https://api.github.com/repos/pydata/xarray/issues/2788,472441105,MDEyOklzc3VlQ29tbWVudDQ3MjQ0MTEwNQ==,5131271,2019-03-13T14:19:31Z,2019-03-13T14:19:31Z,NONE,@dcherian A non-trivial example would help for both types of accessor patterns would help a lot and the best practice defined by the dev team on how to extend the API when needed. ,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,414552031 https://github.com/pydata/xarray/issues/2788#issuecomment-472433698,https://api.github.com/repos/pydata/xarray/issues/2788,472433698,MDEyOklzc3VlQ29tbWVudDQ3MjQzMzY5OA==,2448579,2019-03-13T14:01:03Z,2019-03-13T14:01:03Z,MEMBER,@achapkowski We would appreciate it if you could suggest changes that would make the documentation less confusing.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,414552031 https://github.com/pydata/xarray/issues/2788#issuecomment-467490757,https://api.github.com/repos/pydata/xarray/issues/2788,467490757,MDEyOklzc3VlQ29tbWVudDQ2NzQ5MDc1Nw==,35968931,2019-02-26T15:46:06Z,2019-02-26T15:46:06Z,MEMBER,"> What methods and properties must be implemented in DataArray to assure it works properly? You don't really need to implement anything, you're effectively just adding new methods and properties to the class, you don't need to reimplement anything which is already there. ```python @xarray.register_dataset_accessor('example') class ExampleDataArrayAccessor(): def __init__(self, da): pass def hello_world(self): print(""hello world!"") ds = xr.Dataset({'longitude': np.linspace(0, 10), 'latitude': np.linspace(0, 20)}) ds.example.hello_world() ``` ``` hello world! ``` > Is there a full template/example of doing this? You've linked to the only example current in the official documentation. (I think there should be more examples.) However I found reading the discussion and examples in [this issue thread](https://github.com/pydata/xarray/issues/1080) pretty helpful. Also I have a very simple example of creating a dataset accessor [here](https://github.com/TomNicholas/xBOUT-1/blob/0030c53382cb96e89f9b266b2f0bbd39cefd6b26/xbout/boutdataset.py#L93).","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,414552031