File size: 1,805 Bytes
61841c2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from __future__ import annotations

from dataclasses import dataclass
from pathlib import Path

import pandas as pd


@dataclass(frozen=True)
class DataBundle:
    df_base: pd.DataFrame
    df_culturas_pragas: pd.DataFrame
    diag_base_col: str
    diag_trat_col: str
    trat1_col: str | None
    trat2_col: str | None
    trat3_col: str | None


def _first_existing_column(df: pd.DataFrame, candidates: list[str]) -> str | None:
    for col in candidates:
        if col in df.columns:
            return col
    return None


def load_csv_data(base_csv_path: str | Path, culturas_csv_path: str | Path) -> DataBundle:
    df_base = pd.read_csv(base_csv_path)
    df_culturas_pragas = pd.read_csv(culturas_csv_path)

    diag_base_col = _first_existing_column(
        df_base, ["DIAGNÓSTICO", "DIAGNOSTICO", "Diagnostico", "Diagnóstico"]
    )
    diag_trat_col = _first_existing_column(
        df_culturas_pragas, ["Categoria da Praga", "Diagnostico", "Diagnóstico"]
    )
    trat1_col = _first_existing_column(
        df_culturas_pragas, ["Tratamento Nível 1 (Orgânico)", "Tratamento Nível 1"]
    )
    trat2_col = _first_existing_column(
        df_culturas_pragas, ["Tratamento Nível 2 (Genérico)", "Tratamento Nível 2"]
    )
    trat3_col = _first_existing_column(
        df_culturas_pragas,
        ["Tratamento Nível 3 (Agrotóxico Controlado)", "Tratamento Nível 3"],
    )

    if diag_base_col is None or diag_trat_col is None:
        raise ValueError("Colunas de diagnóstico não encontradas nas planilhas.")

    return DataBundle(
        df_base=df_base,
        df_culturas_pragas=df_culturas_pragas,
        diag_base_col=diag_base_col,
        diag_trat_col=diag_trat_col,
        trat1_col=trat1_col,
        trat2_col=trat2_col,
        trat3_col=trat3_col,
    )