52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
import atexit
|
|
import itertools
|
|
import os
|
|
import select
|
|
|
|
import toml
|
|
from ._logger_ import log
|
|
from ._path_ import Path
|
|
from ._ansii_ import cl
|
|
|
|
# TODO depricate
|
|
class Tracker:
|
|
__slots__ = ('path', 'fp', 'data')
|
|
|
|
def __init__(_, path):
|
|
defl.depricateWarning()
|
|
data = {}
|
|
if os.path.isfile(path):
|
|
with open(path, 'r', encoding='utf8') as fp:
|
|
data = fp.read()
|
|
data = data.split('\n')
|
|
data = list(filter(lambda x: x, data))
|
|
data = [x.strip() for x in data]
|
|
data = {x: True for x in data}
|
|
else:
|
|
open(path, 'w', encoding='utf8').close()
|
|
_.path = path
|
|
_.data = data
|
|
_.fp = open(path, 'a', encoding='utf8')
|
|
|
|
@atexit.register
|
|
def onExit():
|
|
_.fp.flush()
|
|
_.fp.close()
|
|
|
|
def add(_, entry):
|
|
_.data[entry] = True
|
|
_.fp.write(entry + '\n')
|
|
_.fp.flush()
|
|
|
|
def __getitem__(_, key):
|
|
return _.data[key]
|
|
|
|
def get(_, key):
|
|
return _.data.get(key)
|
|
|
|
def __str__(_):
|
|
return str({k: _.__getattribute__(k) for k in _.__slots__})
|
|
|
|
def __repr__(_):
|
|
return str({k: _.__getattribute__(k) for k in _.__slots__})
|