pr-omethe-us / PyKED

Python interface to the ChemKED database format
https://pr-omethe-us.github.io/PyKED/
BSD 3-Clause "New" or "Revised" License
15 stars 15 forks source link

UnicodeDecodeError in ChemKED.__init__ (chemked.py line 67) #51

Closed rwest closed 7 years ago

rwest commented 7 years ago

Code sample, preferably able to be copy-pasted and run with no changes

Running butanol_comparison test_performance.py 20 on an iMac with this conda list:

# packages in environment at /Users/rwest/anaconda/envs/py3:
#
_license                  1.1                      py36_1  
alabaster                 0.7.9                    py36_0  
anaconda                  4.3.1               np111py36_0  
anaconda-client           1.6.0                    py36_0  
anaconda-navigator        1.5.0                    py36_0  
anaconda-project          0.4.1                    py36_0  
appnope                   0.1.0                    py36_0  
appscript                 1.0.1                    py36_0  
astroid                   1.4.9                    py36_0  
astropy                   1.3                 np111py36_0  
babel                     2.3.4                    py36_0  
backports                 1.0                      py36_0  
beautifulsoup4            4.5.3                    py36_0  
bitarray                  0.8.1                    py36_0  
blaze                     0.10.1                   py36_0  
bokeh                     0.12.4                   py36_0  
boto                      2.45.0                   py36_0  
bottleneck                1.2.0               np111py36_0  
cantera                   2.3.0               np111py36_1    cantera
cerberus                  1.1                      py36_0    conda-forge
cffi                      1.9.1                    py36_0  
chardet                   2.3.0                    py36_0  
chest                     0.2.3                    py36_0  
click                     6.7                      py36_0  
cloudpickle               0.2.2                    py36_0  
clyent                    1.2.2                    py36_0  
colorama                  0.3.7                    py36_0  
configobj                 5.0.6                    py36_0  
contextlib2               0.5.4                    py36_0  
cryptography              1.7.1                    py36_0  
curl                      7.52.1                        0  
cycler                    0.10.0                   py36_0  
cython                    0.25.2                   py36_0  
cytoolz                   0.8.2                    py36_0  
dask                      0.13.0                   py36_0  
datashape                 0.5.4                    py36_0  
decorator                 4.0.11                   py36_0  
dill                      0.2.5                    py36_0  
docutils                  0.13.1                   py36_0  
entrypoints               0.2.2                    py36_0  
et_xmlfile                1.0.1                    py36_0  
fastcache                 1.0.2                    py36_1  
flask                     0.12                     py36_0  
flask-cors                3.0.2                    py36_0  
freetype                  2.5.5                         2  
get_terminal_size         1.0.0                    py36_0  
gevent                    1.2.1                    py36_0  
greenlet                  0.4.11                   py36_0  
h5py                      2.6.0               np111py36_2  
habanero                  0.2.6                    py36_0    conda-forge
hdf5                      1.8.17                        1  
heapdict                  1.0.0                    py36_1  
icu                       54.1                          0  
idna                      2.2                      py36_0  
imagesize                 0.7.1                    py36_0  
ipykernel                 4.5.2                    py36_0  
ipython                   5.1.0                    py36_1  
ipython_genutils          0.1.0                    py36_0  
ipywidgets                5.2.2                    py36_1  
isort                     4.2.5                    py36_0  
itsdangerous              0.24                     py36_0  
jbig                      2.1                           0  
jdcal                     1.3                      py36_0  
jedi                      0.9.0                    py36_1  
jinja2                    2.9.4                    py36_0  
jpeg                      9b                            0  
jsonschema                2.5.1                    py36_0  
jupyter                   1.0.0                    py36_3  
jupyter_client            4.4.0                    py36_0  
jupyter_console           5.0.0                    py36_0  
jupyter_core              4.2.1                    py36_0  
lazy-object-proxy         1.2.2                    py36_0  
libiconv                  1.14                          0  
libpng                    1.6.27                        0  
libtiff                   4.0.6                         3  
libxml2                   2.9.4                         0  
libxslt                   1.1.29                        0  
llvmlite                  0.15.0                   py36_0  
locket                    0.2.0                    py36_1  
lxml                      3.7.2                    py36_0  
markupsafe                0.23                     py36_2  
matplotlib                2.0.0               np111py36_0  
mistune                   0.7.3                    py36_1  
mkl                       2017.0.1                      0  
mkl-service               1.1.2                    py36_3  
mpmath                    0.19                     py36_1  
multipledispatch          0.4.9                    py36_0  
nbconvert                 4.2.0                    py36_0  
nbformat                  4.2.0                    py36_0  
networkx                  1.11                     py36_0  
nltk                      3.2.2                    py36_0  
nose                      1.3.7                    py36_1  
notebook                  4.3.1                    py36_0  
numba                     0.30.1              np111py36_0  
numexpr                   2.6.1               np111py36_2  
numpy                     1.11.3                   py36_0  
numpydoc                  0.6.0                    py36_0  
odo                       0.5.0                    py36_1  
openpyxl                  2.4.1                    py36_0  
openssl                   1.0.2k                        1  
orcid                     0.7.0                    py36_0    conda-forge
pandas                    0.19.2              np111py36_1  
partd                     0.3.7                    py36_0  
path.py                   10.0                     py36_0  
pathlib2                  2.2.0                    py36_0  
patsy                     0.4.1                    py36_0  
pep8                      1.7.0                    py36_0  
pexpect                   4.2.1                    py36_0  
pickleshare               0.7.4                    py36_0  
pillow                    4.0.0                    py36_0  
pint                      0.8.0                    py36_0    conda-forge
pip                       9.0.1                    py36_1  
ply                       3.9                      py36_0  
prompt_toolkit            1.0.9                    py36_0  
psutil                    5.0.1                    py36_0  
ptyprocess                0.5.1                    py36_0  
py                        1.4.32                   py36_0  
pyasn1                    0.1.9                    py36_0  
pycosat                   0.6.1                    py36_1  
pycparser                 2.17                     py36_0  
pycrypto                  2.6.1                    py36_4  
pycurl                    7.43.0                   py36_2  
pyflakes                  1.5.0                    py36_0  
pygments                  2.1.3                    py36_0  
pyked                     0.1.4                    py36_0    pr-omethe-us
pylint                    1.6.4                    py36_1  
pyopenssl                 16.2.0                   py36_0  
pyparsing                 2.1.4                    py36_0  
pyqt                      5.6.0                    py36_1  
pytables                  3.3.0               np111py36_0  
pyteck                    0.2.2a3             np111py36_0    kyleniemeyer
pytest                    3.0.5                    py36_0  
python                    3.6.0                         0  
python-dateutil           2.6.0                    py36_0  
python.app                1.2                      py36_4  
pytz                      2016.10                  py36_0  
pyyaml                    3.12                     py36_0  
pyzmq                     16.0.2                   py36_0  
qt                        5.6.2                         0  
qtawesome                 0.4.3                    py36_0  
qtconsole                 4.2.1                    py36_1  
qtpy                      1.2.1                    py36_0  
readline                  6.2                           2  
redis                     3.2.0                         0  
redis-py                  2.10.5                   py36_0  
requests                  2.12.4                   py36_0  
rope                      0.9.4                    py36_1  
ruamel_yaml               0.11.14                  py36_1  
scikit-image              0.12.3              np111py36_1  
scikit-learn              0.18.1              np111py36_1  
scipy                     0.18.1              np111py36_1  
seaborn                   0.7.1                    py36_0  
setuptools                27.2.0                   py36_0  
simplegeneric             0.8.1                    py36_1  
simplejson                3.10.0                   py36_0  
singledispatch            3.4.0.3                  py36_0  
sip                       4.18                     py36_0  
six                       1.10.0                   py36_0  
snowballstemmer           1.2.1                    py36_0  
sockjs-tornado            1.0.3                    py36_0  
sphinx                    1.5.1                    py36_0  
spyder                    3.1.2                    py36_0  
sqlalchemy                1.1.5                    py36_0  
sqlite                    3.13.0                        0  
statsmodels               0.6.1               np111py36_1  
sympy                     1.0                      py36_0  
terminado                 0.6                      py36_0  
tk                        8.5.18                        0  
toolz                     0.8.2                    py36_0  
tornado                   4.4.2                    py36_0  
traitlets                 4.3.1                    py36_0  
uncertainties             3.0.1                    py36_0    conda-forge
unicodecsv                0.14.1                   py36_0  
wcwidth                   0.1.7                    py36_0  
werkzeug                  0.11.15                  py36_0  
wheel                     0.29.0                   py36_0  
widgetsnbextension        1.2.6                    py36_0  
wrapt                     1.10.8                   py36_0  
xlrd                      1.0.0                    py36_0  
xlsxwriter                0.9.6                    py36_0  
xlwings                   0.10.2                   py36_0  
xlwt                      1.2.0                    py36_0  
xz                        5.2.2                         1  
yaml                      0.1.6                         0  
zlib                      1.2.8                         3 

