Jump to content
Forums Tennis-Classim
bhamp0

Outil de récupération du classement futur

Recommended Posts

J'ai Python 2.6 et je suis sur Windows 7 Pro.

Je vais essayer de mettre Python 2.7, tester et je te dis si ça fonctionne.

Edit: Bon, j'avais pu mettre la 2.6 sur mon poste au taf mais ça ne passe pas pour la 2.7 donc je ne vais pas pouvoir tester. Je testerai chez moi mais ça sera sur Mac.

Edited by Romain.01

Share this post


Link to post
Share on other sites

Merci :)

Il y avait un cas particulier à gérer que je n'avais pas eu avec mon profil. C'est réglé dans une pull request que j'ai soumise à K-Mille.

Si tu veux tester tout de suite tu peux utiliser cette archive : https://github.com/NicolasP/classement/archive/work.zip

Ton lien ne fonctionne pas :P

 

Edit : j'ai utilisé le lien en 1ère page et ça fonctionne.

Le programme se lance bien désormais mais j'ai une erreur sur un joueur je pense, ça me ressort ça

 

0  victoire(s) en championnat individuel
 ==> Classement de sortie :  40  - Harmonisé :  40  -  classement d'origine :  NC
Traceback (most recent call last):
  File "C:\Python26\palmares.py", line 412, in <module>
    main()
  File "C:\Python26\palmares.py", line 403, in main
    recupClassement( login, password, licence, profondeur )
  File "C:\Python26\palmares.py", line 344, in recupClassement
    new_cl, harm, s = classementJoueur( op, id, nom, cl, sexe, profondeur )
  File "C:\Python26\palmares.py", line 312, in classementJoueur
    nc,harm,s = classementJoueur( opener, _v[1], _v[0], _v[2], sexe, profondeur )
  File "C:\Python26\palmares.py", line 312, in classementJoueur
    nc,harm,s = classementJoueur( opener, _v[1], _v[0], _v[2], sexe, profondeur )
  File "C:\Python26\palmares.py", line 326, in classementJoueur
    s = strClassement( nom, cl, harm, palmaV, palmaD )
  File "C:\Python26\palmares.py", line 252, in strClassement
    chaine += "Palmarès de " + nom + " :\n"
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 6: ordinal not in range(128)
>>>

Edited by lakes37

Share this post


Link to post
Share on other sites

Personnellement, quand je teste avec l'identifiant de ma femme et mon numéro de licence, j'ai un plantage avec erreur alors que si je teste avec MON identifiant de connexion et MON numéro de licence, ça fonctionne. Est-ce que le problème ne viendrait pas de là ? On ne peut effectuer la simulation que sur le numéro de licence associé au compte ?

Sinon, autre problème, ça calcule sur les résultats 2014/2015 et pas sur 2015/2016.

EDIT : En fait, après quelques autres tests, avec mon compte, ça fonctionne même sur les autres numéros de licence alors que sur le compte de ma femme, ça ne fonctionne pas, quel que soit le numéro de licence... Peut-être parce qu'elle n'a pas pris de licence cette année ?

Edited by ppod

Share this post


Link to post
Share on other sites

J'ai trouvé, ça ne fonctionnait pas avec le compte de ma femme car elle ne s'était pas encore connectée sur le nouvel espace du licencié. Après une première connexion, ça fonctionne.

lakes37, t'es-tu déjà connecté sur ton nouvel espace du licencié ?

EDIT : J'ai trouvé où modifier l'année pour que ça calcule sur 2015/2016 (fichier palmares.py, au début : millesime = 2016)

Edited by ppod

Share this post


Link to post
Share on other sites

Edit : j'ai utilisé le lien en 1ère page et ça fonctionne.

Le programme se lance bien désormais mais j'ai une erreur sur un joueur je pense, ça me ressort ça

 

