Journal "Portage" de TapTempo en Python3 (windows)

Posté par  . Licence CC By‑SA.
Étiquettes :
8
9
mar.
2018

Bonjour à tous,

Oui je suis un peu en retard sur le sujet, mais bon, devant tant d'engouement, je ne peux m’empêcher de vouloir participer.

Suites aux différents ports et POC de TapTempo dans d'autres langages :
- Rust, v2
- Ada
- JS
- Bash
- PERL
- Python (2.7) (linux)
- Brainfuck
- Java
- Perl6
- Haskell
- Wren
- php
- VBA (Excel)
- Tcl
- GOTO++
- Goland
- awk

Je vous présente ici mon POC, python 3 pour windows, il s'agit en fait d'une adaptation de la version python 2.7 qui est faite pour linux.
Cette version ne fonctionne que sous windows, est reste loin de toute les fonctionnalités du projet de mzf, mais la base est la :).

Pourquoi pas une seule version Windows/linux? Parce que les terminaux ne sont pas gérés par les même libs et que le temps est un bien précieux que je veux économiser. Ou peut-être que je manque de connaissance et qu'une solution simple et rapide m'échappe.

from msvcrt import kbhit, getch
from datetime import datetime

print("tapTempo : press any key (q for quit)")
t = []
done = False

while not done:
    if kbhit():
        if getch() == b'q':
            done = True
        else:
            t.append(datetime.now())

ll=[ (j-i).microseconds for i, j in zip(t[:-1], t[1:]) ][-5:]
print("BPM:",60000000*len(ll)/sum(ll) if ll else None)

Peut être un port complet ce weekend si c'est amusant.
Bonne journée à tous.

  • # Python pas cross-platform ?

    Posté par  (site web personnel) . Évalué à 2.

    Merci pour cette version ! je suis étonné qu'il faille utiliser des appels différents en fonction des plateformes en python. Pour un langage de script de haut niveau on pourrait s'attendre à une portabilité native, non ?

    • [^] # Re: Python pas cross-platform ?

      Posté par  . Évalué à 1.

      La version de manatlan utilise la lib termios pour récupérer les entrée clavier sans bloquer le processus en utilisant les fonctionnalités d'un terminal. Windows est lui assez éloigné de linux dans la structure des ses terminaux. Termios est vraiment fait fait pour linux et msvcrt pour windows, j'ai choisis de faire comme ça pour faire un gros contraste.

      Mais si ça peu te rassurer tu peux faire avec d'autre libs et avoir un projet compatible Windows et linux, et qui marche en python 3 et python 2.7

      Le seul truc qui empêche vraiment le code de manatlan de fonctionner en python3 directement c'est la syntaxe des print

      python 2.7
      python
      print "Hello TapTempo"

      python 2.7 & python 3
      python
      print("Hello TapTempo")

      Je vais finalement faire cette version complète python multi-plateformes et et compatible python 2.7 & 3, histoire de laver cette tache de doute sur mon langage préféré.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.