"""a small module to deal with side files"""

# import glob
import os
# import sys
# import shutil
# import traceback

import filer
from requests.utils import unquote

class Saifi:

    def __init__(self, erimp, do_verbose=False):
        self.e = erimp
        return None

    def read(self, repcode, issuedate):
        fudi = self.e.report[repcode].dirs['mocla']
        fufi = fudi + '/' + issuedate + '.side'
        if not os.path.isfile(fufi):
            print("saifi: no such file {fufi}")
            return None
        return self.parse(fufi)
        #side_lines = filer.read_as_lines(fufi)
        #evals = {}
        #for side_line in side_lines:
        #    parts = side_line.partition('\t')
        #    # # the side file should not contain a blank but it does on
        #    # # 2025-05-11. The .strip() should not be required
        #    evals[parts[2][:-1].strip()] = float(parts[0])
        # return evals

    def parse(self, fufi):
        side_lines = filer.read_as_lines(fufi)
        evals = {}
        for side_line in side_lines:
            parts = side_line.partition('\t')
            # # the side file should not contain a blank but it does on
            # # 2025-05-11. The .strip() should not be required
            evals[unquote(parts[2][:-1].strip())] = float(parts[0])
        return evals

#        side_file = open(side_fufi, 'w')
#        while count < len(predi_lines):
#            predi_parts = predi_lines[count].split(' ')
#            proba = predi_parts[plus_pos]
#            # # predi starts with a header labels 1 -1
#            #try:
#            line = proba + '\t' + papid_lines[count]
#            #except IndexError:
#            #    print("mocla can not read line {count} in {predi_fufi}",
#            #          file=sys.stderr)
#            #    break
#            side_file.write(line)
#            count += 1
#        side_file.close()
#        return side_fufi
