bonjour
je cherche comment on peut récupérer une erreur avec gadfly
le cas précis c :
reconnexion sur une base gadfly déjà existante, si la base a été
déplacée, ou si il y a une erreur sur le nom de la base donné dans
l'instruction, ou sur le répertoire
gadfly.gadfly("mesdata","répertoire de la base mesdata")
on reçoit dans la figure une vieille volée d'injures !
alors faire fonctionner les exceptions la dessus ou comment tester
auparavant la validité du nom de la base et du nom du répertoire ?
voilà
merci d'avance
philippe
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
bruno modulix
philippe wrote:
bonjour je cherche comment on peut récupérer une erreur avec gadfly le cas précis c : reconnexion sur une base gadfly déjà existante, si la base a été déplacée, ou si il y a une erreur sur le nom de la base donné dans l'instruction,
s/instruction/appel de fonction/
ou sur le répertoire gadfly.gadfly("mesdata","répertoire de la base mesdata") on reçoit dans la figure une vieille volée d'injures !
Et si tu postais le traceback ?
alors faire fonctionner les exceptions la dessus
Comme d'habitude: try: var = ouvre_connection(donnees_connection) except LeTypeExceptionQuiVaBien, e: gere_exception(e) else: travaille_avec(var) var.close()
Dans ton cas:
try: db = gadfly.gadfly("mesdata","répertoire/de/la/base/") except IOError, e: print >> sys.stderr, "could not open a connection to database mesdata" sys.exit(1) else: do_something_with(db)
ou comment tester auparavant la validité du nom de la base et du nom du répertoire ?
De rien, de rien... Si tu prenais quelques minutes pour lire le joli manuel ?-)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
philippe wrote:
bonjour
je cherche comment on peut récupérer une erreur avec gadfly
le cas précis c :
reconnexion sur une base gadfly déjà existante, si la base a été
déplacée, ou si il y a une erreur sur le nom de la base donné dans
l'instruction,
s/instruction/appel de fonction/
ou sur le répertoire
gadfly.gadfly("mesdata","répertoire de la base mesdata")
on reçoit dans la figure une vieille volée d'injures !
Et si tu postais le traceback ?
alors faire fonctionner les exceptions la dessus
Comme d'habitude:
try:
var = ouvre_connection(donnees_connection)
except LeTypeExceptionQuiVaBien, e:
gere_exception(e)
else:
travaille_avec(var)
var.close()
Dans ton cas:
try:
db = gadfly.gadfly("mesdata","répertoire/de/la/base/")
except IOError, e:
print >> sys.stderr, "could not open a connection to database mesdata"
sys.exit(1)
else:
do_something_with(db)
ou comment tester
auparavant la validité du nom de la base et du nom du répertoire ?
bonjour je cherche comment on peut récupérer une erreur avec gadfly le cas précis c : reconnexion sur une base gadfly déjà existante, si la base a été déplacée, ou si il y a une erreur sur le nom de la base donné dans l'instruction,
s/instruction/appel de fonction/
ou sur le répertoire gadfly.gadfly("mesdata","répertoire de la base mesdata") on reçoit dans la figure une vieille volée d'injures !
Et si tu postais le traceback ?
alors faire fonctionner les exceptions la dessus
Comme d'habitude: try: var = ouvre_connection(donnees_connection) except LeTypeExceptionQuiVaBien, e: gere_exception(e) else: travaille_avec(var) var.close()
Dans ton cas:
try: db = gadfly.gadfly("mesdata","répertoire/de/la/base/") except IOError, e: print >> sys.stderr, "could not open a connection to database mesdata" sys.exit(1) else: do_something_with(db)
ou comment tester auparavant la validité du nom de la base et du nom du répertoire ?
De rien, de rien... Si tu prenais quelques minutes pour lire le joli manuel ?-)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
philippe
In article <431ff628$0$9593$, bruno modulix wrote:
philippe wrote:
bonjour je cherche comment on peut récupérer une erreur avec gadfly le cas précis c : reconnexion sur une base gadfly déjà existante, si la base a été déplacée, ou si il y a une erreur sur le nom de la base donné dans l'instruction,
s/instruction/appel de fonction/ d'accord, ça assainit
ou sur le répertoire gadfly.gadfly("mesdata","répertoire de la base mesdata") on reçoit dans la figure une vieille volée d'injures !
Et si tu postais le traceback ?
alors faire fonctionner les exceptions la dessus
Comme d'habitude: try: var = ouvre_connection(donnees_connection) except LeTypeExceptionQuiVaBien, e: gere_exception(e) else: travaille_avec(var) var.close() oui le prob se situait pour moi au type d'exception
Dans ton cas:
try: db = gadfly.gadfly("mesdata","répertoire/de/la/base/") except IOError, e: print >> sys.stderr, "could not open a connection to database mesdata" sys.exit(1) else: do_something_with(db) d'accord mais je croyais qu'il pouvait y avoir des exceptions
spécifiques générées par gadfly .....
ou comment tester auparavant la validité du nom de la base et du nom du répertoire ?
os.path.isdir('path/to/dir') os.path.isfile('path/to/file') d'accord aussi, mais je me suis mal exprimé : je pensais que le module
gadfly avait une ou des méthodes pour faire ça sans aller voir à la main si les fichiers existent... Le problème c par exemple si je veux pouvoir ajouter des données à une base gadfly la première fois il faut que crée la base la fois suivante il faut que je teste si la base est là pour pouvoir ajouter des données...
voilà merci d'avance
De rien, de rien... Si tu prenais quelques minutes pour lire le joli manuel ?-) oui je suis justement en train de lire LE manuel de G Swinnen (très
didactique par ailleurs ) mais je n'ai rien vu par rapport au test de la présence d'une base et j'ai aussi cherché google : python gadfly method ( et autres requêtes du même genre) sans trouver la réponse à ma question; et la doc qui vient avec le module gadfly n'est pas très éclairante (enfin pour moi :-)
Merci de ta réponse philippe
In article <431ff628$0$9593$636a15ce@news.free.fr>, bruno modulix
<onurb@xiludom.gro> wrote:
philippe wrote:
bonjour
je cherche comment on peut récupérer une erreur avec gadfly
le cas précis c :
reconnexion sur une base gadfly déjà existante, si la base a été
déplacée, ou si il y a une erreur sur le nom de la base donné dans
l'instruction,
s/instruction/appel de fonction/
d'accord, ça assainit
ou sur le répertoire
gadfly.gadfly("mesdata","répertoire de la base mesdata")
on reçoit dans la figure une vieille volée d'injures !
Et si tu postais le traceback ?
alors faire fonctionner les exceptions la dessus
Comme d'habitude:
try:
var = ouvre_connection(donnees_connection)
except LeTypeExceptionQuiVaBien, e:
gere_exception(e)
else:
travaille_avec(var)
var.close()
oui le prob se situait pour moi au type d'exception
Dans ton cas:
try:
db = gadfly.gadfly("mesdata","répertoire/de/la/base/")
except IOError, e:
print >> sys.stderr, "could not open a connection to database mesdata"
sys.exit(1)
else:
do_something_with(db)
d'accord mais je croyais qu'il pouvait y avoir des exceptions
spécifiques générées par gadfly .....
ou comment tester
auparavant la validité du nom de la base et du nom du répertoire ?
os.path.isdir('path/to/dir')
os.path.isfile('path/to/file')
d'accord aussi, mais je me suis mal exprimé : je pensais que le module
gadfly avait une ou des méthodes pour faire ça sans aller voir à la
main si les fichiers existent...
Le problème c par exemple si je veux pouvoir ajouter des données à une
base gadfly la première fois il faut que crée la base la fois suivante
il faut que je teste si la base est là pour pouvoir ajouter des
données...
voilà
merci d'avance
De rien, de rien...
Si tu prenais quelques minutes pour lire le joli manuel ?-)
oui je suis justement en train de lire LE manuel de G Swinnen (très
didactique par ailleurs ) mais je n'ai rien vu par rapport au test de
la présence d'une base et j'ai aussi cherché google :
python gadfly method ( et autres requêtes du même genre) sans trouver
la réponse à ma question; et la doc qui vient avec le module gadfly
n'est pas très éclairante (enfin pour moi :-)
In article <431ff628$0$9593$, bruno modulix wrote:
philippe wrote:
bonjour je cherche comment on peut récupérer une erreur avec gadfly le cas précis c : reconnexion sur une base gadfly déjà existante, si la base a été déplacée, ou si il y a une erreur sur le nom de la base donné dans l'instruction,
s/instruction/appel de fonction/ d'accord, ça assainit
ou sur le répertoire gadfly.gadfly("mesdata","répertoire de la base mesdata") on reçoit dans la figure une vieille volée d'injures !
Et si tu postais le traceback ?
alors faire fonctionner les exceptions la dessus
Comme d'habitude: try: var = ouvre_connection(donnees_connection) except LeTypeExceptionQuiVaBien, e: gere_exception(e) else: travaille_avec(var) var.close() oui le prob se situait pour moi au type d'exception
Dans ton cas:
try: db = gadfly.gadfly("mesdata","répertoire/de/la/base/") except IOError, e: print >> sys.stderr, "could not open a connection to database mesdata" sys.exit(1) else: do_something_with(db) d'accord mais je croyais qu'il pouvait y avoir des exceptions
spécifiques générées par gadfly .....
ou comment tester auparavant la validité du nom de la base et du nom du répertoire ?
os.path.isdir('path/to/dir') os.path.isfile('path/to/file') d'accord aussi, mais je me suis mal exprimé : je pensais que le module
gadfly avait une ou des méthodes pour faire ça sans aller voir à la main si les fichiers existent... Le problème c par exemple si je veux pouvoir ajouter des données à une base gadfly la première fois il faut que crée la base la fois suivante il faut que je teste si la base est là pour pouvoir ajouter des données...
voilà merci d'avance
De rien, de rien... Si tu prenais quelques minutes pour lire le joli manuel ?-) oui je suis justement en train de lire LE manuel de G Swinnen (très
didactique par ailleurs ) mais je n'ai rien vu par rapport au test de la présence d'une base et j'ai aussi cherché google : python gadfly method ( et autres requêtes du même genre) sans trouver la réponse à ma question; et la doc qui vient avec le module gadfly n'est pas très éclairante (enfin pour moi :-)
Merci de ta réponse philippe
bruno modulix
philippe wrote:
In article <431ff628$0$9593$, bruno modulix wrote:
philippe wrote:
(snip)
gadfly.gadfly("mesdata","répertoire de la base mesdata") on reçoit dans la figure une vieille volée d'injures !
Et si tu postais le traceback ?
J'insiste là-dessus : il a fallu que j'installe Gadfly pour voir ce que tu obtenais, alors que tu avais l'info sous la main. Les traceback ne sont pas des volées d'injures, ce sont des infos de débuggage.
alors faire fonctionner les exceptions la dessus
Comme d'habitude: try: var = ouvre_connection(donnees_connection) except LeTypeExceptionQuiVaBien, e: gere_exception(e) else: travaille_avec(var) var.close()
oui le prob se situait pour moi au type d'exception
C'est dans le traceback !-)
Dans ton cas:
try: db = gadfly.gadfly("mesdata","répertoire/de/la/base/") except IOError, e: print >> sys.stderr, "could not open a connection to database mesdata" sys.exit(1) else: do_something_with(db)
d'accord mais je croyais qu'il pouvait y avoir des exceptions spécifiques générées par gadfly .....
C'est fort possible pour d'autres cas, mais en l'occurrence, le traceback disait "IOError", ce qui est assez logique dans la mesure où il s'agit d'un fichier ou répertoire non trouvé... ce que le message du traceback te signalait aussi, en toutes lettres :
IOError: [Errno 2] No such file or directory: '/chemin/vers/nombase/nombase.gfd'
ou comment tester auparavant la validité du nom de la base et du nom du répertoire ?
d'accord aussi, mais je me suis mal exprimé : je pensais que le module gadfly avait une ou des méthodes pour faire ça
Qu'est-ce qu'elle en ferait ? Si le fichier n'existe pas, ça lève une IOError, ce qui est en l'occurrence l'information nécessaire et suffisante.
sans aller voir à la main si les fichiers existent...
Pourquoi ? Une base Gadfly, c'est des fichiers dans un répertoire, et la stdlib fourni déjà tout le nécessaire pour gérer ça. Par ailleurs, le paquetage ne peut pas deviner ce que tu va vouloir faire dans ce cas précis, donc...
Le problème c par exemple si je veux pouvoir ajouter des données à une base gadfly la première fois il faut que crée la base la fois suivante il faut que je teste si la base est là pour pouvoir ajouter des données...
Oui, c'est un problème classique (fichiers, entrées dans un dictionnaire, etc). les deux solutions possibles sont 1/ tenter d'utiliser sans se poser de question, et récupérer si problème 2/ regarder d'abord si la ressource existe, sinon le créer
Tu retrouvera très souvent cette problématique. Si les probabilités sont en faveur de l'existence de la ressource, choisis la première solution, sinon la seconde. Ici, tu es bien évidemment dans le premier cas: en général, on ne crée la base qu'une fois, et on l'utilise plusieurs fois !-)
Si tu prenais quelques minutes pour lire le joli manuel ?-)
oui je suis justement en train de lire LE manuel de G Swinnen (très didactique par ailleurs ) mais je n'ai rien vu par rapport au test de la présence d'une base
Bin voilà, t'a trouvé : si la base n'existe pas, tu a une IOError !-p
et j'ai aussi cherché google : python gadfly method ( et autres requêtes du même genre) sans trouver la réponse à ma question; et la doc qui vient avec le module gadfly n'est pas très éclairante (enfin pour moi :-)
Elle est assez claire[1] sur le fait qu'une base Gadfly est un ensemble de fichiers dans un répertoire, sur la façon de créer une base, et sur la façon de se connecter à une base existante. Pour ce qui est de se connecter (enfin, de tenter de...) à une base inexistante, tu a vu par toi même ce que ça donnait.
[1] enfin, pour moi en tous cas... mais c'est peut-être aussi une question de pratique, c'est sûr que si tu débutes en programmation, ce n'est pas forcément si évident.
Bon, pour résumer:
dbname = 'mabase' dbpath = "chemin/vers/mabase"
try: db = gadfly.gadfly(dbname, dbpath) except IOError, e: if e.errno == 2: # no such file or directory: print >> sys.stderr, "creation de %s dans %s" % (dbname, dbpath) db = gadfly.gadfly() db.startup('mabase', 'chemin/vers/mabase') else: raise
Merci de ta réponse You're welcome.
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
philippe wrote:
In article <431ff628$0$9593$636a15ce@news.free.fr>, bruno modulix
<onurb@xiludom.gro> wrote:
philippe wrote:
(snip)
gadfly.gadfly("mesdata","répertoire de la base mesdata")
on reçoit dans la figure une vieille volée d'injures !
Et si tu postais le traceback ?
J'insiste là-dessus : il a fallu que j'installe Gadfly pour voir ce que
tu obtenais, alors que tu avais l'info sous la main. Les traceback ne
sont pas des volées d'injures, ce sont des infos de débuggage.
alors faire fonctionner les exceptions la dessus
Comme d'habitude:
try:
var = ouvre_connection(donnees_connection)
except LeTypeExceptionQuiVaBien, e:
gere_exception(e)
else:
travaille_avec(var)
var.close()
oui le prob se situait pour moi au type d'exception
C'est dans le traceback !-)
Dans ton cas:
try:
db = gadfly.gadfly("mesdata","répertoire/de/la/base/")
except IOError, e:
print >> sys.stderr, "could not open a connection to database mesdata"
sys.exit(1)
else:
do_something_with(db)
d'accord mais je croyais qu'il pouvait y avoir des exceptions
spécifiques générées par gadfly .....
C'est fort possible pour d'autres cas, mais en l'occurrence, le
traceback disait "IOError", ce qui est assez logique dans la mesure où
il s'agit d'un fichier ou répertoire non trouvé... ce que le message du
traceback te signalait aussi, en toutes lettres :
IOError: [Errno 2] No such file or directory:
'/chemin/vers/nombase/nombase.gfd'
ou comment tester
auparavant la validité du nom de la base et du nom du répertoire ?
d'accord aussi, mais je me suis mal exprimé : je pensais que le module
gadfly avait une ou des méthodes pour faire ça
Qu'est-ce qu'elle en ferait ? Si le fichier n'existe pas, ça lève une
IOError, ce qui est en l'occurrence l'information nécessaire et
suffisante.
sans aller voir à la
main si les fichiers existent...
Pourquoi ? Une base Gadfly, c'est des fichiers dans un répertoire, et la
stdlib fourni déjà tout le nécessaire pour gérer ça. Par ailleurs, le
paquetage ne peut pas deviner ce que tu va vouloir faire dans ce cas
précis, donc...
Le problème c par exemple si je veux pouvoir ajouter des données à une
base gadfly la première fois il faut que crée la base la fois suivante
il faut que je teste si la base est là pour pouvoir ajouter des
données...
Oui, c'est un problème classique (fichiers, entrées dans un
dictionnaire, etc). les deux solutions possibles sont
1/ tenter d'utiliser sans se poser de question, et récupérer si problème
2/ regarder d'abord si la ressource existe, sinon le créer
Tu retrouvera très souvent cette problématique. Si les probabilités sont
en faveur de l'existence de la ressource, choisis la première solution,
sinon la seconde. Ici, tu es bien évidemment dans le premier cas: en
général, on ne crée la base qu'une fois, et on l'utilise plusieurs fois !-)
Si tu prenais quelques minutes pour lire le joli manuel ?-)
oui je suis justement en train de lire LE manuel de G Swinnen (très
didactique par ailleurs ) mais je n'ai rien vu par rapport au test de
la présence d'une base
Bin voilà, t'a trouvé : si la base n'existe pas, tu a une IOError !-p
et j'ai aussi cherché google :
python gadfly method ( et autres requêtes du même genre) sans trouver
la réponse à ma question; et la doc qui vient avec le module gadfly
n'est pas très éclairante (enfin pour moi :-)
Elle est assez claire[1] sur le fait qu'une base Gadfly est un ensemble
de fichiers dans un répertoire, sur la façon de créer une base, et sur
la façon de se connecter à une base existante. Pour ce qui est de se
connecter (enfin, de tenter de...) à une base inexistante, tu a vu par
toi même ce que ça donnait.
[1] enfin, pour moi en tous cas... mais c'est peut-être aussi une
question de pratique, c'est sûr que si tu débutes en programmation, ce
n'est pas forcément si évident.
Bon, pour résumer:
dbname = 'mabase'
dbpath = "chemin/vers/mabase"
try:
db = gadfly.gadfly(dbname, dbpath)
except IOError, e:
if e.errno == 2: # no such file or directory:
print >> sys.stderr, "creation de %s dans %s" % (dbname, dbpath)
db = gadfly.gadfly()
db.startup('mabase', 'chemin/vers/mabase')
else:
raise
Merci de ta réponse
You're welcome.
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
In article <431ff628$0$9593$, bruno modulix wrote:
philippe wrote:
(snip)
gadfly.gadfly("mesdata","répertoire de la base mesdata") on reçoit dans la figure une vieille volée d'injures !
Et si tu postais le traceback ?
J'insiste là-dessus : il a fallu que j'installe Gadfly pour voir ce que tu obtenais, alors que tu avais l'info sous la main. Les traceback ne sont pas des volées d'injures, ce sont des infos de débuggage.
alors faire fonctionner les exceptions la dessus
Comme d'habitude: try: var = ouvre_connection(donnees_connection) except LeTypeExceptionQuiVaBien, e: gere_exception(e) else: travaille_avec(var) var.close()
oui le prob se situait pour moi au type d'exception
C'est dans le traceback !-)
Dans ton cas:
try: db = gadfly.gadfly("mesdata","répertoire/de/la/base/") except IOError, e: print >> sys.stderr, "could not open a connection to database mesdata" sys.exit(1) else: do_something_with(db)
d'accord mais je croyais qu'il pouvait y avoir des exceptions spécifiques générées par gadfly .....
C'est fort possible pour d'autres cas, mais en l'occurrence, le traceback disait "IOError", ce qui est assez logique dans la mesure où il s'agit d'un fichier ou répertoire non trouvé... ce que le message du traceback te signalait aussi, en toutes lettres :
IOError: [Errno 2] No such file or directory: '/chemin/vers/nombase/nombase.gfd'
ou comment tester auparavant la validité du nom de la base et du nom du répertoire ?
d'accord aussi, mais je me suis mal exprimé : je pensais que le module gadfly avait une ou des méthodes pour faire ça
Qu'est-ce qu'elle en ferait ? Si le fichier n'existe pas, ça lève une IOError, ce qui est en l'occurrence l'information nécessaire et suffisante.
sans aller voir à la main si les fichiers existent...
Pourquoi ? Une base Gadfly, c'est des fichiers dans un répertoire, et la stdlib fourni déjà tout le nécessaire pour gérer ça. Par ailleurs, le paquetage ne peut pas deviner ce que tu va vouloir faire dans ce cas précis, donc...
Le problème c par exemple si je veux pouvoir ajouter des données à une base gadfly la première fois il faut que crée la base la fois suivante il faut que je teste si la base est là pour pouvoir ajouter des données...
Oui, c'est un problème classique (fichiers, entrées dans un dictionnaire, etc). les deux solutions possibles sont 1/ tenter d'utiliser sans se poser de question, et récupérer si problème 2/ regarder d'abord si la ressource existe, sinon le créer
Tu retrouvera très souvent cette problématique. Si les probabilités sont en faveur de l'existence de la ressource, choisis la première solution, sinon la seconde. Ici, tu es bien évidemment dans le premier cas: en général, on ne crée la base qu'une fois, et on l'utilise plusieurs fois !-)
Si tu prenais quelques minutes pour lire le joli manuel ?-)
oui je suis justement en train de lire LE manuel de G Swinnen (très didactique par ailleurs ) mais je n'ai rien vu par rapport au test de la présence d'une base
Bin voilà, t'a trouvé : si la base n'existe pas, tu a une IOError !-p
et j'ai aussi cherché google : python gadfly method ( et autres requêtes du même genre) sans trouver la réponse à ma question; et la doc qui vient avec le module gadfly n'est pas très éclairante (enfin pour moi :-)
Elle est assez claire[1] sur le fait qu'une base Gadfly est un ensemble de fichiers dans un répertoire, sur la façon de créer une base, et sur la façon de se connecter à une base existante. Pour ce qui est de se connecter (enfin, de tenter de...) à une base inexistante, tu a vu par toi même ce que ça donnait.
[1] enfin, pour moi en tous cas... mais c'est peut-être aussi une question de pratique, c'est sûr que si tu débutes en programmation, ce n'est pas forcément si évident.
Bon, pour résumer:
dbname = 'mabase' dbpath = "chemin/vers/mabase"
try: db = gadfly.gadfly(dbname, dbpath) except IOError, e: if e.errno == 2: # no such file or directory: print >> sys.stderr, "creation de %s dans %s" % (dbname, dbpath) db = gadfly.gadfly() db.startup('mabase', 'chemin/vers/mabase') else: raise
Merci de ta réponse You're welcome.
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"