Skip to content

Commit 20f71e3

Browse files
committed
✨ make Config class singleton
1 parent 7c15b1e commit 20f71e3

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

code_counter/conf/config.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,22 @@ def default(self, obj):
1212
return json.JSONEncoder.default(self, obj)
1313

1414

15-
class Config:
15+
class SingletonMeta(type):
16+
_instance = {}
1617

18+
def __call__(cls, *args, **kwargs):
19+
if cls not in cls._instance:
20+
cls._instance[cls] = super(SingletonMeta, cls).__call__(*args, **kwargs)
21+
return cls._instance[cls]
22+
23+
24+
class Config(metaclass=SingletonMeta):
1725
def __init__(self):
1826
conf = self.__load()
1927

20-
self.suffix = set(conf['suffix'])
21-
self.comment = set(conf['comment'])
22-
self.ignore = set(conf['ignore'])
28+
self.suffix: set = set(conf['suffix'])
29+
self.comment: set = set(conf['comment'])
30+
self.ignore: set = set(conf['ignore'])
2331

2432
def invoke(self, args):
2533
if args.restore:

0 commit comments

Comments
 (0)