issue_comments: 612076605
This data as json
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/3959#issuecomment-612076605 | https://api.github.com/repos/pydata/xarray/issues/3959 | 612076605 | MDEyOklzc3VlQ29tbWVudDYxMjA3NjYwNQ== | 14808389 | 2020-04-10T15:23:08Z | 2020-04-10T15:56:08Z | MEMBER | you could emulate the availability of the accessors by checking your variables in the constructor of the accessor using ```python dataset_types = { frozenset("variable1", "variable2"): "type1", frozenset("variable2", "variable3"): "type2", frozenset("variable1", "variable3"): "type3", } def _dataset_type(ds): data_vars = frozenset(ds.data_vars.keys()) return dataset_types[data_vars] @xr.register_dataset_accessor("type1")
class Type1Accessor:
def init(self, ds):
if _dataset_type(ds) != "type1":
raise AttributeError("not a type1 dataset")
self.dataset = ds
``` If you just wanted to use static code analysis using e.g. class Dataset1(DatasetType): longitude : Coordinate[ArrayType[Float64Type]] latitude : Coordinate[ArrayType[Float64Type]]
def function(ds : Dataset1): # ... return ds ``` and have the type checker validate the structure of the dataset. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
597475005 |