shshemi / tabiew

A lightweight TUI application to view and query tabular data files, such as CSV, TSV, or parquet.
MIT License
541 stars 14 forks source link

ability of edit rows #22

Open technologicalsingularity opened 2 weeks ago

technologicalsingularity commented 2 weeks ago

Hey, Shayan! Your tabiew is great ! It works fine, it opens and processes big parquet files. What do you think about editing feature? I know that parquet not allow update operations directly, but because of fact that opened parquet file already loaded into memory (as I think) (because of memory usage not a problem in modern computers), may you please add feature like that: a user in "v" mode see a row as a sheet, edit a cell field in opened sheet, toggle "v" and in rendered table mode we may see text changes? Then a user may export existing modified table as usual or reset changes. What do you think about that ?

shshemi commented 1 week ago

Hey, Tech! I'm glad that you found Tabiew helpful. I think it will be a useful full feature. However, with the current state of the app, the implementation would take a lot of time. Furthermore, some nuances would require more pondering. For instance, if a user enters a string for a column that was detected as int, should the app change the column type or reject the input? Nonetheless, I have added the feature to the backlog to work on it in the feature.

technologicalsingularity commented 1 week ago

I think that if entered "int" into column with type "str" the app must convert entered data into "str" type (like 1 to "1"), because of column type priority is higher than a things a user thinks about ). Do you allow me to contribute into your nice tabiew to implement that feature ? When I will have time I'll try to commit and ask you what are you think about that.

shshemi commented 1 week ago

My concern was more about when a column type is int and user inputs a string. Should the app change the column type or reject the input?

technologicalsingularity commented 1 week ago

If an user input string in int column I think the app must reject input. Because of there are other data exists in that column and user must not corrupt data entered early.

shshemi commented 1 week ago

I would not suggest to contribute to the project at the moment since I am refactoring Tabiew. However, if you can keep your feature branch up-to-date with main, then go head.

technologicalsingularity commented 1 week ago

Ok, thank you.