0  victoire(s) en championnat individuel
 ==> Classement de sortie :  40  - Harmonisé :  40  -  classement d'origine :  NC
Traceback (most recent call last):
  File "C:\Python26\palmares.py", line 412, in <module>
    main()
  File "C:\Python26\palmares.py", line 403, in main
    recupClassement( login, password, licence, profondeur )
  File "C:\Python26\palmares.py", line 344, in recupClassement
    new_cl, harm, s = classementJoueur( op, id, nom, cl, sexe, profondeur )
  File "C:\Python26\palmares.py", line 312, in classementJoueur
    nc,harm,s = classementJoueur( opener, _v[1], _v[0], _v[2], sexe, profondeur )
  File "C:\Python26\palmares.py", line 312, in classementJoueur
    nc,harm,s = classementJoueur( opener, _v[1], _v[0], _v[2], sexe, profondeur )
  File "C:\Python26\palmares.py", line 326, in classementJoueur
    s = strClassement( nom, cl, harm, palmaV, palmaD )
  File "C:\Python26\palmares.py", line 252, in strClassement
    chaine += "Palmarès de " + nom + " :\n"
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 6: ordinal not in range(128)
>>>

Même erreur que Romain.01. Est-ce que tu aurais moyen de tester avec Python 2.7 ? https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi

 

PS: par contre j'ai pas trouvé où modifier l'année pour que ça calcule sur 2015/2016

Si tu as la dernière version, c'est à la ligne 32 de palmares.py. Remplace 2015 par 2016 dans "millesime = 2015".

  • Like 1

Share this post


Link to post
Share on other sites

Si tu as la dernière version, c'est à la ligne 32 de palmares.py. Remplace 2015 par 2016 dans "millesime = 2015".

Oui, oui, merci, j'ai finalement trouvé, j'étais en train d'éditer mon précédent message quand tu as envoyé la réponse. ;)

Edited by ppod

Share this post


Link to post
Share on other sites

Hello...

Est-ce que l'outil fonctionne toujours suite aux derniers changements sur le site de la FFT ?

Share this post


Link to post
Share on other sites
à l’instant, ppod a dit :

Hello...

Est-ce que l'outil fonctionne toujours suite aux derniers changements sur le site de la FFT ?

Il a été mis à jour suite aux changements du site, mais ça fait un bout de temps que je n'ai pas réessayé pour vérifier que ça marche toujours :)

Share this post


Link to post
Share on other sites
Il y a 2 heures, Nicolas a dit :

Il a été mis à jour suite aux changements du site, mais ça fait un bout de temps que je n'ai pas réessayé pour vérifier que ça marche toujours :)

Oui, c'est bon, ça remarche, j'avais une erreur qui n'apparait plus à présent (sans doute une indispo temporaire du serveur FFT). Merci ! ;)

Par contre, ça rame grave !

Share this post


Link to post
Share on other sites

J'ai dans mon palmarès deux personnes dont le nom est masqué sur le site de la fft.

Après avoir testé le logiciel tout fonctionne bien mais les joueurs dont le nom est masqué n’apparaissent pas dans la simulation et faussent donc le calcul des points.

Toutefois merci pour ce logiciel qui me sera bien utile

Share this post


Link to post
Share on other sites

J'ai remarqué que l'outil appliquait les barêmes fammes pour le calcul du classement des hommes. En fait ligne 420 du fichier classement.py il faut rempalcer 'H' par 'M'.

Share this post


Link to post
Share on other sites

Hello à tous, je n'arrive plus à faire tourner correctement le petit bijou comme l'an dernier... En profondeur 2 ça à l'air de fonctionner pour quelques numéros de licence et encore les messages d'erreurs sont fréquents mais en profondeur 3 ça tourne ça tourne et au bout d'un moment c'est le drame des messages d'erreurs apparaissent rapidement ou après plusieurs heures de moulinette parfois, suis-je le seul à avoir ce soucis ?

Share this post


