def __init__(self, get_response: Callable[[HttpRequest], HttpResponse]) -> None:
super().__init__(get_response)
configuration = {
'PROFILING_DIR': os.getenv('PROFILING_DIR', '.profile'),
'PROFILING_ENABLED': os.getenv('PROFILING_ENABLED', 'False') == 'True',
'PROFILING_MAX_FILES': int(os.getenv('PROFILING_MAX_FILES', '10')),
'PROFILE_THRESHOLD': float(os.getenv('PROFILE_THRESHOLD', '0')),
}
directory = configuration.get('PROFILING_DIR', '.profile')
if isinstance(directory, str):
if not Path(directory).is_absolute():
current = Path.cwd()
base = getattr(settings, 'BASE_DIR', current)
directory = Path(base) / directory
else:
directory = Path(directory)
self.directory = Path(directory)
self.directory.mkdir(exist_ok=True)
self.enabled = configuration.get('PROFILING_ENABLED', False)
self.threshold = configuration.get('PROFILE_THRESHOLD', 0)
self.maximum = configuration.get('PROFILING_MAX_FILES', 10)
self.count = 0
self.lock = threading.Lock()