Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/04/2022, à 06:00

thib1984

pydiceroller, jet de dés

J'ai réalisé une implémentation d'un programme de jets de dés.

Vous avez plusieurs options de lancement à votre disposition, mais l'idée est principalement de pouvoir lancer un ou plusieurs dés de votre choix

Installation version courte :

pip3 install pydiceroller
pydiceroller --help

Exemple de lancement :

thib1984@DESKTOP-BRCQS31:~$ pydiceroller 1d6 #un seul param
0x0001F3B2 6 : 5
thib1984@DESKTOP-BRCQS31:~$ pydiceroller 2d6 1d20 d10 12 #plusieurs params
d6 : 1
d6 : 2
d20 : 17
d10 : 5
d12 : 9
thib1984@DESKTOP-BRCQS31:~$ pydiceroller s2d6 #somme de lancers
2d6 : 9
thib1984@DESKTOP-BRCQS31:~$ pydiceroller 3s2d6 #plusieurs sommes de lancers
2d6 : 7
2d6 : 7
2d6 : 11
thib1984@DESKTOP-BRCQS31:~$ pydiceroller -s 3s2d6 #mode réduit (pour piper avec d'autres commandes)
4
5
2
thib1984@DESKTOP-BRCQS31:~$ pydiceroller -i 2d6 #mode boucle
d6 : 3
d6 : 5
press any key to relaunch dices, ctrl-c to exit
d6 : 6
d6 : 2
press any key to relaunch dices, ctrl-c to exit
d6 : 4
d6 : 4
press any key to relaunch dices, ctrl-c to exit

Documentation ici : https://github.com/thib1984/pydiceroller

Vous pouvez aussi regarder les autres "programmes" disponibles ici : https://github.com/thib1984
*Normalement c'est un émoji dé qui apparaitra dans votre terminal dans la partie résultat

Hors ligne

#2 Le 26/04/2022, à 07:27

Vobul

Re : pydiceroller, jet de dés

Pour quelle raison t'as ajouté "os.sys.stdin.reconfigure(encoding='utf-8')" ? Quand le terminal utilisé n'est pas utf-8 ? Ça existe encore ça ?


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 26/04/2022, à 09:20

thib1984

Re : pydiceroller, jet de dés

J'ai eu le souci sur une machine windows dans les github actions.
Ca fait plaisir de voir des gens qui vont lire le code!

Hors ligne

#4 Le 26/04/2022, à 12:38

Vobul

Re : pydiceroller, jet de dés

Ah oui Windows.... tongue

Tu devrais ajouter le `--user` flag à ta fonction d'update avec pip.


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#5 Le 26/04/2022, à 21:55

moths-art

Re : pydiceroller, jet de dés

Tu devrais faire un truc en gtk... ça serait sans doute plus utile.
Attention : ton fichier changelog n'existe pas (le readme renvoi vers une 404)

Hors ligne

#6 Le 28/04/2022, à 05:59

thib1984

Re : pydiceroller, jet de dés

Vobul a écrit :

Ah oui Windows.... tongue

Tu devrais ajouter le `--user` flag à ta fonction d'update avec pip.

Je m'étais posé la question lors de la création de mon premier programme python (je dois en avoir une dizaine sur mon compte github). J'étais parti sur l'idée d'une installation globale par défaut. SI l'utilisateur préfère une application "user", libre à lui de faire des upgrades manuels. A moins que tu ne saches comment vérifier si un programme est installé en mode --user ou en mode global? Dans ce cas, je pourrais peut-être chercher à rendre le système plus intelligent!

Hors ligne

#7 Le 28/04/2022, à 06:01

thib1984

Re : pydiceroller, jet de dés

moths-art a écrit :

Tu devrais faire un truc en gtk... ça serait sans doute plus utile.
Attention : ton fichier changelog n'existe pas (le readme renvoi vers une 404)

Pour le changelog, je vais corriger ca! %erci!
Pour le gtk, je comprends la frustration, mais je t'avoue que c'est un de mes axes de développement pour ces petits programmes python (j'en ai d'autres sur mon compte github) : tout est en terminal et reste dans le terminal. Tu es loin d'être le premier à me le remonter cela dit... Peut-être qu'un jour, je remettrai en cause ce "pilier". lol

Hors ligne

#8 Le 28/04/2022, à 07:20

Vobul

Re : pydiceroller, jet de dés

De mon point de vue :

1. Tu ne devrais même pas avoir cette fonction d'update dans le programme, car cela ne concerne pas le programme en soit
2. Tous les paquets devraient être installés par l'utilisateur (donc avec --user), jamais en root (à part les deux trois critiques pour le système), voir https://dev.to/elabftw/stop-using-sudo-pip-install-52mn
3. Un environnement virtuel devrait être utilisé (voir poetry ou pipenv)
4. Et parce que j'aime Docker : un container docker devrait être utilisé

Bon après là c'est une toute petite app sans dépendences donc on s'en fout un peu de ce que je viens de dire, mais pour un truc plus conséquent, avoir une image docker qui vient avec l'interpréteur dans sa bonne version (ça évite pyenv) + toutes les dépendences, et qui ne pollue en rien ton système, c'est tout bon !


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#9 Le 28/04/2022, à 09:26

Compte supprimé

Re : pydiceroller, jet de dés

Bonjour à tous.

Vobul a écrit :

mais pour un truc plus conséquent, avoir une image docker qui vient avec l'interpréteur dans sa bonne version (ça évite pyenv) + toutes les dépendences, et qui ne pollue en rien ton système, c'est tout bon !

Tu pourrais en dire plus sur l'utilisation d'une image docker? Je n'en ai jamais utilisée... (que des environnements virtuels)

#10 Le 28/04/2022, à 15:03

Vobul

Re : pydiceroller, jet de dés

C'est pas vraiment le lieu pour faire un cours sur la dockerisation d'un programme python mais en gros tu définis dans un fichier (Dockerfile) le python que tu veux, tu lui installes ses dépendences (via requirements.txt), tu y ajoutes ton code, et tu ship une image qui contient tout ce qu'il faut et où t'es certain à 100% que ça va fonctionner partout où Docker fonctionne.

Un exemple concret et simple : https://gitlab.com/coroner/cryptolyzer/ … Dockerfile

FROM python:3.8-slim

LABEL maintainer Szilárd Pfeiffer "coroner@pfeifferszilard.hu"

SHELL ["/bin/bash", "-o", "pipefail", "-c"]

ADD . /usr/src/cryptolyzer

RUN pip3 install --no-cache-dir /usr/src/cryptolyzer \
 && pip3 install --no-cache-dir --force-reinstall /usr/src/cryptolyzer/submodules/cryptoparser

USER nobody

ENTRYPOINT ["cryptolyze"]
CMD ["--help"]

(à noter que je vois des choses à améliorer dans ce Dockerfile mais bon c'est juste une illustration de ce qu'on peut faire)


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#11 Le 01/05/2022, à 09:00

Compte supprimé

Re : pydiceroller, jet de dés

Merci