def type_to_typelist(type_obj): if type_obj.IsArray: return PythonScraper.type_to_typelist(tuple) elif type_obj == Void: return PythonScraper.type_to_typelist(type(None)) elif not PythonOps.IsPythonType(clr.GetPythonType(type_obj)): raise NonPythonTypeException return PythonScraper.type_to_typelist(clr.GetPythonType(type_obj))
def get_new_overloads(type_obj, obj): try: type_doc = safe_getattr(type_obj, '__doc__', None) type_type = type(type_obj) except: return None res = get_overloads_from_doc_string( type_doc, safe_getattr(type_obj, '__module__', None), type_type, safe_getattr(type_obj, '__name__', None), [{ 'type': PythonScraper.type_to_typelist(type), 'name': 'cls' }], ) if not res: obj_doc = safe_getattr(obj, '__doc__', None) if not obj_doc: return None res = get_overloads_from_doc_string( obj_doc, safe_getattr(type_obj, '__module__', None), type_type, safe_getattr(type_obj, '__name__', None), ) return res
def get_ret_type(ret_type, obj_class, mod): if ret_type is not None: if ret_type == 'copy' and obj_class is not None: # returns a copy of self return PythonScraper.type_to_typelist(obj_class) else: return [type_name_to_typeref(ret_type, mod, RETURN_TYPE_OVERRIDES)]
def get_new_overloads(type_obj, obj): try: type_doc = safe_getattr(type_obj, '__doc__', None) type_type = type(type_obj) except: return None res = get_overloads_from_doc_string( type_doc, safe_getattr(type_obj, '__module__', None), type_type, safe_getattr(type_obj, '__name__', None), [{'type': PythonScraper.type_to_typelist(type), 'name': 'cls'}], ) if not res: obj_doc = safe_getattr(obj, '__doc__', None) if not obj_doc: return None res = get_overloads_from_doc_string( obj_doc, safe_getattr(type_obj, '__module__', None), type_type, safe_getattr(type_obj, '__name__', None), ) return res
def get_overloads(func, is_method = False): if is_method: extra_args = [{'type': PythonScraper.type_to_typelist(object), 'name': 'self'}] else: extra_args = [] func_doc = safe_getattr(func, '__doc__', None) if not func_doc: return None return get_overloads_from_doc_string( func_doc, safe_getattr(func, '__module__', None), safe_getattr(func, '__objclass__', None), safe_getattr(func, '__name__', None), extra_args, )
def get_overloads(func, is_method=False): if is_method: extra_args = [{ 'type': PythonScraper.type_to_typelist(object), 'name': 'self' }] else: extra_args = [] func_doc = safe_getattr(func, '__doc__', None) if not func_doc: return None return get_overloads_from_doc_string( func_doc, safe_getattr(func, '__module__', None), safe_getattr(func, '__objclass__', None), safe_getattr(func, '__name__', None), extra_args, )