Progress bar for "sqlite-utils extract", closes #169

This commit is contained in:
Simon Willison 2020-09-22 17:02:29 -07:00
commit 5c4d58d152
3 changed files with 26 additions and 3 deletions

View file

@ -1006,6 +1006,12 @@ def transform(
multiple=True,
help="Rename this column in extracted table",
)
@click.option(
"-s",
"--silent",
is_flag=True,
help="Don't show progress bar",
)
def extract(
path,
table,
@ -1013,12 +1019,24 @@ def extract(
other_table,
fk_column,
rename,
silent,
):
"Extract one or more columns into a separate table"
db = sqlite_utils.Database(path)
db[table].extract(
columns, table=other_table, fk_column=fk_column, rename=dict(rename)
kwargs = dict(
columns=columns,
table=other_table,
fk_column=fk_column,
rename=dict(rename),
)
if silent:
db[table].extract(**kwargs)
else:
with click.progressbar(
length=db[table].count, label="Extracting columns"
) as bar:
kwargs["progress"] = bar.update
db[table].extract(**kwargs)
@cli.command(name="insert-files")