class_docstr: Report subdatasets and their properties.
  
  The following properties are reported (if possible) for each matching
  subdataset record.
  
  "name"
      Name of the subdataset in the parent (often identical with the
      relative path in the parent dataset)
  
  "path"
      Absolute path to the subdataset
  
  "parentds"
      Absolute path to the parent dataset
  
  "gitshasum"
      SHA1 of the subdataset commit recorded in the parent dataset
  
  "state"
      Condition of the subdataset: 'absent', 'present'
  
  "gitmodule_url"
      URL of the subdataset recorded in the parent
  
  "gitmodule_name"
      Name of the subdataset recorded in the parent
  
  "gitmodule_<label>"
      Any additional configuration property on record.
  
  Performance note: Property modification, requesting `bottomup` reporting
  order, or a particular numerical `recursion_limit` implies an internal
  switch to an alternative query implementation for recursive query that is
  more flexible, but also notably slower (performs one call to Git per
  dataset versus a single call for all combined).
  
  The following properties for subdatasets are recognized by DataLad
  (without the 'gitmodule\_' prefix that is used in the query results):
  
  "datalad-recursiveinstall"
      If set to 'skip', the respective subdataset is skipped when DataLad
      is recursively installing its superdataset. However, the subdataset
      remains installable when explicitly requested, and no other features
      are impaired.
  
  "datalad-url"
      If a subdataset was originally established by cloning, 'datalad-url'
      records the URL that was used to do so. This might be different from
      'url' if the URL contains datalad specific pieces like any URL of the
      form "ria+<some protocol>...".
class_docstr_tok: ["Report","subdatasets","and","their","properties",".","The","following","properties","are","reported","(","if","possible",")","for","each","matching","subdataset","record",".","``","name","''","Name","of","the","subdataset","in","the","parent","(","often","identical","with","the","relative","path","in","the","parent","dataset",")","''","path","''","Absolute","path","to","the","subdataset","''","parentds","''","Absolute","path","to","the","parent","dataset","''","gitshasum","''","SHA1","of","the","subdataset","commit","recorded","in","the","parent","dataset","''","state","''","Condition","of","the","subdataset",":","'absent","'",",","'present'","''","gitmodule_url","''","URL","of","the","subdataset","recorded","in","the","parent","''","gitmodule_name","''","Name","of","the","subdataset","recorded","in","the","parent","''","gitmodule_","<","label",">","''","Any","additional","configuration","property","on","record",".","Performance","note",":","Property","modification",",","requesting","`","bottomup","`","reporting","order",",","or","a","particular","numerical","`","recursion_limit","`","implies","an","internal","switch","to","an","alternative","query","implementation","for","recursive","query","that","is","more","flexible",",","but","also","notably","slower","(","performs","one","call","to","Git","per","dataset","versus","a","single","call","for","all","combined",")",".","The","following","properties","for","subdatasets","are","recognized","by","DataLad","(","without","the","'gitmodule\\_","'","prefix","that","is","used","in","the","query","results",")",":","''","datalad-recursiveinstall","''","If","set","to","'skip","'",",","the","respective","subdataset","is","skipped","when","DataLad","is","recursively","installing","its","superdataset",".","However",",","the","subdataset","remains","installable","when","explicitly","requested",",","and","no","other","features","are","impaired",".","``","datalad-url","''","If","a","subdataset","was","originally","established","by","cloning",",","'datalad-url'","records","the","URL","that","was","used","to","do","so",".","This","might","be","different","from","'url","'","if","the","URL","contains","datalad","specific","pieces","like","any","URL","of","the","form","``","ria+","<","some","protocol",">","...","''","."]
code: def custom_result_renderer(res, **kwargs):
      generic_result_renderer(res)
  
imports: import logging
  import re
  import os
  import warnings
  from datalad.interface.utils import generic_result_renderer
  from datalad.interface.base import Interface, build_doc, eval_results
  from datalad.interface.results import get_status_dict
  from datalad.support.constraints import EnsureStr, EnsureNone, NoneDeprecated
  from datalad.support.param import Parameter
  from datalad.support.exceptions import CapturedException, CommandError
  from datalad.interface.common_opts import contains, dataset_state, fulfilled, recursion_flag, recursion_limit
  from datalad.distribution.dataset import Dataset, require_dataset
  from datalad.support.gitrepo import GitRepo
  from datalad.utils import ensure_list, getpwd, partition, Path
  from datalad.distribution.dataset import EnsureDataset, datasetmethod, resolve_path
label_desc: Use image node_id 2 for calling the Subdatasets obj's underlying member method code with example usage: obj.custom_result_renderer(res) without return types