This commit is contained in:
2022-11-08 21:19:51 +01:00
commit 4c456eafc3
160 changed files with 21472 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
import inspect
import sys
from typing import Callable
def find_class(func: Callable):
"""
basé sur inspect._findclass mais plus robuste et qui prend en compte les fonctions locales
note : la fonction doit avoir un module sinon None est renvoyé (ex : str => None)
"""
cls = sys.modules.get(getattr(func, '__module__', None))
if cls is None:
return None
for name in func.__qualname__.split('.')[:-1]:
if name != '<locals>':
cls = getattr(cls, name, None)
if not inspect.isclass(cls):
return None
return cls