dataframe-textual 2.3.0__tar.gz → 2.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/PKG-INFO +18 -15
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/README.md +17 -14
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/pyproject.toml +1 -1
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/common.py +7 -10
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/uv.lock +1 -1
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/.gitignore +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/1811.csv.gz +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/LICENSE +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/large_malformed.tsv.gz +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/main.py +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/__init__.py +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/__main__.py +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/data_frame_help_panel.py +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/data_frame_table.py +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/data_frame_viewer.py +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/sql_screen.py +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/table_screen.py +0 -0
- {dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/yes_no_screen.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dataframe-textual
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.1
|
|
4
4
|
Summary: Interactive terminal viewer/editor for tabular data
|
|
5
5
|
Project-URL: Homepage, https://github.com/need47/dataframe-textual
|
|
6
6
|
Project-URL: Repository, https://github.com/need47/dataframe-textual.git
|
|
@@ -39,7 +39,7 @@ Description-Content-Type: text/markdown
|
|
|
39
39
|
|
|
40
40
|
# DataFrame Textual
|
|
41
41
|
|
|
42
|
-
A powerful, interactive terminal-based viewer/editor for CSV/TSV/Excel/Parquet/JSON/NDJSON built with Python, [Polars](https://pola.rs/), and [Textual](https://textual.textualize.io/). Inspired by [VisiData](https://www.visidata.org/), this tool provides smooth keyboard navigation, data manipulation, and a clean interface for exploring tabular data directly in terminal with multi-tab support for multiple files!
|
|
42
|
+
A powerful, interactive terminal-based viewer/editor for CSV/TSV/PSV/Excel/Parquet/JSON/NDJSON built with Python, [Polars](https://pola.rs/), and [Textual](https://textual.textualize.io/). Inspired by [VisiData](https://www.visidata.org/), this tool provides smooth keyboard navigation, data manipulation, and a clean interface for exploring tabular data directly in terminal with multi-tab support for multiple files!
|
|
43
43
|
|
|
44
44
|

|
|
45
45
|
|
|
@@ -167,28 +167,31 @@ When multiple files are opened:
|
|
|
167
167
|
## Command Line Options
|
|
168
168
|
|
|
169
169
|
```
|
|
170
|
-
usage: dv [-h] [-f {csv,excel,
|
|
170
|
+
usage: dv [-h] [-V] [-f {csv,json,excel,ndjson,psv,parquet,tsv}] [-H] [-I] [-t] [-E] [-c [COMMENT_PREFIX]] [-q [QUOTE_CHAR]] [-l SKIP_LINES] [-a SKIP_ROWS_AFTER_HEADER] [-n NULL [NULL ...]] [files ...]
|
|
171
171
|
|
|
172
|
-
Interactive terminal based viewer/editor for tabular data (e.g., CSV/
|
|
172
|
+
Interactive terminal based viewer/editor for tabular data (e.g., CSV/Excel).
|
|
173
173
|
|
|
174
174
|
positional arguments:
|
|
175
|
-
files
|
|
175
|
+
files Files to view (or read from stdin)
|
|
176
176
|
|
|
177
177
|
options:
|
|
178
178
|
-h, --help show this help message and exit
|
|
179
|
-
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
-
|
|
179
|
+
-V, --version show program's version number and exit
|
|
180
|
+
-f, --format {csv,json,excel,ndjson,psv,parquet,tsv}
|
|
181
|
+
Specify the format of the input files (csv, excel, tsv etc.)
|
|
182
|
+
-H, --no-header Specify that input files have no header row when reading CSV/TSV
|
|
183
|
+
-I, --no-inference Do not infer data types when reading CSV/TSV
|
|
184
|
+
-t, --truncate-ragged-lines
|
|
185
|
+
Truncate ragged lines when reading CSV/TSV
|
|
183
186
|
-E, --ignore-errors Ignore errors when reading CSV/TSV
|
|
184
|
-
-c, --comment-prefix COMMENT_PREFIX
|
|
185
|
-
Comment lines are skipped when reading CSV/TSV
|
|
186
|
-
-q, --quote-char QUOTE_CHAR
|
|
187
|
-
Quote character for reading CSV/TSV
|
|
187
|
+
-c, --comment-prefix [COMMENT_PREFIX]
|
|
188
|
+
Comment lines are skipped when reading CSV/TSV
|
|
189
|
+
-q, --quote-char [QUOTE_CHAR]
|
|
190
|
+
Quote character for reading CSV/TSV
|
|
188
191
|
-l, --skip-lines SKIP_LINES
|
|
189
|
-
Skip lines when reading CSV/TSV
|
|
192
|
+
Skip lines when reading CSV/TSV
|
|
190
193
|
-a, --skip-rows-after-header SKIP_ROWS_AFTER_HEADER
|
|
191
|
-
Skip rows after header when reading CSV/TSV
|
|
194
|
+
Skip rows after header when reading CSV/TSV
|
|
192
195
|
-n, --null NULL [NULL ...]
|
|
193
196
|
Values to interpret as null values when reading CSV/TSV
|
|
194
197
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DataFrame Textual
|
|
2
2
|
|
|
3
|
-
A powerful, interactive terminal-based viewer/editor for CSV/TSV/Excel/Parquet/JSON/NDJSON built with Python, [Polars](https://pola.rs/), and [Textual](https://textual.textualize.io/). Inspired by [VisiData](https://www.visidata.org/), this tool provides smooth keyboard navigation, data manipulation, and a clean interface for exploring tabular data directly in terminal with multi-tab support for multiple files!
|
|
3
|
+
A powerful, interactive terminal-based viewer/editor for CSV/TSV/PSV/Excel/Parquet/JSON/NDJSON built with Python, [Polars](https://pola.rs/), and [Textual](https://textual.textualize.io/). Inspired by [VisiData](https://www.visidata.org/), this tool provides smooth keyboard navigation, data manipulation, and a clean interface for exploring tabular data directly in terminal with multi-tab support for multiple files!
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
@@ -128,28 +128,31 @@ When multiple files are opened:
|
|
|
128
128
|
## Command Line Options
|
|
129
129
|
|
|
130
130
|
```
|
|
131
|
-
usage: dv [-h] [-f {csv,excel,
|
|
131
|
+
usage: dv [-h] [-V] [-f {csv,json,excel,ndjson,psv,parquet,tsv}] [-H] [-I] [-t] [-E] [-c [COMMENT_PREFIX]] [-q [QUOTE_CHAR]] [-l SKIP_LINES] [-a SKIP_ROWS_AFTER_HEADER] [-n NULL [NULL ...]] [files ...]
|
|
132
132
|
|
|
133
|
-
Interactive terminal based viewer/editor for tabular data (e.g., CSV/
|
|
133
|
+
Interactive terminal based viewer/editor for tabular data (e.g., CSV/Excel).
|
|
134
134
|
|
|
135
135
|
positional arguments:
|
|
136
|
-
files
|
|
136
|
+
files Files to view (or read from stdin)
|
|
137
137
|
|
|
138
138
|
options:
|
|
139
139
|
-h, --help show this help message and exit
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
-
|
|
140
|
+
-V, --version show program's version number and exit
|
|
141
|
+
-f, --format {csv,json,excel,ndjson,psv,parquet,tsv}
|
|
142
|
+
Specify the format of the input files (csv, excel, tsv etc.)
|
|
143
|
+
-H, --no-header Specify that input files have no header row when reading CSV/TSV
|
|
144
|
+
-I, --no-inference Do not infer data types when reading CSV/TSV
|
|
145
|
+
-t, --truncate-ragged-lines
|
|
146
|
+
Truncate ragged lines when reading CSV/TSV
|
|
144
147
|
-E, --ignore-errors Ignore errors when reading CSV/TSV
|
|
145
|
-
-c, --comment-prefix COMMENT_PREFIX
|
|
146
|
-
Comment lines are skipped when reading CSV/TSV
|
|
147
|
-
-q, --quote-char QUOTE_CHAR
|
|
148
|
-
Quote character for reading CSV/TSV
|
|
148
|
+
-c, --comment-prefix [COMMENT_PREFIX]
|
|
149
|
+
Comment lines are skipped when reading CSV/TSV
|
|
150
|
+
-q, --quote-char [QUOTE_CHAR]
|
|
151
|
+
Quote character for reading CSV/TSV
|
|
149
152
|
-l, --skip-lines SKIP_LINES
|
|
150
|
-
Skip lines when reading CSV/TSV
|
|
153
|
+
Skip lines when reading CSV/TSV
|
|
151
154
|
-a, --skip-rows-after-header SKIP_ROWS_AFTER_HEADER
|
|
152
|
-
Skip rows after header when reading CSV/TSV
|
|
155
|
+
Skip rows after header when reading CSV/TSV
|
|
153
156
|
-n, --null NULL [NULL ...]
|
|
154
157
|
Values to interpret as null values when reading CSV/TSV
|
|
155
158
|
```
|
|
@@ -12,7 +12,7 @@ import polars as pl
|
|
|
12
12
|
from rich.text import Text
|
|
13
13
|
|
|
14
14
|
# Supported file formats
|
|
15
|
-
SUPPORTED_FORMATS =
|
|
15
|
+
SUPPORTED_FORMATS = ["tsv", "csv", "psv", "excel", "parquet", "json", "ndjson"]
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
# Boolean string mappings
|
|
@@ -529,7 +529,10 @@ def load_dataframe(
|
|
|
529
529
|
ext = Path(filename).suffix.lower()
|
|
530
530
|
if ext == ".gz":
|
|
531
531
|
ext = Path(filename).with_suffix("").suffix.lower()
|
|
532
|
+
|
|
532
533
|
fmt = ext.removeprefix(".")
|
|
534
|
+
if fmt in ("xls", "xlsx"):
|
|
535
|
+
fmt = "excel"
|
|
533
536
|
|
|
534
537
|
# Default to TSV
|
|
535
538
|
if not fmt or fmt not in SUPPORTED_FORMATS:
|
|
@@ -668,17 +671,11 @@ def load_file(
|
|
|
668
671
|
filename = f"stdin.{file_format}" if isinstance(source, StringIO) else source
|
|
669
672
|
filepath = Path(filename)
|
|
670
673
|
|
|
671
|
-
if not file_format:
|
|
672
|
-
ext = filepath.suffix.lower()
|
|
673
|
-
if ext == ".gz":
|
|
674
|
-
ext = Path(filename).with_suffix("").suffix.lower()
|
|
675
|
-
file_format = ext.removeprefix(".")
|
|
676
|
-
|
|
677
674
|
# Load based on file format
|
|
678
|
-
if file_format in ("csv", "tsv"):
|
|
675
|
+
if file_format in ("csv", "tsv", "psv"):
|
|
679
676
|
lf = pl.scan_csv(
|
|
680
677
|
source,
|
|
681
|
-
separator="\t" if file_format == "tsv" else ",",
|
|
678
|
+
separator="\t" if file_format == "tsv" else ("|" if file_format == "psv" else ","),
|
|
682
679
|
has_header=has_header,
|
|
683
680
|
infer_schema=infer_schema,
|
|
684
681
|
comment_prefix=comment_prefix,
|
|
@@ -691,7 +688,7 @@ def load_file(
|
|
|
691
688
|
truncate_ragged_lines=truncate_ragged_lines,
|
|
692
689
|
)
|
|
693
690
|
data.append(Source(lf, filename, filepath.stem))
|
|
694
|
-
elif file_format
|
|
691
|
+
elif file_format == "excel":
|
|
695
692
|
if first_sheet:
|
|
696
693
|
# Read only the first sheet for multiple files
|
|
697
694
|
lf = pl.read_excel(source).lazy()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/data_frame_help_panel.py
RENAMED
|
File without changes
|
{dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/data_frame_table.py
RENAMED
|
File without changes
|
{dataframe_textual-2.3.0 → dataframe_textual-2.4.1}/src/dataframe_textual/data_frame_viewer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|