Repository: datalad/datalad

Issue:
Documentation - dataset.siblings() does not have result_renderer to None by default
#### What is the problem?
In the [documentation](http://docs.datalad.org/en/latest/generated/datalad.api.siblings.html), it is said that "sibling information is rendered as one line per sibling following this scheme". However, next to the `result_renderer` parameter, it is said to be `None` by default. However, it is required to manually set it to `None` in order to hide the siblings rendering.
#### What version of DataLad are you using?
Datalad: datalad 0.10.1
OS: Ubuntu 18.04.1 LTS



Discussion:

Patch:
diff --git a/datalad/interface/base.py b/datalad/interface/base.py
index f9be2c566..62abc6e72 100644
--- a/datalad/interface/base.py
+++ b/datalad/interface/base.py
@@ -514,10 +514,19 @@ def build_doc(cls, **kwargs):
 
     # build standard doc and insert eval_doc
     spec = getattr(cls, '_params_', dict())
+
+
+    # update class attributes that may override defaults 
+    if hasattr(cls, '_no_eval_results'):
+        add_args = None
+    else:
+        add_args = {k: getattr(cls, k, v) for k, v in eval_defaults.items()}
+
     # ATTN: An important consequence of this update() call is that it
     # fulfills the docstring's promise of overriding any existing
     # values for eval_params keys in _params_.
     #
+
     # get docs for eval_results parameters:
     spec.update(eval_params)
 
@@ -525,7 +534,7 @@ def build_doc(cls, **kwargs):
         cls.__call__, spec,
         prefix=alter_interface_docs_for_api(cls_doc),
         suffix=alter_interface_docs_for_api(call_doc),
-        add_args=eval_defaults if not hasattr(cls, '_no_eval_results') else None
+        add_args=add_args
     )
 
     # return original


Test patch:
diff --git a/datalad/interface/tests/test_utils.py b/datalad/interface/tests/test_utils.py
index ebb42e630..7f8eadcf8 100644
--- a/datalad/interface/tests/test_utils.py
+++ b/datalad/interface/tests/test_utils.py
@@ -206,6 +206,9 @@ def test_save_hierarchy(path):
 class TestUtils(Interface):
     """TestUtil's fake command"""
 
+    result_renderer = 'tailored' # overides None default
+    return_type = 'item-or-list' # overides 'list'
+
     _params_ = dict(
         number=Parameter(
             args=("-n", "--number",),
@@ -255,6 +258,10 @@ def test_eval_results_plus_build_doc():
     assert_in("Parameters", doc1)
     assert_in("It's a number", doc1)
 
+    # docstring shows correct overide values of defaults in eval_params
+    assert_in("Default: 'tailored'", doc1)
+    assert_in("Default: 'item-or-list'", doc1)
+
     # docstring also contains eval_result's parameters:
     assert_in("result_filter", doc1)
     assert_in("return_type", doc1)