Adding the path to '.settings.pkl' file, this is especailly useful for MacOS. Then we can put '.settings.pkl' into 'MacOS' folder within 'labelImg.app'. The App will crash without path setting, as soon as we close the App in MacOS.
34 lines
813 B
Python
34 lines
813 B
Python
import pickle
|
|
import os
|
|
import sys
|
|
|
|
class Settings(object):
|
|
def __init__(self):
|
|
self.data = {}
|
|
self.path = os.path.join(os.path.dirname(sys.argv[0]), '.settings.pkl')
|
|
|
|
def __setitem__(self, key, value):
|
|
self.data[key] = value
|
|
|
|
def __getitem__(self, key):
|
|
return self.data[key]
|
|
|
|
def get(self, key, default=None):
|
|
if key in self.data:
|
|
return self.data[key]
|
|
return default
|
|
|
|
def save(self):
|
|
with open(self.path, 'wb') as f:
|
|
pickle.dump(self.data, f, pickle.HIGHEST_PROTOCOL)
|
|
return True
|
|
return False
|
|
|
|
def load(self):
|
|
if os.path.exists(self.path):
|
|
with open(self.path, 'rb') as f:
|
|
self.data = pickle.load(f)
|
|
return True
|
|
return False
|
|
|