mirror of
https://github.com/kennethreitz/tablib.git
synced 2026-06-05 23:10:17 +00:00
Merge pull request #47 from VanL/develop
Add detect function in _xls. Update yaml, csv, and tsv detection functio...
This commit is contained in:
@@ -51,5 +51,5 @@ def detect(stream):
|
||||
try:
|
||||
csv.Sniffer().sniff(stream)
|
||||
return True
|
||||
except csv.Error:
|
||||
return False
|
||||
except (csv.Error, TypeError):
|
||||
return False
|
||||
|
||||
@@ -55,5 +55,5 @@ def detect(stream):
|
||||
try:
|
||||
csv.Sniffer().sniff(stream, delimiters='\t')
|
||||
return True
|
||||
except csv.Error:
|
||||
except (csv.Error, TypeError):
|
||||
return False
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
import sys
|
||||
|
||||
from tablib.compat import BytesIO, xlwt
|
||||
from tablib.packages import xlrd
|
||||
from tablib.packages.xlrd.biffh import XLRDError
|
||||
import tablib
|
||||
|
||||
title = 'xls'
|
||||
@@ -16,6 +18,24 @@ wrap = xlwt.easyxf("alignment: wrap on")
|
||||
bold = xlwt.easyxf("font: bold on")
|
||||
|
||||
|
||||
def detect(stream):
|
||||
"""Returns True if given stream is a readable excel file."""
|
||||
try:
|
||||
xlrd.open_workbook(file_contents=stream)
|
||||
return True
|
||||
except (TypeError, XLRDError):
|
||||
pass
|
||||
try:
|
||||
xlrd.open_workbook(file_contents=stream.read())
|
||||
return True
|
||||
except (AttributeError, XLRDError):
|
||||
pass
|
||||
try:
|
||||
xlrd.open_workbook(filename=stream)
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
||||
|
||||
def export_set(dataset):
|
||||
"""Returns XLS representation of Dataset."""
|
||||
|
||||
@@ -60,5 +60,5 @@ def detect(stream):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
except yaml.parser.ParserError:
|
||||
return False
|
||||
except (yaml.parser.ParserError, yaml.reader.ReaderError):
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user