Link to post
Share on other sites

Oui avec le nouveau site de la FFT (qui est nettement plus lent), l'outil est moins fiable et prend beaucoup plus longtemps :(

Il faudrait améliorer le code qui interroge le site (en parallélisant les requêtes et en gérant mieux les échecs). J'aurais envie de m'y mettre mais je manque de temps pour le faire.

Share this post


Link to post
Share on other sites

OK merci pour ta réponse, dommage ce petit programme était précieux à chaque fin de saison.

Share this post


Link to post
Share on other sites

J'ai pu passer un peu de temps à faire les améliorations dont je parlais plus haut :)

Comme d'habitude vous pouvez télécharger la nouvelle version ici : https://github.com/coti/classement/archive/master.zip

Ça devrait maintenant aller beaucoup plus vite et ne plus bloquer. Par exemple chez moi un calcul en profondeur 2 a pris 1 minute 46 secondes (pour 299 palmarès à récupérer en tout). J'ai même tenté en profondeur 3 pour voir : 2920 palmarès récupérés en 19 minutes 21 secondes (autant dire que je ne vous le conseille pas ^_^)

Pour ceux que ça intéresse, les palmarès sont récupérés en parallèle sur 10 threads, avant de faire les calculs de classement seulement une fois que tous les palmarès ont été récupérés. C'est pour cette raison que le calcul apparaît d'un seul coup à la fin au lieu d'apparaître progressivement comme avant.

Share this post


Link to post
Share on other sites

Je n'arrive pas à lancer "palmares.py", j'ai l'erreur sur la 3e ligne suivante :

" # Même une fois q vide, il faut attendre que les derniers palmarès soient récupérés
    print('Attente des derniers palmarès')
        q.join()"

Share this post


Link to post
Share on other sites

Idem ^^'

 

Edit : Maintenant, j'ai :

>>> palmares
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'palmares' is not defined

Share this post


Link to post
Share on other sites
Il y a 1 heure, marie a dit :

Je n'arrive pas à lancer "palmares.py", j'ai l'erreur sur la 3e ligne suivante :

" # Même une fois q vide, il faut attendre que les derniers palmarès soient récupérés
    print('Attente des derniers palmarès')
        q.join()"

OK, c'est sous Windows je suppose ? Je n'ai pas de PC avec Windows sous la main pour tester pour l'instant :(

Est-ce que tu pourrais m'envoyer par MP l'intégralité de ce qui est affiché ? Normalement il devrait y avoir un message d'erreur qui m'aiderait à savoir ce qui ne se passe pas bien.

 

Il y a 1 heure, Massoun a dit :

Idem ^^'

 

Edit : Maintenant, j'ai :

>>> palmares
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'palmares' is not defined

Là tu te retrouves dans l'interpréteur python, ce qui veut dire que tu as dû entrer python.exe (ou quelque chose du genre) sans la suite.

Share this post


Link to post
Share on other sites

Perso j'ai le même type de message d'erreur sous mac os... 

Share this post


Link to post
Share on other sites

Oui exact, j'avais changé une étape en voyant que ça ne marchait pas, au temps pour moi.

Voici le message complet de la première erreur signalée par Marie :

c:\Python27>python.exe palmares.py
  File "palmares.py", line 289
    q.join()
    ^
IndentationError: unexpected indent

 

Je viens d'essayer sur Linux (sur machine virtuelle) et même erreur

Share this post


Link to post
Share on other sites
Il y a 2 heures, Massoun a dit :

Oui exact, j'avais changé une étape en voyant que ça ne marchait pas, au temps pour moi.

Voici le message complet de la première erreur signalée par Marie :

c:\Python27>python.exe palmares.py
  File "palmares.py", line 289
    q.join()
    ^
IndentationError: unexpected indent

 

Je viens d'essayer sur Linux (sur machine virtuelle) et même erreur

Merci pour le message d'erreur !

