HP Forums

Full Version: Python: ZSYS module (mimics SYS)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
ZSYS aims to mimic some of the functionality of the sys module, which is provided with most python's, but is absent from the micropython on most calculators.

The aim of the initial implementation serves two purposes:
To attempt to identify which calculator is running, which may be useful in tweaking portable code.
And to emulate some functions that portable code might call in sys, where it is unavailable.

Note: Those versions of the HP Prime that support Python will have sys built-in. Just use sys, unless you wish to make your code portable.

With thanks to the contributions from this thread:
Version 0.1 of ZSYS identifies calculator makers.
(Specific calculators cannot generally be identified).


"""ZSYS mimics part of sys where needed.

It allows portable code to identify calculator platforms despite most calculators not having sys.

© 2023 StephenG1CMZ
crid="ZSYS v0.1"+crme
impname="micropython" #unless sys exist
impversioninfo=None #version unknown
platform="" #sys.platform
#Note that detecting files from these
#does not guarantee which is running

  import sys
  platform = sys.platform
  #impname = sys.implementation.name
  #impmachine = sys.implementation.machine
    if sys.platform == "HP Prime":
      isPrime = True

except:  #only examine files if no sys
  #reason: exclude false positives from imposters
  try: #Casio
    import casioplot

  try: #Numworks
    import ion
  if isNumworks:
      import os
      fork="Omega" #alternative
      fork="Epsilon" #Main

  try: #TI
    import ti_system

if isPrime:
  #identifiable calculator

if isCasio or isHP or isNumworks or isTI:
  calculators=" calculator"

def exit(exc=0): #mimic sys.exit
  raise SystemExit(exc)

def main():
  #micropython, cpython etc.
 #from sys, or Calculator maker

  if showmore:
    if isNumworks:
      if fork=="Omega":

    if isTI:
      print(get_platform()) #hh/dt=handheld/desktop

showme=True #customise
showmore=True #customise

if showme or __name__ == "__main__":

Note: Since Python has yet to reach HP Prime Android, it is currently tested only on Numworks.
(05-21-2023 08:27 PM)StephenG1CMZ Wrote: [ -> ]Note: Since Python has yet to reach HP Prime Android, it is currently tested only on Numworks.

Why not simply test it on a Prime device??
Well, since you asked...
Local shops don't sell it (they do sell Casio, but without Python).
And I haven't bought anything mail-order for myself since attempting to buy a radio, which the guy at the post office would only hand over to Mr. G1CMZ - I didn't have a matching birth certificate.

Also, I have always got a phone with me I know how to cut-and-paste code from an App.
But the real HP Prime doesn't have standard WiFi, so I imagine I would have to mess around with and carry cables, OTG dongles and the like (not to mention the calculator)?

The Numworks App just works*, wherever I am.

*The HP Prime version may require a phone signal.
Reference URL's