mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-23 17:34:32 +02:00
parent
ce670e2d44
commit
0cee77b176
3 changed files with 24 additions and 14 deletions
|
|
@ -6,6 +6,7 @@ import hashlib
|
|||
import pathlib
|
||||
import sqlite_utils
|
||||
from sqlite_utils.db import AlterError, BadMultiValues, DescIndex
|
||||
from sqlite_utils.utils import maximize_csv_field_size_limit
|
||||
from sqlite_utils import recipes
|
||||
import textwrap
|
||||
import inspect
|
||||
|
|
@ -46,17 +47,7 @@ If you do not know the encoding, running 'file filename.csv' may tell you.
|
|||
It's often worth trying: --encoding=latin-1
|
||||
""".strip()
|
||||
|
||||
|
||||
# Increase CSV field size limit to maximum possible
|
||||
# https://stackoverflow.com/a/15063941
|
||||
field_size_limit = sys.maxsize
|
||||
|
||||
while True:
|
||||
try:
|
||||
csv_std.field_size_limit(field_size_limit)
|
||||
break
|
||||
except OverflowError:
|
||||
field_size_limit = int(field_size_limit / 10)
|
||||
maximize_csv_field_size_limit()
|
||||
|
||||
|
||||
def output_options(fn):
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import io
|
|||
import itertools
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
from . import recipes
|
||||
from typing import Dict, cast, BinaryIO, Iterable, Optional, Tuple, Type
|
||||
|
||||
|
|
@ -29,6 +30,24 @@ SPATIALITE_PATHS = (
|
|||
"/usr/local/lib/mod_spatialite.dylib",
|
||||
)
|
||||
|
||||
# Mainly so we can restore it if needed in the tests:
|
||||
ORIGINAL_CSV_FIELD_SIZE_LIMIT = csv.field_size_limit()
|
||||
|
||||
|
||||
def maximize_csv_field_size_limit():
|
||||
"""
|
||||
Increase the CSV field size limit to the maximum possible.
|
||||
"""
|
||||
# https://stackoverflow.com/a/15063941
|
||||
field_size_limit = sys.maxsize
|
||||
|
||||
while True:
|
||||
try:
|
||||
csv.field_size_limit(field_size_limit)
|
||||
break
|
||||
except OverflowError:
|
||||
field_size_limit = int(field_size_limit / 10)
|
||||
|
||||
|
||||
def find_spatialite() -> Optional[str]:
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue