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/939#issuecomment-704358805,https://api.github.com/repos/pydata/xarray/issues/939,704358805,MDEyOklzc3VlQ29tbWVudDcwNDM1ODgwNQ==,2448579,2020-10-06T15:39:11Z,2020-10-06T15:39:11Z,MEMBER,See #4490 for a concrete API proposal. I think we can move the discussion there.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,169274464 https://github.com/pydata/xarray/issues/939#issuecomment-300650769,https://api.github.com/repos/pydata/xarray/issues/939,300650769,MDEyOklzc3VlQ29tbWVudDMwMDY1MDc2OQ==,1217238,2017-05-11T00:41:21Z,2017-05-11T00:41:21Z,MEMBER,"> I'd much rather have pandas.read_csv the way it is right now than to have a ReadOptions object that would need to contain exactly the same documentation and be just as hard to understand as read_csv. Certainly I agree here. The alternative would be separating out related functionality into related groups, e.g., `NameOptions`, `ParserOptions`, `MissingValueOptions`, `DatetimeOptions`, etc., basically exactly the groupings you see in the [pandas docs](http://pandas.pydata.org/pandas-docs/stable/io.html#csv-text-files).","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,169274464 https://github.com/pydata/xarray/issues/939#issuecomment-300643922,https://api.github.com/repos/pydata/xarray/issues/939,300643922,MDEyOklzc3VlQ29tbWVudDMwMDY0MzkyMg==,1217238,2017-05-10T23:51:49Z,2017-05-10T23:52:02Z,MEMBER,"My concern is that `open_dataset` has [1 required and 12 optional arguments](http://xarray.pydata.org/en/stable/generated/xarray.open_dataset.html#xarray.open_dataset). This is too many to easily understand, and is generally considered [poor software design](http://stackoverflow.com/questions/2244860/when-a-method-has-too-many-parameters). The standard solution is to group related options into objects, e.g., `DecoderOptions` or just `Decoder` (if we want to bundle related methods on the object). [`pandas.read_csv`](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html) is a more extreme example of the same issue.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,169274464 https://github.com/pydata/xarray/issues/939#issuecomment-300623916,https://api.github.com/repos/pydata/xarray/issues/939,300623916,MDEyOklzc3VlQ29tbWVudDMwMDYyMzkxNg==,1217238,2017-05-10T21:53:31Z,2017-05-10T21:53:31Z,MEMBER,"One advantage to creating classes to encapsulate these options is that it's easier to do error checking on field names and values than a dictionary. Though a dictionary is nice and lightweight. The simplest thing to do would be to move these options out of `open_dataset` into a single other argument, e.g., `open_dataset(filename, **kwargs)` -> `open_dataset(filename, decode_options=kwargs)`.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,169274464