Expected behavior

Actual behavior, including any error messages

Done with case  Stranic2012_40atm_nbutanol_0
Done with case  Stranic2012_40atm_nbutanol_1
Done with case  Stranic2012_40atm_nbutanol_2
Traceback (most recent call last):
  File "test_performance.py", line 50, in <module>
    skip_validation=True
  File "/Users/rwest/anaconda/envs/py3/lib/python3.6/site-packages/pyteck/eval_model.py", line 249, in evaluate_model   
    properties = ChemKED(os.path.join(data_path, dataset), skip_validation=skip_validation)
  File "/Users/rwest/anaconda/envs/py3/lib/python3.6/site-packages/pyked/chemked.py", line 67, in __init__
    properties = yaml.safe_load(f)
  File "/Users/rwest/anaconda/envs/py3/lib/python3.6/site-packages/yaml/__init__.py", line 94, in safe_load
    return load(stream, SafeLoader)
  File "/Users/rwest/anaconda/envs/py3/lib/python3.6/site-packages/yaml/__init__.py", line 70, in load
    loader = Loader(stream)
  File "/Users/rwest/anaconda/envs/py3/lib/python3.6/site-packages/yaml/loader.py", line 24, in __init__
    Reader.__init__(self, stream)
  File "/Users/rwest/anaconda/envs/py3/lib/python3.6/site-packages/yaml/reader.py", line 85, in __init__
    self.determine_encoding()
  File "/Users/rwest/anaconda/envs/py3/lib/python3.6/site-packages/yaml/reader.py", line 124, in determine_encoding
    self.update_raw()
  File "/Users/rwest/anaconda/envs/py3/lib/python3.6/site-packages/yaml/reader.py", line 178, in update_raw
    data = self.stream.read(size)
  File "/Users/rwest/anaconda/envs/py3/lib/python3.6/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)

PyKED/ChemKED version, Python version, OS version

bryanwweber commented 7 years ago

@rwest @kyleniemeyer Can you post the actual file that causes this error?

kyleniemeyer commented 7 years ago

So what's weird is that on my systems, the same file had no problem...

bryanwweber commented 7 years ago

@rwest @kyleniemeyer Is this still reproducible?