2014-09-16 2 views
0

Je tente de lire quelques fichiers HDF5 créés par les Pandas dans une application Web simple utilisant Bottle. Ce faisant, je reçois un DeprecationWarning lors de la lecture d'un HDFStore qui a été créé en dehors du serveur de l'application Bottle.Pandas lisant HDFStore en bouteille - DeprecationWarning?

Environnement:

  • OSX: 10.9.4
  • Python: 2.7.8 (homebrew)
  • pandas géants: 0.14.1
  • Bouteille: 0.12.7
  • tables: 3.1 .1

Voici un exemple de travail qui illustre le problème:

test-pandas.py

import pandas as pd 
import numpy as np 

df1 = pd.DataFrame(np.random.randn(20, 5),columns=['a', 'b', 'c', 'd', 'e']) 
df1.to_hdf('/tmp/df.hdf',key='dfkey',format='table',append=False,complib='blosc',complevel=9) 

Puis dans un autre fichier, nous avons:

test-bottle.py

import pandas as pd 
import bottle as bt 

app = bt.Bottle() 
@app.route('/test') 
def test(): 
    bt.response.set_header("Content-Type","application/json") 
    df2 = pd.read_hdf('/tmp/df.hdf','dfkey') 
    return df2.to_json(orient='split') 

app.run(host='localhost', port=8080, debug=True) 

Exécutez le serveur via python test-bottle.py et puis pointez un navigateur sur http://localhost:8080/test. Bouteille recrache les données de débogage suivantes:

Bottle v0.12.7 server starting up (using WSGIRefServer())... 
Listening on http://localhost:8080/ 
Hit Ctrl-C to quit. 

/usr/local/lib/python2.7/site-packages/pandas/io/pytables.py:533: DeprecationWarning: openFile() is pending deprecation, use open_file() instead. You may use the pt2to3 tool to update your source code. 
    self._handle = tables.openFile(self._path, self._mode, **kwargs) 
/usr/local/lib/python2.7/site-packages/pandas/io/pytables.py:1041: DeprecationWarning: getNode() is pending deprecation, use get_node() instead. You may use the pt2to3 tool to update your source code. 
    return self._handle.getNode(self.root, key) 
127.0.0.1 - - [16/Sep/2014 09:04:31] "GET /test HTTP/1.1" 200 1481 

Cependant, si vous deviez écrire à l'origine le HDFStore dans le même fichier source python comme l'application de la bouteille, test-bottle.py, aucun avertissement de dévalorisation apparaît. Est-ce un bug? Sinon, que se passe-t-il exactement ici?

Répondre

1

vous ne l'utilisez pas normalement avec DeprecationWarning activé. En tout cas, c'est un avertissement anodin de PyTables que l'API a changé (en 3.0.0) et éventuellement être changé. Pandas 0.15.0 (1 mois environ pour la publication) utilisera la nouvelle API et supprimera l'avertissement.

+0

Merci Jeff. Je me demande simplement pourquoi l'avertissement apparaît lorsque le HDFStore est créé en dehors du fichier d'application Bottle. Encore une fois, si je crée le magasin dans le même fichier que l'application Bottle, aucun avertissement n'apparaît. – bazel

Questions connexes