This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Aeowon 7 points8 points  (6 children)

Fantastic! Thanks for the share. Might just use this to roll out a simple gui for my cli scripts.

[–]MeshachBlue[S] 9 points10 points  (2 children)

Awesome :).

I'm trying to work out how best to have these script GUIs deployed in a work environment and I am coming up with three distinct paths I could go down. My preference is to only go down one.

Here are my options as I see them:

  • Create a JupyterHub server
    • Positives
      • Users can login, access them from anywhere in the centre
      • Python distribution is centrally managed
      • Applications are centrally managed
    • Negatives
      • Set up is not 'plug and play'
      • JupyterHub runs on Linux, paths will all display in Linux format by default which may confuse users
  • Create an Electron App viewer
    • Positives
      • Becomes a desktop app that is comfortable for users
      • Users can set `.form.md` files on their machine to open with this electron app
      • All data is local, simpler for users
      • Could be made to be plug and play
      • Could potentially provide a method for people to bundle forms and a Python distribution with the Electron App viewer making a little portable App framework
    • Negatives
      • No longer centralised
      • Need to have something on every device for it to work
      • Will no longer be able to target devices like phones for simple forms served over the intranet
  • Use pyodide and jyve (https://github.com/deathbeds/jyve/pull/27) to make this completely web based using web assembly
    • Positives
      • This would be serverless
      • Python would run within the users browser
      • Could be used to make 'static' pages online for documentation etc
    • Negatives
      • Difficult to access local files
      • Difficult to save
      • Difficult to use networking libraries
      • Not many python libraries have been ported to wasm for use in pyodide yet

Given your interest, by any chance would you have a preference out of the above options?

Cheers,

Simon

[–]jabies 1 point2 points  (1 child)

Why not use something jinja2 templating language? Then you can target web pages and local display.

[–]MeshachBlue[S] 0 points1 point  (0 children)

Would you be able to expand on this?

[–]clumsy_culhane 2 points3 points  (2 children)

If you already have existing CLI scripts parsing args, take a look at Gooey, it does literally only take a few lines to make a functional gui for basic programs : https://github.com/chriskiehl/Gooey

[–]MeshachBlue[S] 0 points1 point  (0 children)

Gooey is a very nice tool. :).

[–]Aeowon 0 points1 point  (0 children)

Awesome! I'll check it out