C'était entièrement ma faute, fausse manip quand j'ai poussé les modifs :unsure:

C'est corrigé maintenant. https://github.com/coti/classement/archive/master.zip

Share this post


Link to post
Share on other sites

Salut, j'ai installé PYTHON27 et fais un test.

Cela fonctionne super pour une profondeur de 1 , mais pour 2 , j'ai une erreur.

Super boulot soit dit en passant.

 

Traceback (most recent call last):
  File "C:\Python27\classement-master\palmares.py", line 503, in <module>
    main()
  File "C:\Python27\classement-master\palmares.py", line 493, in main
    recupClassement( login, password, licence, profondeur )
  File "C:\Python27\classement-master\palmares.py", line 435, in recupClassement
    new_cl, harm, s = classementJoueur( palmaresJoueurs, id, nom, cl, sexe, profondeur )
  File "C:\Python27\classement-master\palmares.py", line 405, in classementJoueur
    nc,harm,s = classementJoueur( palmaresJoueurs, _d[1], _d[0], _d[2], sexe, profondeur )
  File "C:\Python27\classement-master\palmares.py", line 399, in classementJoueur
    nc,harm,s = classementJoueur( palmaresJoueurs, _v[1], _v[0], _v[2], sexe, profondeur )
  File "C:\Python27\classement-master\palmares.py", line 410, in classementJoueur
    cl,harm = calculClassement( myV, myD, sexe,  classement, champ )
  File "C:\Python27\classement-master\classement.py", line 608, in calculClassement
    myVictoires = normalisationTab( myVictoires, mySexe )
  File "C:\Python27\classement-master\classement.py", line 526, in normalisationTab
    o = normalisation( c, sexe )
  File "C:\Python27\classement-master\classement.py", line 492, in normalisation
    cl[0] = c[0]
TypeError: 'tuple' object does not support item assignment

Share this post


Link to post
Share on other sites

Et pour moi j'ai tenté en profondeur 3 et j'ai eu ceci après environ 1h30, dommage : 

 

Traceback (most recent call last):

  File "C:\Users\XXXX\Desktop\classement-master\palmares.py", line 503, in <module>

    main()

  File "C:\Users\XXXX\Desktop\classement-master\palmares.py", line 493, in main

    recupClassement( login, password, licence, profondeur )

  File "C:\Users\XXXX\Desktop\classement-master\palmares.py", line 435, in recupClassement

    new_cl, harm, s = classementJoueur( palmaresJoueurs, id, nom, cl, sexe, profondeur )

  File "C:\Users\XXXX\Desktop\classement-master\palmares.py", line 405, in classementJoueur

    nc,harm,s = classementJoueur( palmaresJoueurs, _d[1], _d[0], _d[2], sexe, profondeur )

  File "C:\Users\XXXX\Desktop\classement-master\palmares.py", line 399, in classementJoueur

    nc,harm,s = classementJoueur( palmaresJoueurs, _v[1], _v[0], _v[2], sexe, profondeur )

  File "C:\Users\XXXX\Desktop\classement-master\palmares.py", line 405, in classementJoueur

    nc,harm,s = classementJoueur( palmaresJoueurs, _d[1], _d[0], _d[2], sexe, profondeur )

  File "C:\Users\XXXX\Desktop\classement-master\palmares.py", line 410, in classementJoueur

    cl,harm = calculClassement( myV, myD, sexe,  classement, champ )

  File "C:\Users\XXXX\Desktop\classement-master\classement.py", line 608, in calculClassement

    myVictoires = normalisationTab( myVictoires, mySexe )

  File "C:\Users\XXXX\Desktop\classement-master\classement.py", line 526, in normalisationTab

    o = normalisation( c, sexe )

  File "C:\Users\XXXX\Desktop\classement-master\classement.py", line 492, in normalisation

    cl[0] = c[0]

TypeError: 'tuple' object does not support item assignment

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×