mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-09-29 13:24:12 +02:00
progressbar for inserts/upserts of all fileformats, closes #485
This commit is contained in:
parent
d9b9e075f0
commit
5fd78e27d2
2 changed files with 31 additions and 26 deletions
|
|
@ -953,6 +953,7 @@ def insert_upsert_implementation(
|
||||||
decoded = io.TextIOWrapper(file, encoding=encoding)
|
decoded = io.TextIOWrapper(file, encoding=encoding)
|
||||||
|
|
||||||
tracker = None
|
tracker = None
|
||||||
|
with file_progress(decoded, silent=silent) as decoded:
|
||||||
if csv or tsv:
|
if csv or tsv:
|
||||||
if sniff:
|
if sniff:
|
||||||
# Read first 2048 bytes and use that to detect
|
# Read first 2048 bytes and use that to detect
|
||||||
|
|
@ -960,7 +961,6 @@ def insert_upsert_implementation(
|
||||||
dialect = csv_std.Sniffer().sniff(first_bytes.decode(encoding, "ignore"))
|
dialect = csv_std.Sniffer().sniff(first_bytes.decode(encoding, "ignore"))
|
||||||
else:
|
else:
|
||||||
dialect = "excel-tab" if tsv else "excel"
|
dialect = "excel-tab" if tsv else "excel"
|
||||||
with file_progress(decoded, silent=silent) as decoded:
|
|
||||||
csv_reader_args = {"dialect": dialect}
|
csv_reader_args = {"dialect": dialect}
|
||||||
if delimiter:
|
if delimiter:
|
||||||
csv_reader_args["delimiter"] = delimiter
|
csv_reader_args["delimiter"] = delimiter
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,11 @@ class UpdateWrapper:
|
||||||
self._update(len(line))
|
self._update(len(line))
|
||||||
yield line
|
yield line
|
||||||
|
|
||||||
|
def read(self, size=-1):
|
||||||
|
data = self._wrapped.read(size)
|
||||||
|
self._update(len(data))
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
def file_progress(file, silent=False, **kwargs):
|
def file_progress(file, silent=False, **kwargs):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue