Skip to content

Commit

Permalink
2.9.049
Browse files Browse the repository at this point in the history
  • Loading branch information
chapmanjacobd committed Sep 10, 2024
1 parent 70b6574 commit 952511b
Show file tree
Hide file tree
Showing 11 changed files with 58 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ To stop playing press Ctrl+C in either the terminal or mpv
<details><summary>List all subcommands</summary>

$ library
library (v2.9.048; 86 subcommands)
library (v2.9.049; 86 subcommands)

Create database subcommands:
╭─────────────────┬──────────────────────────────────────────╮
Expand Down
6 changes: 6 additions & 0 deletions tests/tablefiles/test_markdown_tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,9 @@ def test_lb_markdown_tables_transpose(mock_stdin, assert_unchanged, capsys):
lb(["markdown-tables", "--from-json", "--transpose", "--to-json"])
captured = capsys.readouterr().out
assert_unchanged([json.loads(s) for s in captured.splitlines()])


def test_lb_markdown_tables_skip_header(assert_unchanged, capsys):
lb(["markdown-tables", "--skip-header", "--start-row=1", "--to-json", "tests/data/test.xlsx"])
captured = capsys.readouterr().out
assert_unchanged([json.loads(s) for s in captured.splitlines()])
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
- column0: 0
column1: 1
column2: 3
column3: 5
- column0: 1
column1: 2
column2: 4
column3: 6
2 changes: 1 addition & 1 deletion xklb/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from xklb.utils import argparse_utils, iterables
from xklb.utils.log_utils import log

__version__ = "2.9.048"
__version__ = "2.9.049"

progs = {
"Create database subcommands": {
Expand Down
1 change: 1 addition & 0 deletions xklb/createdb/tables_add.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ def table_add(args, path):
mimetype=args.mimetype,
join_tables=args.join_tables,
transpose=args.transpose,
skip_headers=args.skip_headers,
)
for i, df in enumerate(dfs):
if args.table_rename:
Expand Down
1 change: 1 addition & 0 deletions xklb/tablefiles/columns.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ def file_columns(args, path):
mimetype=args.mimetype,
join_tables=args.join_tables,
transpose=args.transpose,
skip_headers=args.skip_headers,
):
df_name = df.name

Expand Down
1 change: 1 addition & 0 deletions xklb/tablefiles/eda.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ def file_eda(args, path):
mimetype=args.mimetype,
join_tables=args.join_tables,
transpose=args.transpose,
skip_headers=args.skip_headers,
)
if getattr(args, "repl", False):
breakpoint()
Expand Down
1 change: 1 addition & 0 deletions xklb/tablefiles/markdown_tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ def file_markdown(args, path):
mimetype=args.mimetype,
join_tables=args.join_tables,
transpose=args.transpose,
skip_headers=args.skip_headers,
):
if getattr(args, "repl", False):
breakpoint()
Expand Down
1 change: 1 addition & 0 deletions xklb/tablefiles/mcda.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ def file_mcda(args, path):
mimetype=args.mimetype,
join_tables=args.join_tables,
transpose=args.transpose,
skip_headers=args.skip_headers,
)

for df in dfs:
Expand Down
1 change: 1 addition & 0 deletions xklb/utils/arggroups.py
Original file line number Diff line number Diff line change
Expand Up @@ -1323,6 +1323,7 @@ def table_like(parent_parser):
parser.add_argument("--table-name", "--table", "-t", help="Load from a specific table by name")
parser.add_argument("--table-index", type=int, help="Load from a specific table by index")
parser.add_argument("--table-rename", "--rename-table", "--as-table-name", help="Load to specific table by name")
parser.add_argument("--skip-headers", "--ignore-headers", action="store_true")
parser.add_argument("--start-row", "--skiprows", type=int, default=None, help="Skip reading N rows")
parser.add_argument(
"--end-row",
Expand Down
40 changes: 36 additions & 4 deletions xklb/utils/file_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -466,6 +466,7 @@ def read_file_to_dataframes(
mimetype=None,
join_tables=False,
transpose=False,
skip_headers=False,
):
import pandas as pd

Expand Down Expand Up @@ -508,7 +509,13 @@ def read_file_to_dataframes(
"excel spreadsheet subheader",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
):
excel_data = pd.read_excel(path, sheet_name=table_name or table_index, nrows=end_row, skiprows=start_row)
excel_data = pd.read_excel(
path,
sheet_name=table_name or table_index,
nrows=end_row,
skiprows=start_row,
header=None if skip_headers else 0,
)
dfs = []
if isinstance(excel_data, pd.DataFrame):
worksheet_names = excel_data.index.levels[0] # type: ignore
Expand Down Expand Up @@ -549,21 +556,43 @@ def read_file_to_dataframes(
"csv",
"text/csv",
):
dfs = [pd.read_csv(path, nrows=end_row, skiprows=start_row or 0, encoding=encoding)]
dfs = [
pd.read_csv(
path, nrows=end_row, skiprows=start_row or 0, encoding=encoding, header=None if skip_headers else 0
)
]
elif mimetype in (
"plain",
"plaintext",
"wsv",
"text/wsv",
"text/whitespace-separated-values",
):
dfs = [pd.read_csv(path, delim_whitespace=True, nrows=end_row, skiprows=start_row or 0, encoding=encoding)]
dfs = [
pd.read_csv(
path,
delim_whitespace=True,
nrows=end_row,
skiprows=start_row or 0,
encoding=encoding,
header=None if skip_headers else 0,
)
]
elif mimetype in (
"tsv",
"text/tsv",
"text/tab-separated-values",
):
dfs = [pd.read_csv(path, delimiter="\t", nrows=end_row, skiprows=start_row or 0, encoding=encoding)]
dfs = [
pd.read_csv(
path,
delimiter="\t",
nrows=end_row,
skiprows=start_row or 0,
encoding=encoding,
header=None if skip_headers else 0,
)
]
elif mimetype in ("parq", "parquet", "application/parquet"):
dfs = [pd.read_parquet(path)]
elif mimetype in ("pkl", "pickle", "application/octet-stream"):
Expand Down Expand Up @@ -618,6 +647,9 @@ def read_file_to_dataframes(
if not hasattr(df, "name"):
df.name = str(table_index_as_name)

if skip_headers:
df.columns = [f"column{i}" for i in range(len(df.columns))]

if transpose:

def t(df):
Expand Down

0 comments on commit 952511b

Please sign in to comment.