def tpl_attrgetter(obj, name, *defargs): """Attribute getter hook for autodoc to permit accessing instantiations via instantiation names. In ideal world, we'd be able to override instance names easily; however, since Sphinx aims to permit either sweeping automation (`automodule`) or specific instances (`autoclass`), we have to try and get it to play nice with string retrieval. Note: We cannot call `.. autoclass:: obj.MyTemplate[param]`, because this getter is constrained to `TemplateBase` instances. """ # N.B. Rather than try to evaluate parameters from the string, we instead # match based on instantiation name. if "[" in name: assert name.endswith(']'), name for param in obj.param_list: inst = obj[param] if inst.__name__ == name: return inst assert False, ( "Not a template?", param, obj.param_list, inst.__name__, name) return autodoc.safe_getattr(obj, name, *defargs)
def autodoc_special_attr_getter (self, obj, name, * defargs) : if ( isinstance (obj, MOM.Meta.M_E_Mixin) and not isinstance (obj, MOM.Meta._M_E_Type_Id_RC_) ) : obj = self.e_type (obj) return autodoc.safe_getattr(obj, name, *defargs)