defl/defl/_tracker_.py
2024-09-11 11:14:03 -04:00

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__})