| package loaders |
|
|
| import ( |
| "os" |
| "fmt" |
| "strconv" |
| "io/ioutil" |
| "encoding/csv" |
| "encoding/json" |
| ) |
|
|
| type Scalers struct { |
| MinValue map[string]float32 `json:"min_value"` |
| MaxValue map[string]float32 `json:"max_value"` |
| } |
|
|
| func ScalersLoader(filename string) (Scalers, error) { |
| var scalers_data Scalers |
|
|
| scalers_json, err := ioutil.ReadFile(filename) |
| if err != nil { return scalers_data, err } |
|
|
| err = json.Unmarshal(scalers_json, &scalers_data) |
| if err != nil { return scalers_data, err } |
|
|
| return scalers_data, nil |
| } |
|
|
| func DatasetLoader(filepath string) ([][]interface{}, error) { |
| csv_file, err := os.Open(filepath) |
| if err != nil { |
| return nil, err |
| } |
| defer csv_file.Close() |
|
|
| csv_reader := csv.NewReader(csv_file) |
| csv_records, err := csv_reader.ReadAll() |
| if err != nil { |
| return nil, err |
| } |
|
|
| var csv_data [][]interface{} |
| for _, csv_row := range csv_records[1:] { |
| var row_data []interface{} |
|
|
| |
| row_data = append(row_data, csv_row[0]) |
|
|
| |
| for _, csv_row_val := range csv_row[1:] { |
| val, err := strconv.ParseFloat(csv_row_val, 32) |
| if err != nil { |
| return nil, fmt.Errorf("error parsing value '%s': %v", csv_row_val, err) |
| } |
| row_data = append(row_data, float32(val)) |
| } |
|
|
| csv_data = append(csv_data, row_data) |
| } |
|
|
| return csv_data, nil |
| } |
|
|
|
|
|
|