Commit a556561b2f29098bf54d022e59ad47f04199a7a8

Authored by Mathias
1 parent 9c2436a4f7
Exists in master

Basic data management functionalities added, with an init file empty.

Showing 1 changed file with 44 additions and 0 deletions Side-by-side Diff

  1 +'''
  2 +Data management input/output
  3 +'''
  4 +
  5 +# Import packages and modules
  6 +import numpy as np
  7 +
  8 +# Defining some types
  9 +from typing import List, Dict
  10 +KeyToList = Dict[str, List[str]]
  11 +KeyToFeatures = Dict[str, List[float]]
  12 +
  13 +
  14 +def read_lst(file_path: str) -> KeyToList:
  15 + '''
  16 + Read lst file with this structure:
  17 + [id] [value1] [value2] ... [value n]
  18 +
  19 + This is a basic function reused by others like read_features.
  20 + returns a dictionary with id as key and a list of value as corresponding values
  21 + '''
  22 + # KeyToList type variable
  23 + key_to_list = dict()
  24 + with open(file_path, "r") as f:
  25 + for line in f:
  26 + splited = line.replace("\n", "").split(" ")
  27 + id = splited[0]
  28 + values = splited[1:]
  29 + key_to_list[id] = values
  30 + return key_to_list
  31 +
  32 +
  33 +def read_features(file_path: str) -> KeyToFeatures:
  34 + '''
  35 + '''
  36 + # KeyToFeatures type variable
  37 + key_to_features = dict()
  38 + # and the KeyToList
  39 + key_to_list = read_lst(file_path)
  40 +
  41 + for key_, list_ in key_to_list.items():
  42 + key_to_features[key_] = np.asarray(list_, dtype=float)
  43 +
  44 + return key_to_features