Source code for dbeasyorm.query.query_counter

import time


[docs] class QueryCounter: __queries = [] __start_registration = False
[docs] @classmethod def start_registration(cls): cls.__start_registration = True
[docs] @classmethod def end_registration(cls): cls.__start_registration = False
[docs] @classmethod def register_query(cls, sql): if cls.__start_registration: cls.__queries.append(sql)
[docs] @classmethod def clear_queries(cls): cls.__queries = []
[docs] @classmethod def get_queries(cls): return cls.__queries
[docs] @classmethod def get_query_count(cls): return len(cls.__queries)
def __enter__(self): self.clear_queries() self.start_time = time.time() self.start_registration() print("Query logging started. Previous logs cleared.") return self def __exit__(self, exc_type, exc_value, traceback): self.end_registration() elapsed_time = time.time() - self.start_time print(f"Query logging ended. Total queries: {self.get_query_count()}") print("Queries: ") [print(query) for query in self.get_queries()] print(f"Elapsed time: {elapsed_time:.2f} seconds.") if exc_type: print(f"Error occurred: {exc_value}")