Merge pull request #5 from aulojor/main
Json formatado, Criação de rows com baliza, baliza para deleção de rows, tempo adicionado ao TABLE_RET
This commit is contained in:
@@ -18,6 +18,7 @@ MENU ="""[1] Criar a base de dados
|
|||||||
[6] Guardar como JSON
|
[6] Guardar como JSON
|
||||||
[7] Guardar como CSV
|
[7] Guardar como CSV
|
||||||
[8] Estatísticas
|
[8] Estatísticas
|
||||||
|
[9] Criar uma entrada
|
||||||
|
|
||||||
[Q] Sair
|
[Q] Sair
|
||||||
"""
|
"""
|
||||||
@@ -35,7 +36,7 @@ def guardar_df(df: pd.DataFrame, fname: str) -> bool:
|
|||||||
def guardar_json(df: pd.DataFrame, fname: str) -> bool:
|
def guardar_json(df: pd.DataFrame, fname: str) -> bool:
|
||||||
with open(fname , "w") as fp:
|
with open(fname , "w") as fp:
|
||||||
try:
|
try:
|
||||||
df.to_json(fp)
|
df.to_json(fp, indent=4)
|
||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
@@ -128,12 +129,11 @@ def main():
|
|||||||
row_choice = _get_usr_input("Escolhe a linha a apagar:", int)
|
row_choice = _get_usr_input("Escolhe a linha a apagar:", int)
|
||||||
# TODO: balizar a escolha para apenas as linhas do evento em questao
|
# TODO: balizar a escolha para apenas as linhas do evento em questao
|
||||||
|
|
||||||
db = crud.delete_table_row(db, eid_choice, row_choice)
|
db, msg = crud.delete_table_row(db, eid_choice, row_choice)
|
||||||
new_table = crud.get_table(db, eid_choice)
|
new_table = crud.get_table(db, eid_choice)
|
||||||
crud.show_table(new_table)
|
crud.show_table(new_table)
|
||||||
print(f"Linha {row_choice} apagada com sucesso!")
|
print(msg)
|
||||||
input()
|
input()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
retInfo = "Base de dados não encontrada!"
|
retInfo = "Base de dados não encontrada!"
|
||||||
|
|
||||||
@@ -177,7 +177,31 @@ def main():
|
|||||||
stats.stat_menu(db)
|
stats.stat_menu(db)
|
||||||
else:
|
else:
|
||||||
retInfo = "Base de dados não encontrada!"
|
retInfo = "Base de dados não encontrada!"
|
||||||
|
|
||||||
|
case "9":
|
||||||
|
if db is not None:
|
||||||
|
crud.read_ids(db)
|
||||||
|
eid_choice = _get_usr_input("Escolhe o ID: ", int)
|
||||||
|
|
||||||
|
if not _event_exists(db, eid_choice):
|
||||||
|
retInfo = "ID do event não encontrado!"
|
||||||
|
|
||||||
|
else:
|
||||||
|
os.system("cls")
|
||||||
|
table = crud.get_table(db, eid_choice)
|
||||||
|
_prettify_event(table)
|
||||||
|
crud.show_table(table)
|
||||||
|
|
||||||
|
insertion_point = _get_usr_input("Posição da nova linha: ", int)
|
||||||
|
# TODO: balizar a escolha para apenas as linhas do evento em questao
|
||||||
|
|
||||||
|
db, msg = crud.create_table_row(db, eid_choice, insertion_point)
|
||||||
|
new_table = crud.get_table(db, eid_choice)
|
||||||
|
crud.show_table(new_table)
|
||||||
|
print(msg)
|
||||||
|
input()
|
||||||
|
else:
|
||||||
|
retInfo = "Base de dados não encontrada!"
|
||||||
case "q":
|
case "q":
|
||||||
isRunning = False
|
isRunning = False
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ pd.set_option('display.width', 150)
|
|||||||
# -- globals
|
# -- globals
|
||||||
|
|
||||||
HEADER_COLS = ["Data", "Distancia", "Tipo Ev", "Lat", "Long", "Prof", "Magnitudes"]
|
HEADER_COLS = ["Data", "Distancia", "Tipo Ev", "Lat", "Long", "Prof", "Magnitudes"]
|
||||||
TABLE_READ_RET = ["Estacao","Componente","", "Amplitude"]
|
TABLE_READ_RET = ["Estacao", "Hora", "Min", "Seg", "Componente", "Amplitude"]
|
||||||
|
|
||||||
# -- helper funcs
|
# -- helper funcs
|
||||||
|
|
||||||
@@ -95,8 +95,16 @@ def delete_event(df, event_id):
|
|||||||
|
|
||||||
def delete_table_row(df, event_id, row_number):
|
def delete_table_row(df, event_id, row_number):
|
||||||
# Apaga uma linha específica da tabela do evento
|
# Apaga uma linha específica da tabela do evento
|
||||||
|
# Cria uma nova linha vazia no dataframe na posição insertion_point
|
||||||
|
matching_indices = df.index[df['ID'] == event_id].tolist()
|
||||||
|
|
||||||
|
first_event_row = matching_indices[0]
|
||||||
|
last_event_row = matching_indices[-1]
|
||||||
|
|
||||||
|
if row_number < first_event_row or row_number > last_event_row:
|
||||||
|
return df, f"Erro: A posição a apagar, {row_number} está fora do intervalo permitido para o evento {event_id}."
|
||||||
new_df = df.drop([row_number]).reset_index(drop=True)
|
new_df = df.drop([row_number]).reset_index(drop=True)
|
||||||
return new_df
|
return new_df, f"Linha {row_choice} apagada com sucesso!"
|
||||||
|
|
||||||
|
|
||||||
def create_blank_event(df, event_id):
|
def create_blank_event(df, event_id):
|
||||||
@@ -113,7 +121,32 @@ def create_blank_event(df, event_id):
|
|||||||
return new_df
|
return new_df
|
||||||
|
|
||||||
|
|
||||||
def create_table_row(df, event_id, row_number_1):
|
def create_table_row(df, event_id, insertion_point):
|
||||||
|
# Cria uma nova linha vazia no dataframe na posição insertion_point
|
||||||
|
matching_indices = df.index[df['ID'] == event_id].tolist()
|
||||||
|
|
||||||
|
first_event_row = matching_indices[0]
|
||||||
|
last_event_row = matching_indices[-1]
|
||||||
|
|
||||||
|
if insertion_point < first_event_row or insertion_point > last_event_row + 1:
|
||||||
|
return df, f"Erro: A posição de inserção {insertion_point} está fora do intervalo permitido para o evento {event_id}"
|
||||||
|
|
||||||
|
new_row_df = pd.DataFrame(columns=df.columns, index=[0])
|
||||||
|
new_row_df['ID'] = event_id
|
||||||
|
new_row_df = new_row_df.fillna(0)
|
||||||
|
new_row_df = new_row_df.astype(df.dtypes)
|
||||||
|
|
||||||
|
df_before = df.iloc[:insertion_point]
|
||||||
|
df_after = df.iloc[insertion_point:]
|
||||||
|
|
||||||
|
new_df = pd.concat([df_before, new_row_df, df_after], ignore_index=True)
|
||||||
|
|
||||||
|
return new_df, f"Linha inserida com sucesso na posição {insertion_point}"
|
||||||
|
|
||||||
|
def create_entire_database() -> pd.DataFrame:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def create_table_row_old(df, event_id, row_number_1):
|
||||||
event_rows = df[df["ID"] == event_id]
|
event_rows = df[df["ID"] == event_id]
|
||||||
if event_rows.empty:
|
if event_rows.empty:
|
||||||
return df, f"Erro: Evento com ID {event_id} não encontrado."
|
return df, f"Erro: Evento com ID {event_id} não encontrado."
|
||||||
@@ -136,6 +169,3 @@ def create_table_row(df, event_id, row_number_1):
|
|||||||
|
|
||||||
return new_df, f"Linha inserida com sucesso na posição {row_number_1} do evento {event_id}."
|
return new_df, f"Linha inserida com sucesso na posição {row_number_1} do evento {event_id}."
|
||||||
|
|
||||||
def create_entire_database() -> pd.DataFrame:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user