From 0a08b23b72aa1afcfe3425496cd6452f7e6724e8 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Fri, 18 Feb 2022 15:10:00 +0300 Subject: [PATCH] added utils.py with Singleton metaclass --- db/create.py | 5 +++-- utils.py | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 utils.py diff --git a/db/create.py b/db/create.py index 1cb7968..b4a1aea 100644 --- a/db/create.py +++ b/db/create.py @@ -13,7 +13,7 @@ Create database file and tables if not exists. |by_request | +---------------+ +--------------+ -* services table +* **services table** * **service_id:** service id *(integer primary key)*. * **token:** service token for access to api @@ -26,7 +26,7 @@ Create database file and tables if not exists. *(integer with 0 as default)*. * **by_request:** send notifications automatically or not *(integer with 0 as default)*. -* notifications table +* **notifications table** * **notification_id:** notification id *(integer primary key)*. * **service_id:** service id @@ -73,4 +73,5 @@ def create_tables_if_not_exists(dbfile: str) -> None: cursor.execute(CREATE_SERVICES_TABLE) cursor.execute(CREATE_NOTIFICATIONS_TABLE) connection.commit() + cursor.close() connection.close() diff --git a/utils.py b/utils.py new file mode 100644 index 0000000..e0c1366 --- /dev/null +++ b/utils.py @@ -0,0 +1,8 @@ +class Singleton(type): + """Singleton metaclass""" + _instances = {} + + def __call__(cls, *args, **kwargs): + if cls not in cls._instances: + cls._instances[cls] = super().__call__(*args, **kwargs) + return cls._instances[cls] \ No newline at end of file