Page 2 of 2

Re: Détection plateforme en Python

Unread postPosted: 16 Dec 2018, 13:17
by critor
Merci beaucoup.

Autre problème que j'ai remarqué sur KhiCAS Graph 90+E lors de mes tests.

Lorsqu'un
return
est situé dans un
try
il semble ignoré, ce qui n'est pas le cas pour un
return
situé dans un
except
:
ImageImage
Au lieu de 3 et 2, les résultats que j'attendais étaient 1 et 2.

Même problème en écriture Python sur la HP Prime.

Re: Détection plateforme en Python

Unread postPosted: 16 Dec 2018, 17:37
by parisse
Merci, c'est corrigé dans le source, et j'ai mis a jour pour Casio.

Re: Détection plateforme en Python

Unread postPosted: 16 Dec 2018, 18:10
by critor
Encore merci. :)

Re: Détection plateforme en Python

Unread postPosted: 18 Dec 2018, 14:24
by Adriweb
Le moyen de détection initial me semble plus fiable, car utilisant des tests (entre autre strings hardcodées) qui ne risquent probablement pas de changer suivant les évolution, ce qui est moins évident pour l'autre façon de détecter la plateforme - est-ce que désormais on pourrait revenir vers une détection se basant la premiere facon ?

Re: Détection plateforme en Python

Unread postPosted: 18 Dec 2018, 16:12
by critor
Une version fonction du code initial serait ce qu'il y a de mieux, oui.

Mais à ce jour ça ne marchera pas sur HP Prime, il va falloir attendre je ne sais combien de semaines/mois la prochaine mise à jour qui intégrera la correction faite dans Xcas.

Re: Détection plateforme en Python

Unread postPosted: 01 May 2019, 22:43
by critor
Mise à jour de la fonction de détection de pythonette :
Code: Select all
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E / G35+E II
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE / Trinket M0
#5: Xcas / HP Prime
#6: KhiCAS / Graph 90+E
def getplatform():
  id=-1
  try:
    import sys
    try:
      if sys.platform=='nspire':id=0
      if sys.platform.startswith('TI-Python') or sys.platform=='Atmel SAMD21':id=4
    except:id=3
  except:
    try:
      import kandinsky
      id=1
    except:
      try:
        if chr(256)==chr(0):id=5+(not ("HP" in version()))
      except:
        id=2
  return id


Gère maintenant :
  • la TI-83 Premium CE Edition Python
  • le firmware tiers pour TI-Python / Adafruit Trinket M0
  • la Graph 35+E II
    (aucun changement)

Re: Détection plateforme en Python

Unread postPosted: 02 May 2019, 18:09
by Lionel Debroux
Hmm. Si c'est à cause de mon firmware qu'il a fallu ajouter "Atmel SAMD21", c'est quelque chose que je pourrais changer.

Re: Détection plateforme en Python

Unread postPosted: 02 May 2019, 18:40
by critor
Oui :
  • TI-Python : sys.platform=='TI-Python Adapter'
  • TI-83 Premium CE Edition Python : sys.platform=='TI-Python'
  • ton firmware : sys.platform=='Atmel SAMD21'

Re: Détection plateforme en Python

Unread postPosted: 02 May 2019, 21:13
by jean-baptiste boric
Un de ces jours, faudrait faire une pull request du côté de NumWorks pour rajouter le module sys. Vu que les calculettes ont (enfin!) un langage de programmation commun, la prochaine étape logique serait des programmes multi-plateformes ; autant rendre le code de détection de la plateforme aussi simple que possible.

Re: Détection plateforme en Python

Unread postPosted: 02 May 2019, 21:19
by critor
Exactement, c'est le but de ce genre de fonction. :)

Notamment pour les scripts Python qui utilisent une interface texte
(un peu comme ce qu'on avait fait au concours de rentrée 2018)
, vu que les taille et comportement de la console diffèrent d'un modèle à un autre.