Source code for attachtags.attachtags
"""Main module."""
import os
import platform
import pickle
from .parserbuilder import COMMANDS, build_parser
from .tagmaps import TagMaps
from .argtomap import arg_to_map
if platform.system() == "Windows":
ATTACHTAGS_PATH = os.environ.get('USERPROFILE') + '\\.attachtags'
elif platform.system() == "Linux":
ATTACHTAGS_PATH = os.environ.get('HOME') + '\\.attachtags'
PICKLE_PATH = ATTACHTAGS_PATH + '\\contents.pickle'
FILE_PATH = os.getcwd()
[docs]def create_default_maps(tag_maps):
pass
[docs]def dump_pickle(tag_maps: TagMaps):
with open(PICKLE_PATH, "wb") as f:
pickle.dump(tag_maps, file=f)
[docs]def create_default_dir():
os.mkdir(ATTACHTAGS_PATH)
tag_maps = TagMaps()
create_default_maps(tag_maps)
dump_pickle(tag_maps)
return tag_maps
[docs]def load_pickle() -> TagMaps:
with open(PICKLE_PATH, 'rb') as f:
tag_maps = pickle.load(f)
return tag_maps
def _main():
parser = build_parser()
args = parser.parse_args()
try:
tag_maps = load_pickle()
assert type(tag_maps) is TagMaps
except FileNotFoundError or AssertionError:
tag_maps = create_default_dir()
if args.list:
map_ = tag_maps.get_map()
for tag in map_.keys():
print(f'{tag}:\n - '+'\n - '.join(map_[tag]))
else:
assert args.key_ in COMMANDS
arg_to_map(args, tag_maps)
dump_pickle(tag_maps)
# print(args.__dict__)
# print(args.__dict__.keys())
# print(tag_maps.get_map())
if __name__ == "__main__":
_main()