Merge pull request #47 from VanL/develop

Add detect function in _xls. Update yaml, csv, and tsv detection functio...
This commit is contained in:
Kenneth Reitz
2012-01-05 21:37:51 -08:00
4 changed files with 25 additions and 5 deletions
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+20
View File
@@ -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."""
+2 -2
View File
@@ -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